When I scheduled an interview with Steve Hardin, IT Business Edge's VP of software development, to talk about our company's use of agile development, I'd been hearing and reading a lot about agile, interviewed a few other folks about it and hoped Steve could further enlighten me. About midway through our discussion, I discovered ITBE actually uses a hybrid approach that combines elements of agile and more traditional waterfall development.
Steve's explanation: "No one approach is always going to be the best." Mike Beltzner, Mozilla's director of Firefox, made similar comments in an internetnews.com article published earlier this year that detailed Mozilla's use of a hybrid development model for the most recent iterations of the Firefox browser. I especially liked his final quote:
Really, we're not tied to any specific development model. We're tied to what is effective.https://o1.qnsr.com/log/p.gif?;n=203;c=204663295;s=11915;x=7936;f=201904081034270;u=j;z=TIMESTAMP;a=20410779;e=i
Forrester Research analyst David West, speaking during an HP-sponsored Webcast, said many developers view agile as "the ability to respond to change in the most effective way, considering the restraints of the environment in which you're working in." Though agile's popularity is growing, West said he expected more developers would incorporate agile concepts into their current development processes rather than using agile exclusively.
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 interpreted as meaning they may use concepts taken from multiple development methods rather than following any single method.
A SearchCIO.com story conveys the experiences of two companies, sharing the pros and cons of using a blended waterfall/agile approach.
- Incremental delivery of features helps developers identify and build on early success.
- Solving problems as they occur rather than testing and performing fixes at the end of a development cycle reduces the likelihood of fatal system flaws.
- Iterative releases make it easier to accurately forecast delivery times and final budget.
- Agile requires developers to be able to work together as a team. Developers who don't do so may neglect integration issues and interdependencies.
- Team leaders who don't establish and enforce scope and design requirements upfront risk losing control of the project. Though this is also a risk with waterfall projects, it's an even bigger one for agile due to its emphasis on frequent iterations and making changes as you go.