Wednesday, June 14, 2006

Don't abandon agile

Reading blogs last week I came across Agile People Still Don't Get It along with people responding to the post, including links to the Pliant Alliance, and what appeared to be plenty of posts concerning "large 'A' agilists", who remain nameless. I don't want to single out any specific writer, since it was a common thread, but it appears to me that the agile approach to development is being politicised, fractured, and misrepresented. While I'm willing to believe there are plenty of well intended authors, I also suspect manipulation and hidden agendas.

A classic approach to attacking an idea, often used in politics, is to redefine it then attack the new definition. This is often referred to as attacking a "straw man". A variant on the approach is to take to characterise an individual's views as representative of a much larger group of people, then use an attack on the individual's approach/ideas as a de facto attack on the more general group. A third is the ad hominem attack - questioning a person's motives rather than their position. These can all be applied consciously and maliciously, or in a simply sloppy way through careless construction. I think we're seeing a little of each, though it's impossible to tell. Plus we're seeing the impact of the internet level-playing field, where all voices are potentially equal and if enough people are saying something then it gradually aquires the weight of truth.

For example, while I was reading, I found some interesting questions asked on the Pliant Alliance site:

Just so we don’t get accused of being complete snotty Agile bashers, I wanted to point out this page on the XP website. It basically says what PSD says, which is to fix the process when it is broken and improve the way software is being developed.

So this is a bit of a conundrum. If the XP website itself has some pliant leanings, why has XP, along with the other Agile processes gotten so many people frustrated? Has agile become the victim of book sellers and process consultants? Is it the monetization of the process(es) that has led “agile” to mean something completely different than what was originally intended? And if so, how could we have let this happen?

Adaptation has been part of agile processes from the beginning - I don't understand why it is so often ignored. Is it ignored willfully, deliberately, or through ignorance? The answer is inherently both - I think there are people who ignore it willfully, and their version of agile, san adaptability, is repeated enough that for many people it's the only version of agile that they hear about. The same can be true of any agile practice. Of course it would be easy to go too far the other way and use "then just change it" to address any and all shortcomings, but it is core to agile development that if some practice isn't working, then the team should consciously and deliberately change it. To pick one agile practice, probably an XP practice), say that doesn't work in my context, and then generalise to "agile doesn't work" is a big leap at best, and deceptive at worst.

Another thing that distresses me is that many critics want to write off agile completely, not just in any particular context. It distresses me because I don't want to go back to the situation I was in two years ago, where I frequently had to justify agile development to a hostile crowd, rather than an agnostic one. I'm very happy for people to say that agile doesn't work in their environment (though it would be even better for them to be even more specific, and possibly say which practices didn't work), or with their team, or with their customers, but I wish people would retract the blanket statements. I suspect it's a reaction to the zealous undercurrent within the XP community, who frequently (when I was watching the XP discussion group) would say that "if XP isn't working for you, you're not doing it properly", but those people never spoke for the people who wrote the agile manifesto.

It's possible that "agile" is impossible to defend, because you can pick any from any author and tag it "agile" without too much risk of contradiction. In the last five years, lots of thinking about agile development has matured. Certainly there are things that I said five years ago that I wouldn't say now. And certainly, especially early in agile development's history, provocative things were said to move the debate. This seems to have been lost on many people - if agile hadn't taken an extreme position early on (pun intended), it would have been very easy to ignore. Instead it provoked a response. Even if we only consider TDD, "agility" has changed the way that we develop software.

Hi, I'm Steve Hayes, and I do agile development. It's an inclusive, people-centred approach to doing iterative, incremental software development. It uses a combination of technical and social practices to increase collaboration and reduce feedback cycles. Agile development works best with an experienced team, as do most development methodologies. For the best results, agile practices should be customised to suit the strengths and weaknesses of your team, and the peculiarities of your domain. Agile development is not suitable for every project, or even every team. It has strengths, and it has weaknesses. There is no silver bullet.

No comments:

Post a Comment