In this topic, we described about the below sections -
What is Iteration Planning?
Iteration Planning is defined as an event in which all the team members would determine the amount of team backlog that they can commit in order to deliver during the next iteration.
Team would plan by selecting stories from the team backlog and committing to execute a set of them in the upcoming iteration. Team's backlog would be chosen and planned partially during the Program Increment Planning. Additionally, teams would have feedback not only from their priorities but also from the system Demo and the other teams they are working with. The output of the Iteration Planning would be:
- An Iteration backlog which consists of stories committed to be done for the iteration with Acceptance Criteria which is clearly defined.
- A statement of iteration goals in a single statement which clearly state the Business objective of the iteration.
- A commitment towards the work that is needed in order to accomplish the goals.
Attendees of the iteration planning would include -
- The product owner
- The Scrum Master, who would act as the facilitator for this event.
- All the team members.
- Any other stakeholder as required.
Prerequisites of Planning
- Items in product backlog would be sized and they would have a relative story point assigned.
- Ranking has been given to portfolio items by the product owner.
- Acceptance criteria would be stated clearly for each portfolio item.
Following are the steps involved in iteration planning −
- Determine the number of stories that can fit in an iteration.
- Break these stories into tasks and assign each task to their owners.
- Each task would be given estimates in hours.
- These estimates would help the team members to check how many task hours each member have for the iteration.
- Team members would be assigned tasks considering their velocity or capacity so that they are not overburdened.
In Agile, Velocity would be calculated based on the past iterations. Velocity is an average number of units that are required to finish user stories in an iteration. Planned velocity tells the team about how many user stories would be completed in the current iteration. If the tasks that are assigned to the team are finished soon, then few more user stories can be accommodated within the same time frame. Otherwise, the stories can be moved out too to the next iteration.
The capacity of a team would be derived from three facts -
- Number of ideal working hours in a day.
- Available days of the person in the iteration.
- Percentage of time a member is exclusively available for the team.
Suppose a team of 5 members is committed to work full time on a project and every team member is present in the team, then the task capacity for a two-week iteration would be 5*8*10 =400 hours.
Initially, the team members would quantify their capacity in order to perform work in the upcoming iteration. Every team member would determine their availability, acknowledging the time off and other works. This activity would also stand for other commitments such as maintenance, which is distinct from new story development. Based on the historical velocity as a starting point, the team would adjust based on the unavailable time for each team member to determine the actual capacity for the iteration.
Story Analysis and Estimation
Team's backlog would be reviewed. Each story would be discussed, covering the relative difficulty, size, complexity, uncertainty, technical challenges, and acceptance criteria. Teams would use the Behavioral Driven Development method mostly to ensure that shared understanding the behavior of each story's specific behavior. Finally, the team would accept to a size estimate for a story.
Once the tasks are identified, team members would discuss each one such as who can accomplish them better, time taken to accomplish them, dependencies it would have on other tasks or stories. Then, each team member would take a task and its responsibilities. After that, their individual iteration capacity would be reached to zero.
- Product Owner would describe the highest ranked item of product backlog.
- Team would describe the tasks required to complete the item.
- Team members own the tasks.
- Team members would estimate the time to finish each task.
- These steps would be repeated for all the items in the iteration.
- If any individual is overloaded with tasks, then his/her task would be distributed among other team members.
The actual purpose of Iteration Planning is to organize the work and define the actual scope for the iteration. Every Agile team would agree on a set of stories for the upcoming iteration and would summarize those stories into a set of goals. Iteration backlogs and goals would be based on the team's capacity and would be allowed for consideration of each story's complexity, size and dependencies on the other stories and other teams. At the end of planning, the teams would commit to goals of the iteration and make necessary adjustments to the stories in order to achieve a bigger goal. Management would not interfere or adjust the scope of iteration. They allow the team to stay focused.