The use of Agile and its related methodologies (e.g., Scrum, Extreme Programming) has many vocal supporters these days, and its use continues to grow in leaps and bounds. As I wrote about recently, it’s also not just for software development anymore. Basically, Agile is the greatest thing since sliced bread, yes?
Well, it depends whom you ask.
For example, according to the 200 people from both tech and non-tech companies recently surveyed by voke, you get a different answer. While you can buy the report yourself for $150, the folks at Application Development Trends provide a nice summary of the results. In a nutshell, the study found the majority of respondents found the transition to Agile confusing, few reported success in using it and many felt that developers rely on it to avoid unwanted tasks (such as planning and writing documentation). In the end the report concludes that Agile is a scam for selling related services (e.g., training and certification).
But other than that, how did you enjoy the play, Mrs. Lincoln?
Naturally, it’s not surprising that not everyone is on board the Agile bandwagon; something that so many folks feel passionately about it is bound to generate some push back. Turns out there’s a healthy anti-Agile community out there, if you start looking for it. Some folks have even devoted entire (often entertaining) blogs to why Agile is, to put it kindly, a bad idea.
Many of the complaints that the anti-Agile population raise have to do the with the lack of upfront planning and the failure to define clear deliverables and schedules, upon which business decisions can be made and budgets planned. They argue that in the drive to be responsive to change, Agile processes lead to bloated code that needs to (or should be) constantly refactored and, ultimately, higher costs, since the price of change rises over the life of a project.
...XP is new and evolving. It's young, naive and popular amongst programmers. The trouble is, in many ways it's a leap in the wrong direction.
Likewise, in 2003 Gerold Keefer studied the effect of XP on software development and concluded:
If your project is small, fast delivery of "something running" is top priority, your business environment is volatile, the professional level of your developers is high, and the technical constraints are rather shallow, Extreme Programming might be an option for you. In most other cases Extreme Programming is a method that is likely to introduce a high degree of unnecessary risk.
More recently, corporate IT lawyer Alistair Maughan argued that Agile is particularly ill-suited for government projects, since government procurement rules usually requiring knowing the cost and final product up-front, while Robert Bryan said that Agile processes turn development projects into maintenance projects early, leading to too much overhead and significant inefficiencies.
My take? I think these people all raise reasonable questions and concerns (e.g., What’s the actual cost of pushing out the requirements gathering to later in the process? Does Agile really discourage documentation? etc.) that are fair to consider when evaluating Agile. However, I think that the anti-Agile concerns are overblown and that Agile and Agile-based methodologies, for the most part, have a lot to offer. But, hey, nothing’s perfect, right? Except for my kids, of course (ha).
Thoughts? Are you pro or anti-Agile? Let us know!