Steve Yegge writes about the good and bad aspects of agile software development:
I would caution you to be skeptical of two kinds of claims:
– “all the good stuff he described is really Agile”
– “all the bad stuff he described is the fault of the team’s execution of the process”
You’ll hear them time and again. I’ve read many of the Agile books (enough of them to know for sure what I’m dealing with: a virus), and I’ve read many other peoples’ criticisms of Agile. Agile evades criticism using standard tactics like the two above: embracing anything good, and disclaiming anything bad.
If a process is potentially good, but 90+% of the time smart and well-intentioned people screw it up, then it’s a bad process. So they can only say it’s the team’s fault so many times before it’s not really the team’s fault.
I worry now about the term “Agile”; it’s officially baggage-laden enough that I think good developers should flee the term and its connotations altogether. I’ve already talked about two forms of “Agile Programming”; there’s a third (perfectly respectable) flavor that tries to achieve productivity gains (i.e. “Agility”) through technology. Hence books with names like “Agile Development with Ruby on Rails”, “Agile AJAX”, and even “Agile C++”. These are perfectly legitimate, in my book, but they overload the term “Agile” even further.
And frankly, most Agile out there is plain old Bad Agile.