Software developers can be extreme people. (Maybe it's all those late night/early morning, Red Bull-fueled code fests.) So it's not surprising there's a variant of agile software development called extreme programming. But not all programmers are extreme.
Even if they are, they may find that extreme adherence to agile, or other development methods, doesn't yield the best software. Steve Hardin, IT Business Edge's VP of software development, said as much, when I spoke to him about agile earlier this month.
"No one approach is always going to be the best," he told me, which is why ITBE uses a development process that is largely agile but incorporates some elements of more traditional waterfall development. The main agile principles stressed by Hardin at ITBE involve developers producing more frequent deliverables and communicating closely with business users.
ITBE apparently isn't alone in picking and choosing certain aspects of agile rather than strictly adhering to agile development methodology. Citing Forrester Research data and an HP-sponsored webcast featuring Forrester analyst Dave West, a DevX.com article says many organizations use a similar approach. Said West during the Webcast:
Though agile is very popular, we're seeing that what developers want is agile++. There isn't just one agile: "Agile" is really the ability to respond to change in the most effective way, considering the restraints of the environment in which you're working in.
Rather than a wholesale adoption of agile, West said he expects more developers to incorporate agile concepts into their current development processes.Thirty-five percent of developers surveyed by Forrester in late 2009 said they were using agile development. A surprising 31 percent said they don't follow a software methodology at all, which West interprets as meaning they may use concepts taken from multiple development methods rather than following any single method.
One necessity with agile, or any other development method that emphasizes frequent software deliverables, is more robust build and deployment processes and more frequent testing, West said.