Agile: working software, feedback and change
On this page 2 headings
Plan and document processes brought discipline to software development, but they were not very effective at on-time delivery within budget. Studies of software projects from 1995 to 2013 show that 80–90% of all software projects were late, over budget or simply abandoned, and only about 10–15% were on time and on budget.
| Study | On time & budget | Other outcomes |
|---|---|---|
| Johnson 1995 | 16% | 53% late/over budget/missing function; 31% terminated or abandoned |
| Taylor 2000 | 13% | 87% late/over budget/terminated |
| Jones 2004 | 10% | 20% late/over budget; 70% major delays or terminated |
| Johnson 2013 | 10% | 52% late/over budget/missing function; 38% terminated or abandoned |
To address these problems, in February 2001 a group of software developers met to develop a lighter-weight software development lifecycle, which came to be known as the Agile Manifesto.
4 key principles
| 4 key principles | Over (still valuable) | Explanation |
|---|---|---|
| Individuals and interactions | Processes and tools | Interactions within the team and with clients |
| Working software | Comprehensive documentation | Working software delivered in increments |
| Customer collaboration | Contract negotiation | Collaborate with the customer to understand their exact needs |
| Responding to change | Following a plan | Respond to change whenever required |
Although the items on the right are valuable, the items on the left are more valuable in Agile.
Iterative / incremental development
Agile builds software through multiple iterations, so it is known as an iterative or incremental software development model: teams deliver the product in small increments. Instead of waiting till the end, teams develop prototypes of key features and quickly release them for feedback.
EXAMPLE In the first iteration the team builds features for key requirements, shows them to the client and gets feedback. Even if the client wants changes, the team can quickly refine it in the next iteration.
REMEMBER Agile follows the 4 key principles; short releases and constant feedback are ways to apply them.
