None of my inventions came by accident. I see a worthwhile need to be met and I make trial after trial until it comes.

—Thomas Edison

 

Iterations

Iterations are the basic building block of Agile development. Each iteration is a standard, fixed-length timebox, where Agile Teams deliver incremental value in the form of working, tested software and systems. The recommended duration of the timebox is two weeks. However, one to four weeks is acceptable, depending on the business context.

Iterations provide a regular, predictable cadence for teams to produce an increment of value, as well as to refine those previously developed. These short time periods help the team, Product OwnersProduct Managers, and other stakeholders test the technical and business hypotheses in a working system. Each iteration anchors an integration point, a ‘pull event’ that assembles various system aspects—functionality, quality, alignment, and fitness for use—across all the teams’ contributions.

Details

Since the shortest sustainable lead time is a significant goal of SAFe learning cycles, Agile teams execute a full plan-do-check-adjust (PDCA) cycle as quickly as possible. The PDCA learning cycle (shown in Figure 1) represents the following iteration events:

Figure 1. Plan-do-check-adjust cycle of an iteration

Iterations are a single development cycle where each Agile team defines, builds, integrates and tests the Stories from their iteration backlog. Each iteration ends with an inspection of the team’s increment to assess progress, as well as an updated backlog for the next iteration. Next, the team prepares and participates in the System Demo that gives an integrated view of the new Features for the most recent iteration delivered by all the teams in the Agile Release Train (ART).

Plan the Iteration

The Iteration Planning meeting is the ‘plan‘ step of the PDCA cycle. It aligns all team members to the common goals described by the Team PI Objectives and to the outcome to be demoed at the Iteration Review and system demos.

During this event, all team members collaborate to determine how much of the Team Backlog they can commit to delivering during the upcoming iteration. The team summarizes the work as a set of committed Iteration Goals.

The specifics of planning, however, will differ based on whether the team works in ScrumXP or Kanban.

Execute the Iteration

Iteration Execution is the process of how the work takes place. During the iteration, the team completes the ‘do‘ portion of the PDCA cycle by building and testing the new functionality. Teams deliver stories incrementally, demoing their work to the Product Owner as soon as they are done, enabling teams to arrive at the iteration review ready to show their completed work.

The Daily Stand-up (DSU) represents a smaller PDCA cycle within the iteration. Every day, team members meet to coordinate their activities, share information with each other about progress toward iteration goals and raise blocking issues and dependencies.

The iteration cadence occurs within a larger Program Increment (PI) PDCA cycle. The PI aggregates the value developed by each Agile team into a meaningful Milestone to measure the solution under development objectively.

Iteration Review

The iteration review is the ‘check‘ step in the PDCA cycle. This review is where the teams show a tested increment of value to the Product Owner and receive feedback on what they’ve produced. Some stories will be accepted; others will be refined by the insights gained during the iteration. The team will then do some final backlog refinement for the upcoming iteration planning.

Following the iteration review, team members participate in an integrated system demo. This demo is the first, formal integration point across teams on the ART, and it serves as a ‘pull event’ to ensure early integration and validation at the Program Level. Within the iteration, the system increment is continuously integrated and evaluated as their system context allows.

Improve the Process

The Iteration Retrospective is the ‘adjust‘ step for the overall iteration. Here, the team evaluates its process and any improvement stories it had from the previous iteration. They identify new problems and their causes—as well as bright spots—and create improvement stories that enter the team backlog for the next iteration. This regular reflection is one of the ways to ensure that relentless improvement (one of the pillars of the SAFe Lean-Agile Mindset) is happening at the Team Level. Iteration retrospectives also drive program-level changes to process immediately or at the Inspect and Adapt (I&A) event.

Before the next planning cycle begins, the backlog is refined to include the decisions from the iteration review and retrospective. The Product Owner refactors and reprioritizes new and old backlog items as needed.


Learn More

[1] Cockburn, Alistair. “Using Both Incremental and Iterative Development.” STSC CrossTalk 21, 2008.

[2] Maurya, Ash. Running Lean: Iterate from Plan A to a Plan That Works. O’Reilly Media, 2012.

Last update: 6 November 2017