17 December 2009

Predictions for the New Decade

"Prediction is very difficult, especially about the future."
Niels Bohr
I was asked yesterday to provide any predictions that I might have for the computing industry for the next year. Initially, I wasn't sure I had anything significant to predict, but then I remembered a thought that has been rattling around in my head for a while now.

First, it's hard to believe that this decade is coming to an end already. Ten years ago in December 1999 I was working on that project, which was the absolute antithesis of anything resembling Agile. A year later, I had found out about Extreme Programming and the rest is history. So, onto my predictions...

This prediction isn't so much for 2010, but for the upcoming decade. Looking back at two previous game-changing trends in computing - Relational Database Management Systems (RDBMS) and Object-Oriented Programming - you see a very distinct pattern. There was some initial early work in both areas, but once marketable products became available, both of those trends took about 10 years to become entrenched enough in the market to be considered by mainstream companies. At about that same 10-year mark, there was also significant breadth in terms of the number of products and companies involved. Indeed, it could be considered that at the 10-year mark those respective industries were quite fragmented - different products and companies pushed different approaches and tools.

At the end of 2009, I see the same thing happening in the Agile Software Development world. We are at a point where the mainstream is beginning to consider Agile as the way they should be approaching their software delivery process. We are also at a point where there is a good level of fragmentation in the market - Scrum, Kanban, Lean, Extreme Programming/Industrial XP, Feature Driven Development, RUP and DSDM are all in use to various degrees. There is a level of competition among these approaches not unlike that which occurred between various vendors of RDBMS systems and OO languages. We're also seeing a burgeoning market for tools in the Agile space, especially for those for project management and those that facilitate communication among distributed teams.

For 2010 and on into the coming decade, I see a similar pattern to these other trends. Market leaders will emerge, even if their approach isn't necessarily considered the 'best' by purists (which is arguably already being seen with Scrum). There will be consolidation among approaches, companies and tools, and even a standardization of Agile approaches. For the latter, early work is already occurring for the technical practices in the form of the Software Craftsmanship and Agile Developer Skills movements.

By December 2019, I expect that the number of approaches to Agile Software Development will be down to just two or three. These may not look exactly like the approaches we see today, but their roots will be quite recognizable because they will follow the Values and Principles of 2001's Agile Manifesto. Agile as an approach will be firmly entrenched in the Late Majority, with even Laggards considering it.

Finally, the success rate of software projects will become so high that The Standish Group will cease to publish the CHAOS reports and shut down CHAOS University by around 2016 or 2017. OK, that's a stretch but, with no disrespect intended towards Jim Johnson and the people at Standish, it's a laudable goal nonetheless!

All the best to everyone in the new year and new decade!

[New addition based on feedback from Bob Marshall and Lisa Crispin]

Something I wasn't clear about above - the few processes or methods left in 2019 will likely incorporate facets from all of the ones that we currently see. There will be some variation in order to accommodate different types or sizes of projects or teams, but in the end all processes will be high-level enough to allow individual teams and organizations to tailor the process to their own unique circumstances.

Something Lisa mentioned that I hadn't was that the term Agile itself will slowly diminish in its use over the next decade. This will occur to the point that it will simply be the 'default' way that software is produced, much the same as how the Waterfall became the de facto standard during the 80's.

4 comments:

Bob Marshall said...

Nice post. It may well come to pass that Agile variants are down to just two or three and everyone is using them - but that way lies disaster imo.

Practised Agilistas already recognise that every team works best when they've tailored their process to their own specific context.

So roll on 2010 and let's see what we can all do to make things better! :)

Dave Rooney said...

@Bob,

I wasn't clear in the post - the two or three that exist in 2019 likely won't be any of the ones we see now. They will likely be some combination of the current processes, each with a sweet spot for the type of work to which it would be applied.

Lisa said...

Do you think it's possible that by 2019 nobody will use the word "agile", it will just be the way most (or at least many) people develop software? Kent Beck said to me once back in 2001 something along the lines of he hoped someday there wouldn't be a special term for it like XP, that it'd just be good software development, and that seems like the best outcome to me.

Dave Rooney said...

@Lisa,

Great point! At a recent client, one of the executives with whom I was dealing said essentially the same thing - he wasn't interested so much in getting a stamp that said they were Agile as much as just attaining agility. His starting point was to work towards eliminating the word Agile, and to just have their default delivery process be agile in its nature.