Iterations

Image

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 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 previously developed increments. These short time periods help the team, Product Owners, Product 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 steps in the PDCA learning cycle (shown in Figure 1) corresponds to the following iteration events:

An illustration of the plan-do-check-adjust cycle of an iteration is displayed.

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

Iterations are a single development cycle in which each Agile team defines, builds, integrates, and tests the Stories from its 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 this work as a set of committed Iteration Goals. The specifics of planning will differ based on whether the team works in ScrumXP or Kanban.

Execute the Iteration

Iteration Execution is the process of actually performing the work. 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 about progress toward iteration goals, and raise concerns about blocking issues and dependencies.

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

Iteration Review

The iteration review is the check step in the PDCA cycle. In this review, 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 the system context allows.

Improve the Process

The Iteration Retrospective is the adjust step for the overall iteration. In this step, the team evaluates its process and any improvement stories it had from the previous iteration. Team members 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) happens 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.