SECTION 12 / 14

Agile: working software, feedback and change

2 min read
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.

StudyOn time & budgetOther outcomes
Johnson 199516%53% late/over budget/missing function; 31% terminated or abandoned
Taylor 200013%87% late/over budget/terminated
Jones 200410%20% late/over budget; 70% major delays or terminated
Johnson 201310%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: people, working software, collaboration and change.
4 key principles: people, working software, collaboration and change.
Open image ↗
4 key principles: people, working software, collaboration and change.
4 key principlesOver (still valuable)Explanation
Individuals and interactionsProcesses and toolsInteractions within the team and with clients
Working softwareComprehensive documentationWorking software delivered in increments
Customer collaborationContract negotiationCollaborate with the customer to understand their exact needs
Responding to changeFollowing a planRespond 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.

Incremental development: planning → requirements → analysis & design → implementation → testing → evaluation, repeated; then deployment.
Incremental development: planning → requirements → analysis & design → implementation → testing → evaluation, repeated; then deployment.
Open image ↗
Incremental development: planning → requirements → analysis & design → implementation → testing → evaluation, repeated; then deployment.

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.

Small increments allow the customer to see progress and respond early.
Small increments allow the customer to see progress and respond early.
Open image ↗
Small increments allow the customer to see progress and respond early.

REMEMBER Agile follows the 4 key principles; short releases and constant feedback are ways to apply them.

YOUR STUDY PROGRESS

Finished this section? Save your progress.

Back to top ↑