The Benefits of Agile Software Development

Jodi Lebow

Agile methods grew out of the real-life project experiences of leading software professionals who had experienced the challenges and limitations of traditional waterfall development on project after project. The approach promoted by agile development is in direct response to the issue associated with traditional software development both in terms of overall philosophy as well as specific processes.

Agile development, in its simplest form, offers a lightweight framework for helping teams, given a constantly evolving functional and technical landscape, maintain a focus on the rapid delivery of business value (i.e., bang for the buck). As a result of this focus, the benefits of agile software development are that organizations are capable of significantly reducing the overall risk associated with software development.

In particular, agile development accelerates the delivery of initial business value, and through a process of continuous planning and feedback, is able to ensure that value is continuing to be maximized throughout the development process. As a result of this iterative planning and feedback loop, teams are able to continuously align the delivered software with desired business needs, easily adapting to changing requirements throughout the process. By measuring and evaluating status based on the undeniable truth of working, testing software, much more accurate visibility into the actual progress of projects is available. Finally, as a result of following an agile process, at the conclusion of a project is a software system that much better addresses the business and customer needs.

The diagram below displays the differences between agile and waterfall development processes. By delivering working, tested, deployable software on an incremental basis, agile development delivers increased value, visibility, and adaptability much earlier in the life cycle, significantly reducing project risk.

Problems with Traditional Software Development

According to the Standish Group's famous CHAOS Report of 2000, 25% of all projects still fail outright through eventual cancellation, with no useful software deployed. Sadly, this represents a big improvement over CHAOS reports from past years. And now there is more evidence of the same kind. In Agile and Iterative Development: a Managers Guide, renowned consultant and author Craig Larman does a thorough job of debunking the traditional waterfall model once and for all.

The numbers are overwhelming. A study in the United Kingdom shows that of 1,027 projects, only 13% did not fail, and waterfall-style scope management was the "single largest contributing factor for failure, being cited in 82% of the projects as the number one problem." A 1995 study of over $37 billion USD worth of US Defense Department projects concluded that "46% of the systems so egregiously did not meet the real needs (although they met the specifications) that they were never successfully used, and another 20% required extensive rework" to be usable.

Larman also points that in "another study of 6,700 projects, it was found that four out of the five key factors contributing to project failure were associated with and aggravated by the waterfall model, including inability to deal with changing requirements, and problems with late integration." Another study of over 400 waterfall projects reported that only 10% of the developed code was actually deployed, and of that, only 20% was actually used.

These numbers reinforce what many of us have experienced personally: the waterfall approach is a risky and expensive way to build software systems. This is the real reason why the much of industry is investigating and/or implementing agile alternatives.

Looking for a Tool to Support Your Agile Software Development Efforts?

See how VersionOne helps you easily plan and track your agile software projects, releases and iterations with drag-and-drop simplicity using a familiar spreadsheet and whiteboard-style user interface.

Previous Article
Pair Programming: Agile Programming Best Practices
Pair Programming: Agile Programming Best Practices

Proponents of pair programming (“pairing”) claim it boosts long-term productivity, but pairing is by far th...

Next Article
Scrum Reference Card
Scrum Reference Card

Learn about Scrum process, roles, ceremonies