With every new year comes a sense of reflection and soothsaying for the year ahead.
I’ll dispense with too much commentary on the past, suffice to say it was a period fraught with duck aligning and preparing foundations to enable more interesting technical possibilities this year.
Given the need to furrow a number of disparate technology channels as part of my day job, has meant a number of personal technology areas of interest have had to be suspended for a time, but hopefully 2012 should renew my vigour and possibilites to return back to the breach.
So, from the last years experience, here’s my thoughts on what looms in 2012, driven by either interest or more likely necessity. I don’t assume these will be general trends, but if past experience is any indicator, my direction tends to reflect that in the general [web] technology landscape.
With typically kitsch aplomb here’s my list of ‘stuff’ for 2012..
- Continuous delivery
Continuous delivery, my kindgom for continuous delivery! Actually, to my mind, this is just a means to the end of getting swift(er) delivery with increased levels of confidence. The key piece missing in this jigsaw is having a some cohesive ‘meta-tooling’ where I can configure the delivery pipeline appropriately. What does this mean ? Essentially, I have no great interest in configuring a set of disparate tools (from SCM commits, to deployment configuration tools, to virtualised machine creation, to container deployment, to running test suites, to code review results, to publishing and versioning, to, to, to….). Nor am I keen to handcraft a set of scripts bespoke to each projects and it’s associated tooling (i.e with different teams using different SCMs according to their experience and needs, including git, perforce, svn…). Nor do I think mandating specific (and sometimes restrictive) global toolsets is a practicable a solution to this, (I find this encourages privacy and ways of circumventing due process). I’m looking a few options that meet my ‘meta toolchain’ orchstration needs right now, but I’ve yet to find anything that ‘just works’.
- Cloud hosting and cloud formations
At least from my own perspective, I find cloud hosting as a partial solution to some blockers in continuous delivery. This is essentially outsourcing some of the pain of delivery to a third party and paying for someone else to take the pain. Something I have noticed whilst looking at the cloud offering availble is a distinct fork road between packaged ‘hosted’ application solutions (a la heroku and [arguably] cloudfoundry), to ‘raw’ image hosting of the likes of Amazon and Rackspace. My initial impressions of these varieties are that the former seems ideal for prototyping or even SMEs and startups (or industries without strict regulation), whereas the latter is likely a closer fit for companies who want to be up and running quickly, but want to to keep their production environment private and closed.
- Graph DBs
Weirdly I’m being drawn into investigating some Graph DB options as a means of tracking a service catalogue. Initial impressions are that the theory is longstanding (with Eulers seminal paper being over 300 years old), but the technology supporting this and associated documentation and tooling is still immature. Again, as a user (rather than researcher or developer) of this technology, I really want a GUI interface, and the flashier the better. I’ve just started looking at Neoclipse, so maybe this will fit the bill, time shall tell..
- Alternative service technologies
I accept these are sweeping generalisations, but in Java land, I’m used to seeing services typically wired up using Spring for IoC and exposed as either SOAP (using CXF) or something paying lipservice to REST (again often using CXF or Jersey or some still evolving Restful framework). In the Scala World, Akka seems to be the main service player in town, bringing many of the features of Erlang to the JVM. 2012 should be interesting to see what other service implementation players start to emerge and whether spaces distributions like FlySpaces or transactional systems like Stambecco/Goat Rodeo find their niche, or at least get trialled/considered more often.
- Discoverable APIs
This is really following up some of the ever tangible flexibility improvments brought about in API development from RESTful APIs and breaking some the fragility accorded by SOAP APIs. Typically Service Discovery protocols are often published for internal API access, but I’ve yet to see this made available for public, (or at least general common), consumption. Maybe 2012 will bubble this this feature closer to the surface.
- EDA and CEP
So, it’s fair to say the EDA and CEP both have firm footholds in enterprises and increasingly in realtime transactional systems. Still, it feels like early days for both architecural styles and if they haven’t fully crossed the chasm they are certainly a significant distance across it. Recently, I’ve noticed increased discussion around implementation choices as best fit for blocking vs non blocking tasks which is both interesting AND useful. Personally, I’m intrgiued to see how efforts like ql.io (which leverages node.js) fare here, as it’s certainly attempting to answer common and frequently raised concern, (especially in the area of necessary blocking tasks such as aggregators, where a ticket system style design is not viable).
- Web Auth/Auth and SSO
Something that has been blipping my own radar for a while. Essentially, I can see this distilling to a comparison of SAML2 and OAuth2, (or some hybrid model), but I’ll be sure to post any findings as I delve deeper.
- Thin client controllers
Filthy rich clients are still sordidly appealing, though the ‘grunt’ (i.e. non-blocking) work is increasingly being performed server side. Sure this should open up a world of options to UI designers of how to wow users performing blocking (i.e. waitful rather than Restful 😉 ) operations.
- Rules engines
The gift that keeps on giving. I’ve always ‘bought’ the idea behind rules engines, but rarely seen dynamic or complex enough rule based systems that have required the investment. 2012 coulod be the year that this changes for me, but (like graph DBs), I’m really keen on seeing the quick win value that can be added from putting my eggs in a 3rd parties basket.
- Governance triumvirates and value driven roadmaps
Last year brought about quite a few interesting conversations with some of my contemporaries, though one recurring theme that surfaced was around getting technical items on development team roadmaps and enforcing governence over delivery. Something that I have got positive feedback from quite early is having tripartite owned delivery roadmaps. Specifically, having roadmaps constructed and owned by a combination of product owner/BAs, development manager and teachnical lead/architect. This covers the what, who and how of a number of user stories with actual delivery team estimates providing the ‘when’ part of the equation too. Something central to this, is the notion of ‘techenomics’, whereby each specialist in this triumvirate is able to justify their choices and decisions and (ideally) present this in a common language to those from other disciplines in terms of the (general) costs and benefits (i.e. the effects) of chosing alternatives. Often these value calculations are intangible and very rough estimates until some delivery is able to support stakeholder assumptions. In my experience this approach of being roughly correct (as opposed to precisely wrong) has paid dividends thus far, and trying to describe effects of decisions in a common and comparative language is also a useful (and challenging) way to communicate across disciplines.
So, there’s my precis of what I expect over the next year or so. It’ll certainly be interesting to see if the actual year plays out like this and how closely this is reflected in the rest of technology.
All the best for 2012 Happy New Year and Happy Hacking !