Back to top

Iterative Software Development | Agile Consulting

Reduce project risk by developing incrementally

This practice allows teams to:

  • Collaboratively and objectively plan, execute and track the project
  • More effectively manage time, quality and cost expectations and to be agile in response to change
  • Demonstrate working software early in the project
  • Have an operational system available early in the project that incrementally grows to become the completed system
  • Be better equipped to gather important feedback from customers and users
  • Deliver higher quality more frequently
  • Work collaboratively to keep projects on track

Things to Produce

This practice involves the production of a number of management related artifacts:

  • A backlog is populated with tasks related to changes, defects, etc. representing the work to be done
  • The project plan identifies the number and style of the iterations to be performed
  • The plans and iterations are driven by the risks facing the project
  • Iteration plans and assessments are produced to capture the intent and result of each iteration

Key Competencies

This practice requires the team to be skilled in leadership, planning and stakeholder interaction.

Even if this practice is only about leading the project, it still requires the team to have the skills in place to develop quality, working software within the short time-boxes defined by the iterations.

Things to Do

The practice starts by adapting existing project plans to integrate iterations into the project approach.

Objectives, evaluation criteria and work for the first iteration are agreed. The practice then guides the team through the iteration where they apply other practices to achieve the iteration’s objectives. At the end of the iteration, the results are evaluated and used to help adapt the plans to the reality of the project.

This sequence is continued for each iteration the project performs until the project is concluded.


The practice provides a series of patterns that help the team to effectively measure the project’s progress.