I thought I'd better stop talking about all this blogging malarkey and actually start doing it. It's time I imposed my random thoughts on the rest of you!
I've noticed that recently that the hot topic on Agile has been centring on its effectiveness. Officially, Agile Software Development is about five years old (the Agile Manifesto was signed in early 2001, although many of the practices were around in the late 1990s). Back when Agile came into the consciousness of CTOs, those that were enlightened or brave enough jumped on to the bandwagon, hoping that this would mark the end of the masochistic torture that was ‘Waterfall’. The promise of getting what you want (early) and not drowning in documentation and bureaucracy was compelling enough. Today, companies are looking at Agile as an alternative approach to development and they are more circumspect. They are hearing ‘war’ stories in which those who have tried it claim Agile doesn’t work. I’ve not found any statistics yet but I wonder (as I imagine many a decision-maker is also doing likewise) how well Agile projects compare with more traditional and sequential approaches. Remember the oft quoted 75% (this number varies from 60-80%, I guess depending on what constitutes as failure) of IT implementations fail to deliver business benefits. What would it be for Agile projects?
A common explanation for less than successful project outcomes (given by proponents of Agile) is that “the project that you just worked on that was called Agile really wasn’t Agile”. In other words you executed it badly – don’t blame the tools! An article by Scott W. Ambler, “The Agile Edge: How Agile Are You?” tries to put down a few key characteristics that he looks out for when he evaluates whether a project is agile or not. When the characteristics are tools, artefacts or formal activities, they’re relatively easy to spot and rectify. What’s difficult is the ‘softer’ stuff, e.g. individual personalities, team dynamics, organisational culture. What are the characteristics of an agile team or individual? How can we make sure that the right people are chosen so that the resulting team is high-performing and how we can foster behaviour that reinforces the Agile principles?
It’s clear that Agile is suffering from growing pains where it is experiencing greater scrutiny (of its credibility) and trying to define its true identity (what is Agile and what are agile implementations?). And I haven’t yet mentioned User Experience – this thread is to be continued (with answers if you’re lucky)...