What Is an Iteration?
An iteration is a single, timeboxed event. In software development, teams typically schedule a sequence of iterations for two weeks to build and deliver a product. Each iteration produces rapid feedback to ensure the product continuously delivers business value.
Iterations, sometimes called sprints, are most commonly used in Agile methodology. Because software releases occur in a rapidly changing environment, teams build software incrementally. Engineers continuously develop the software after each iteration, using the data from the previous sprint to make adjustments and ensure a high-quality product.
As part of a process improvement method, iterations occur in an operational environment, where software teams test business and technical solutions while simultaneously delivering the product. This method supports the team in executing their goals quickly, getting feedback, assessing performance, and improving their process before the next iteration.
Lean development, an abbreviated version of the Agile methodology, relies on cohesive, self-organizing teams that deliver work at a sustainable, indefinite pace. Lean teams complete an iteration cycle with a plan, do, check, act (PDCA) framework.
What Is the Iteration Planning Process?
The iteration planning process orients team members to business goals and objectives. It is the first step in the PDCA framework. During the process, the software development team determines what they need to accomplish during the iteration.
Philippe Kruchten is a Professor of Software Engineering at the University of British Columbia. He distinguishes between traditional engineering projects and software projects: “Traditionally, engineering projects are done in one sequence. They also have a clear beginning and a clear end. Software projects follow a somewhat different course: as a sequence of small iterations, usually a week or two weeks, up to a few weeks for very large ones. Most software endeavors in our industry are the continuous evolution of an existing code base, and we see continuous delivery with no end. Planning takes the form of an overall project plan, very coarse-grained, and a sequence of very short iteration plans.”
There are five steps in the iterative process, which you repeat in a cycle as many times as necessary until you realize your final product:
- Planning and requirements
- Analysis and design
- Implementation
- Testing
- Evaluation and review
Any project that uses this iterative process is called an iterative project. Within the project, iteration planning occurs at the higher-level, goal-setting point and in a meeting before each smaller iteration.
In iteration planning for a large project, Kruchten shares that you need the following:
- An up-to-date project or product plan
- A good understanding of the current state of the project
- Immediate objectives (often derived from a backlog of things to do)
- Cost estimations for backlogged items
- Resourcing availability
- A list of other tools that the team will depend on to complete the project or product
Agile software development methodologies and frameworks, such as Scrum or Kanban, use iteration planning as an event at the start of an iteration or sprint. This activity aligns the following team members:
- Scrum Master or Team Agility Coach: This person facilitates the meeting.
- Product Owner: The product owner approves the acceptance criteria and owns the backlog details.
- Development Team: This team defines and assigns iteration tasks, determines each task’s effort needed, and commits to delivering the iteration goals.
- Stakeholders, Subject Matter Experts, and Other Agile Team Representatives: These people are optional planning members who help with relevant details.
Iteration Planning vs. Sprint Planning
While development teams use the terms iteration planning and sprint planning interchangeably, the two differ in how the team assigns tasks. In sprint planning, teams prioritize tasks in the product backlog; in iteration planning, teams focus on user stories.
During a sprint planning meeting, the team estimates the work needed for the Product Backlog Item (PBI), then pulls a PBI to work on. This item is a single task, such as a bug fix, specifications, or a new feature request. The team then breaks down the PBI into user stories.
For iteration planning, the team estimates work directly from user stories to concentrate on the end user’s needs.
According to Allan Kelly, an author, a speaker, and an Agile consultant for his company Software Strategy, Ltd., “iteration planning and Scrum planning are interchangeable. Nine times out of 10, the people using the term mean the same thing. Rather than people saying, ‘How long will this take?’ [as in traditional project management], they say, ‘What can we do in the next two weeks?’ In other words, sizing the timebox.”
Iteration Planning vs. Release Planning
Iteration planning focuses on the work in an iteration; release planning prioritizes managing the product release from an iteration sequence. Iteration planning creates sprint tasks that teams must complete; release planning focuses on end results and user stories for product completion.
Iteration Planning | Release Planning | |
---|---|---|
Length of Time | 1-4 weeks, typically 2 weeks |
2-6 months |
Essential Question | Answers the “how” question (i.e., “How are we going to get there?”) |
Answers the “what” questions, (i.e. “What will be done, what can we deliver?”) |
Estimation Method | Tasks within the iteration or ideal hours |
User stories, story points, features |
Who Is It For? | Internally, for the development and business team |
Externally, for customers |
Flexibility | Plans do not change once decided |
Plans can change as needed |
Product | Demo-able features that are potentially shippable |
Shippable features for customers in a product release |
Goals of Iteration Planning Process
The goals of the iteration planning process are to create, inspect, and adapt your system to produce work. In research-driven fields, iteration planning helps professionals find concrete answers; engineering and similar fields aim to create working tested software and systems.
Additionally, managers use the goals to ensure business objectives align with the iterative process throughout the cycle. Also, in software development, the goals of each increment add new features and functions to existing software.
Iteration Planning Process in Software Project Management
In software project management, managers use iteration planning to align a project and synchronize team contributions to the product release. The manager leads the product vision from engineering to production and synchronizes smaller iterations across multiple teams and development stages.
Grist Project Management summarizes the iteration planning process for software projects. In this context, the process helps the software move through two large phases (engineering and production), with two iteration stages under each phase (inception and elaboration, and construction and transition, respectively). Each iteration stage might require micro-iterations to complete each cycle.
Phase | Iteration | Iteration Activities and Outputs | Recommended Number of Iterations |
---|---|---|---|
Engineering | Inception |
Activities: Use early prototyping activities and develop an executable framework based on the use case. Output: A prototype of the software’s architecture, also called infrastructure. |
1 |
Elaboration |
Activities: Execute the framework and use case from the previous iteration to build a completed architecture. Test for faults for worst-case scenarios. Output: An architecture prototype and baseline. |
2 | |
Production | Construction |
Activities: Develop the product to an Alpha release, or about 70 percent close to the final product for the use case. Develop the product to a Beta release, or about 95 percent of the final product for the use case. Output: Alpha and Beta product releases. |
2 |
Transition | Activities: Transition the product from the Beta release to the final product. | 1 |
Iterative Project Plan Example Template
Download Iterative Project Plan Example Template for Microsoft Excel
Download a Blank Iterative Project Plan Template for
Microsoft Excel | Google Sheets
Use this iterative project plan example to help you get started on your next iterative software development project. Guide your project through the inception, elaboration, construction, and transition phases, with editable example tasks to meet requirements, design, and analysis expectations, and to complete phase milestones. Plus, view the team’s progress in real time on the Gantt chart.
Iteration Planning Meeting
An iteration planning meeting is the first part of an Agile iteration cycle. During the meeting, the team organizes and self-assigns the upcoming tasks. The product owner facilitates the meeting. Planning ends once the team agrees on the goal.
Kelly shares, “At a most basic level, the meeting is a time to focus the team for the next two weeks and get an agreement on the business side (represented by the product owner) and the engineering side (represented by the team) on what they’ll put their effort into.”
Before arriving at the meeting, the product manager prepares one or two sentences describing the iteration’s business objectives. The team discusses the goal(s) and collectively agrees on an iteration goal, or what can be delivered during the sprint.
In practice, planning meetings differ between teams. Kelly notes that “two teams can read the same book and go through the same training, but have totally different interpretations. On paper, it seems clear, but what I see in reality differs. However, all teams go through similar steps to answer ‘What is it we intend to do?’ and, ‘Do we think we can do it?’”
Iteration Planning Meeting Agenda
An iteration planning meeting agenda helps the team accomplish the meeting’s objective within the timebox constraints. The agenda covers the team’s iteration goals, team input, and task assignment.
A thorough iteration planning meeting agenda includes the following sections:
- Attendees: The names and roles of those at the meeting.
- Capacity: Each team member shares their availability to establish the capacity.
- Iteration Goals: The developers and product owner elaborate on the initial planning goal, and commit to it.
- Relevant Issues: The product owner might share any new information that impacts the plan with the team. Team members share any issues or concerns they have.
- Story Analysis and Estimating: The development team analyzes the user stories or product backlog items and estimates how long each item will take to complete in isolation. Development team members determine how to assign tasks. The team might use relative sizing to estimate the relative effort and time a task takes.
- Timebox: The time limit for the meeting. The time limit should not exceed four hours when planning for a two-week iteration.
- Velocity: Calculate the team’s speed from the previous iteration.
Iteration Planning Agenda Template
Download Iteration Planning Agenda Template for
Microsoft Word | Google Docs
Prepare your next iteration planning meeting with this fully customizable agenda template. The template provides a numbered framework for covering each meeting step and keeps you on track with action items and time duration for each task. Use the template to lead your software team to an agreed-upon goal.
What Is Iteration Planning in Agile?
In Agile methodology, iteration planning is an event at the beginning of a typical two-week work sprint. This planning session occurs during a meeting before each spring cycle begins and follows the Agile method to continuously build and deliver software.
Agile projects consist of a sequence of iterations. Planning is essential to organize the tasks, estimate the effort, and keep a realistic scope within each spring cycle.
Software teams use Agile methods to incrementally deliver software. This approach simultaneously adds business value through usable software while developing and testing the next release.
Some companies employ Scaled Agile Framework (SAFe) to maintain an Agile environment across a large company. Management coordinates and plans iterations in an initial Program Implementation (PI) meeting.
How to Do Iteration Planning in Agile
Iteration planning in Agile starts after you close out the previous iteration and perform a retrospective. The software team defines the scope together. They use inputs, such as feedback and historical data, to estimate how long each task will take.
Before a team begins the formal iteration planning ceremony, they size the Product Backlog Items and estimate relative story values in a process called story points estimation. The product owner ranks the PBIs based on priority, prepares preliminary iteration goals, and defines completion criteria called the definition of done.
The meeting involves the following activities:
- Choose the highest-ranking PBI and discuss technical issues, dependencies, implementation, and any nonfunctional requirements (NFR) necessary to complete the item.
- Define acceptance criteria, or conditions of satisfaction, for each story.
- Estimate the effort needed to complete each story.
- Select the stories the team can complete for the cycle within the team’s capacity.
- Break down any large stories into smaller tasks, if needed.
- Assign ownership for each task. Each team member self-assigns the tasks based on their skills and capacity.
- Estimate the ideal hours needed to complete the task.
- Create an iteration or sprint backlog from the selected PBIs (optional).
- Redistribute tasks if one team member has exceeded their individual capacity.
- Finalize the iteration’s goals in a statement of iteration goals.
- Commit to the goal.
Here are additional tips for getting the most out of the meeting:
- Encourage the team to underpromise and overdeliver. This ensures the team’s success throughout the sprint and empowers the developers.
- Look for opportunities that support self-organization. Allow the team to own the process and make adjustments based on their past experience.
- After the session, the product owner does not make new requests or adjustments until the next iteration meeting.
- Use best practices in Agile planning to learn tips in the context of other Agile planning techniques.
The inputs of the iteration planning meeting are as follows:
- Feedback: This includes data collected from the previous iteration.
- Issues: Bring any team issues and critical risks that might impact the upcoming iteration’s process.
- Objectives: These are high-level goals developed either by the Program Increment (PI) Planning team, the product owner, or other management.
- User Stories: Create new stories or contextual stories supporting the new feature’s delivery.
The outputs of the iteration planning meeting are as follows:
- Scope: Define the iteration’s constraints, stated as an iteration goal.
- Workload: Assign tasks to each team member.
- Committal: Come to an agreement before the iteration starts.
In Agile, iteration planning activities drive decisions with a technique called capacity planning. At a high level, the team selects the highest-priority backlog items, estimates the work necessary to complete the item, and commits to completing the work. Each development team member quantifies their capacity for the upcoming iteration.
A team member measures their capacity based on three factors:
- Ideal hours for each cycle day
- Availability during the duration
- Time the person has to dedicate to the team, calculated as a percent
A mature team, one that has worked together long enough to become self-organizing and has an established velocity, can more accurately predict their capacity. Younger teams have not yet established a stable or consistent velocity and will need to perform multiple iterations before they are able to predict more accurately.
Agile Iteration Planning Template
Download Agile Iteration Planning Template for
Microsoft Excel | Google Sheets
Use this Agile iteration planning template to help you prepare before and during your next iteration planning meeting. Keep your individual and sequential iterations organized and in one place with this product backlog table and chart. Record your user stories, tasks, story points, estimates, and assigned team members within the template so that you’re ready to go for the upcoming iteration.
View our range of free Agile project management templates for more help jump-starting your next Agile project.
Best Practices for Iteration Planning
Best practices for iteration planning include techniques that empower your team. You can support your team with a bottom-up approach, which helps the team own their work and self-organize. It is also important to keep your planning session timeboxed.
Here’s a quick roundup of best practices for iteration planning:
- Timebox your meeting to no more than four hours for a two-week sprint.
- Arrive at the meeting with goals and a flexible mindset.
- A healthy team self-organizes or doesn’t need the manager to assign work. They are responsible and possess a high level of ownership. A strong communication culture displays a high level of trust among team members. A manager can help move the team to self-organize first by training and coaching as they learn, and then stepping back to become a mentor.
- Kelly offers that involvement and engagement are key to developing trust. “When the team can be involved more, then the team can be more engaged,” he says. “Engineers need to feel this trust and safety in the environment. That can’t be fixed overnight [if it doesn’t exist]. Be prepared to do slightly less upfront work and be more available to the team, and directly say, ‘I am available’ to help build psychological safety.”
- Additionally, Kelly emphasizes that product owners should be ready to have conversations with the team. “The work you do ahead of time isn’t completely defined — it’s a placeholder for the team to talk about [anything that comes up].” Product owners can avoid team conflict and extra work by finding the balance between too much and too little preparation in advance.
- In addition to keeping actual data from past projects and updating the overall plan after each iteration, Kruchten recommends that you “look at regular intervals at what we have done, good and bad. Draw lessons from it to avoid making the same mistakes again and again.”
You can find more best practices by reading about sprint iteration planning.
Iteration Planning Challenges
Iteration planning challenges generally occur when the meeting does not have a goal or the software development team has not matured as a cohesive team.
Specifically, challenges arise for a product owner and the team when the following occur:
- The product owner does not understand the team’s velocity.
- You don’t outline a goal before the meeting starts.
- The team members have a challenging dynamic.
- The planning time is interrupted frequently.
In Kruchten’s experience, “Most of the challenges are related to people, their attitude, knowledge, experience, and behavior — not software or tools. But the latter are the ideal scapegoats.”
As Kelly points out, “One of the challenges is if you have a PO who isn’t on top of their brief or developers who don’t know your domain. POs are frequently short on time – when you don’t have that time, things go wrong.”
Get the Most Out of Iteration Planning with Smartsheet for Project Management
From simple task management and project planning to complex resource and portfolio management, Smartsheet helps you improve collaboration and increase work velocity -- empowering you to get more done. The Smartsheet platform makes it easy to plan, capture, manage, and report on work from anywhere, helping your team be more effective and get more done. Report on key metrics and get real-time visibility into work as it happens with roll-up reports, dashboards, and automated workflows built to keep your team connected and informed. When teams have clarity into the work getting done, there’s no telling how much more they can accomplish in the same amount of time. Try Smartsheet for free, today.