Iterate

Applicability: Iterative development and delivery is a feature of any truly agile process. Although it is possible to develop products iteratively and without the incremental release of value, this limits feedback and the ability of a team to inspect and adapt their process in an risk-reductive manner. It also results in the depreciation of product worth. The application of iterative development in agile projects must therefore align with the incremental delivery of value.

Consequences: Iterative development allows plans to be revised at regular time-boxed intervals. When accompanied with incremental releases of value, product depreciation is minimized and the risks associated with delivery are reduced.

Structure: A project will have many Sprints (iterations). A team will tackle the project one Sprint at a time. They will select a Sprint Backlog of work from the Project’s Product Backlog. The success of each Sprint can be determined by inspection, and working practices adapted so that future Sprints are more effective.

Intent: Handle small pieces of work at regular intervals

Proverbs:

Also Known As:

Motivation: Linear planning has a very limited capacity to support change, and defers the delivery of value beyond stage gates. The iterative rebaselining of plans minimizes the risk of change and the potential for waste, while also providing regular and frequent opportunities for the incremental delivery of value.

Implementation: The canonical iteration in most agile ways of working is the Sprint. This is a time-box of no longer than one month and always results in a potentially releasable increment. This implementation originated with Scrum but it has subsequently gained wider currency. Each working day is also an iteration, and is commonly demarcated by the inspect-and-adapt opportunity of a Daily Stand-Up. DSDM and XP support iterative feedback at additional levels of granularity.

See Also: