The first time I heard about Agile, I thought it sounded like a load of touchy feely nonsense. Since then I got to practice it, in a really great, open-minded and very capable team, with some members who have been practicing it successfully for a while (we’ve been following the Scrum methodology in particular). I’ve seen the benefits and I can’t imagine going back. It works for the project and it works for the team, and frankly, it seems to me like the best way to work.

However, I’ve seen since then blogs cropping up about how Agile is just a hoax, a fake promise, that’s making a lot of consultants a lot of money but otherwise not doing everyone else any good. Most notable of those was Steve Yegge’s Good Agile, Bad Agile. These views were expressed by bloggers I follow and I believe they generally know what they’re talking about, even if I don’t always agree with them.

So it got me thinking (which is why I read their blogs in the first place): Where lies the truth? Is Agile A Good Thing, or is it a money-making hoax?

I believe the truth lies in the difference between the spirit and the letter of Agile (as with all such things). The spirit of Agile is about self-governing teams, constant customer involvement, team ownership, incremental deliveries and giving-the-customer-what-s/he-really-wants. The letter of the various Agile methodologies is sprints/iterations, stories, standups, estimations, plannings, reviews. So I can understand people’s resentment to the suggestion that keeping to the letter of the law will get you benefits. Introducing daily standups or iterations in your project, while changing nothing else, will yield no results, and the suggestion that it might is absurd. If on the other hand a team is already following the spirit of the law, then they’re already getting the benefits.

Agile is a mindset, not a recipe. Agile practices are there to encourage teams to adopt the correct frame of mind. But make no mistake, the frame of mind is what makes the difference. And it’s not a silver bullet either, it’s just a better way to work and produce software.