Clarity adorns profound thoughts.
—Luc de Clapiers
Iteration Goals are a high-level summary of the business and technical goals that the Agile Team agrees to accomplish in an Iteration. They are vital to coordinating an Agile Release Train (ART) as a self-organizing, self-managing team of teams.
Iteration goals provide the following benefits:
They align the team members and the Product Owner to the mission.
They align the people to the Program Increment (PI) Objectives.
They provide context for understanding and addressing cross-team dependencies.
Whether the teams apply Scrum or Kanban, iteration goals give program stakeholders, management, and Agile teams a shared language for maintaining alignment, managing dependencies, and making necessary adjustments during the execution of the program increment.
As described in the Iteration Planning chapter, the planning process produces three outputs:
The Iteration backlog, consisting of the Stories committed to the iteration
A statement of iteration goals, as shown in Figure 1
A commitment to the work needed to achieve the team’s goals
Iteration goals often reflect the following factors:
Features, feature slices, or feature aspects, such as research and necessary infrastructure
Business or technical Milestones
Architectural, infrastructure, exploration, and compliance activities
Routine jobs and other things, such as maintenance and documentation
Iteration goals are achieved by completing backlog items, even though it may not be necessary to finish every story to meet the goals. In other words, the goals for the iteration override the concerns related to any particular story. On occasion, it may even be necessary to add new user stories to achieve the iteration’s goals.
In the Agile Release Train (ART) context, iteration goals help in understanding and maintaining a larger view of what the team intends to accomplish in each iteration, and what to present in the upcoming System Demo.
Iteration goals support three of the four SAFe Core Values—namely, transparency, alignment, and program execution. Simply committing to complete a set of stories in an iteration is insufficient. Instead, the team must continually review the business value of each iteration, and then be able to communicate it in business terms to the Business Owners, management, and other stakeholders.
Although Kanban teams don’t typically use iterations in the same way that ScrumXP teams do, iteration goals still provide transparency and alignment when they are part of an ART.
The execution of an iteration goes by very quickly. It’s a fast and furious process. Iteration goals help the team and Product Owner reach agreement on the initial business value they intend to deliver, align the team and program PI objectives, and ground everyone in the shared purpose, as summarized in Figure 2.
Agile teams are not islands of agility, but rather integral parts of the broader Program Level context and purpose. As a result, the intent of upcoming iterations requires communication with other teams and the Release Train Engineer (RTE). Iteration goals facilitate alignment with the program PI objectives. In addition, they provide the necessary context for discovering dependencies and developing a resolution, as shown in Figure 3.
Scaling to the program level requires the creation of a leaner, more empowered organization in which management can handle more responsibility, using organization skills to eliminate impediments and drive improvements. However, management cannot and should not relinquish its responsibility to understand what the teams are doing and why they are doing it. Managers are still accountable for the effectiveness of the development organization and the value delivery outcomes. Moreover, aggregating iteration goals for a train provides a simple two-week summary of what’s happening, as depicted in Figure 4.
LEARN MORE
[1] Leffingwell, Dean. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley, 2011.