While working on any product, proper planning and detailed strategy are necessary. Whether it is about people, time, and effort required to complete that project, you must analyze it beforehand.
With the introduction of Agile and its frameworks like Scrum, every process within product development gets streamlined. But without planning, you cannot get success while implementing the agile approach, resulting in failed projects.
Each team member must know their workload and available resources to complete the task. This planning gets complex as the product complexity increases. Thus, capacity planning must maintain the team’s sanity and help them be productive.
This is where capacity planning jumps and helps team members to keep tapping on every step.
In this article, we have explained the concept in detail so that you can plan your product development efficiently.
So, what exactly is capacity planning?
Agile allows the team member to break down the user stories into several smaller and manageable tasks that need to be completed within a time-boxed iteration, called sprints. The team can decide the duration of the sprints from two weeks to a month, depending on the resource and efforts required. The preferred length of the sprint/iteration is 2 weeks.
Once the team gets the backlog for the iteration in the form of user stories, it starts with gathering and analyzing requirements, and then what?
This is where planning comes into the picture. While planning, you need to consider the following different aspects.
As given in the above picture, the following parameters are critical for effective sprint planning.
Duration of the sprint: Based on the sprint length, decide the number of working days, for example, for 2 weeks sprint, the total available days are 10.
Availability of team members: Are they full-time available or they are part-time for the team? If they are part-time for the team, then it should be called out and capacity planning should be based on that. Preferred is the full-time team member for each team.
Time-off of team members: Are they taking off during this iteration or sprint? If so, how many leaves? Are they any holidays in this duration?
The velocity of the team: What is the average story points delivery of the team in the past? If the average velocity of the team is 30 story points, then it’s good to plan around the same velocity as long as there is no change in the above parameters.
Capacity planning helps the team to estimate the capacity required to complete the work in the next sprint or iteration. It clarifies how much work a team can do without reducing quality, productivity, and efficiency.
Planning helps balance team members’ available hours. In simple words, Capacity in Agile refers to the amount of work that can be done within a specific time, say iteration or sprint.
Capacity planning is done for a specific iteration or sprint.
There are two different ways of conducting capacity planning-
- Velocity planning uses actual story points.This is based on the average story points delivered per iteration by the team.
- Capacity planning uses the team’s estimated future availability to work on the next sprint.
When to use velocity and Capacity (hours) based planning?
- When the team is new to Agile, and they don’t know how to plan, capacity planning based on the availability of people (hour based) will help the team learn how to plan. Let the team use this technique for planning the iteration or sprint.
- Once the team understands the average story points that they can deliver consistently (also called velocity), the team should shift to velocity-based planning.
Things to note
Before we hit the next section, you must know some facts about capacity planning.
- Agile capacity planning takes place during the sprint planning meeting, also known as a commitment or capacity-based planning. Scrum Master facilitates this.
- The product owner, the Scrum master, and the team are in a capacity planning meeting. The meeting is short and to the point, not more than 30minutes.
- Velocity refers to the average number of stories delivered by an Agile team per sprint in the past iterations.
- Team capacity refers to the number of hours available as a team in this iteration.
How to Calculate Capacity-Based Sprint Planning?
Capacity-based sprint planning calculates the hours required to complete each backlog item. Considering the hours of engineering capacity, the team will select tasks per sprint.
Steps to capacity-based sprint planning
- Check the sprint duration
Calculate the duration in days, specifying the stand and end day. For example, we have a sprint with a two-week duration.
This planning calendar is divided into three weeks, specifying the sprints with different colors. Where yellow- is the previous sprint, green- is the current, and blue- is the future.
Based on the two-week sprint duration, the total number of days available for each team member is 10 days.
- Calculate commonly available days in a sprint
Identify commonly available capacity for the team in this iteration based on the below table. It is important to find the capacity of each team member in this iteration.
|Sprint or Iteration events||1|
|Total available days||8|
Calculate the total time that the team member will spend on each sprint event (daily stand-up, backlog refinement, sprint review, sprint retrospective). Though they are critical, they are equally distractions for producing results in this sprint, hence that effort needs to be removed from the capacity.
Also, consider the common holidays for the entire team – for example, festivals, team outings, etc.
Based on the above table, the total available days for each team member in common is 8 days.
- Calculate the available capacity of each team member
Now, check how many shared resources there are for each task. In case of no shared resources, we have mentioned 100 percent. In the below example, we have mentioned a team member as 50 percent available for this team, which means he is shared among two teams.
|Team member||% availability|
|Team member 1||100%|
|Team member 2||100%|
|Team member 3||100%|
|Team member 4||100%|
|Team member 5||50%|
- Calculate the capacity per team member
Assuming that the team members are working at their total capacity, which means 8 hours per day with 4 hours of the shared team member.
The important thing to consider while calculating the capacity is the number of leaves each team member is planning to take during this sprint or iteration.
With these, calculate each team member’s available capacity as given in the below table.
|Team member||Available days||% availability||# Leaves||Available capacity (days)|
|Team member 1||8||100%||2||6|
|Team member 2||8||100%||0||8|
|Team member 3||8||100%||0||8|
|Team member 4||8||100%||1||7|
|Team member 5||8||50%||1||3.5|
- Convert the day capacity to hour capacity
Now, convert the number of days into hours capacity for better planning. Let’s consider the team works on average for 8 hours per day.
|Team member||Available days||% availability||# Leaves||Available capacity||Available capacity (hours)|
|Team member 1||8||100%||2||6||48|
|Team member 2||8||100%||0||8||64|
|Team member 3||8||100%||0||8||64|
|Team member 4||8||100%||1||7||56|
|Team member 5||8||50%||1||3.5||28|
From the above table, we are able to find the available capacity of each team member in hours. This is the guiding factor for the team to plan for story implementation during the sprint.
Note: Every team member in the team is considered a “team member” not a developer, tester, Automation engineer, etc.
Till this estimation, our planning calendar will look like this with all the calculated details.
- Focus factor
Working involves unplanned tasks, like meetings, training, discussions, lunch breaks, etc. Focus factors can change from one team member to another team member. The more senior the team member is the more distracted he/she is. This can be due to their focus on external things like interviews, organizational common initiatives that they are part of, etc.
|Team member||Available days||% availability||# Leaves||Available capacity||Available capacity (hours)||Focus Factor||Final capacity (hours)|
|Team member 1||8||100%||2||6||48||90%||43|
|Team member 2||8||100%||0||8||64||100%||64|
|Team member 3||8||100%||0||8||64||50%||32|
|Team member 4||8||100%||1||7||56||100%||56|
|Team member 5||8||50%||1||3.5||28||100%||28|
Once you arrive at the capacity based on the above steps, you are now ready for the planning of user stories and tasks into the sprint (iteration).
Benefits of Agile capacity planning
Agile capacity planning helps teams to forecast the task’s completion time using the available people. Quality and efficient planning result in better utilization and optimization of available people while eliminating potential challenges.
Below are the benefits of efficient planning.
- It improves evidence-based forecasting, as it helps teams to learn from their mistakes and implement their learnings to the next sprint to avoid past issues.
- Amplifies predictability – planning has helped teams do better predictions, such as estimated delivery time, and people availability. With detailed planning, teams can avoid challenges that come with poor planning. The team’s predictability of accomplishing the committed work for the sprint will be much higher.
- Boosts team morale- planning keeps the team’s sanity and helps them work efficiently, as the team members are at their best.
- Brings transparency- This brings transparency to the entire team on everyone’s availability, a capacity that they can spend, etc.
- Improved commitment confidence- capacity planning helps managers understand their team members’ capacity to complete each sprint. It gives the team the confidence to commit and communicate the same to stakeholders about product delivery.
Challenges of Agile Capacity Planning
As mentioned above, capacity-based planning is good for the new Agile teams. Since they don’t know how to plan, this tool will help them understand and plan in detail. However, this can be tedious to do for every sprint (iteration) as the team moves ahead in their maturity.
Once the team gets matured and is able to identify the velocity, it is recommended that the team moves towards planning based on their velocity, which will be much simpler than this process.
Capacity planning accurately forecasts future deliverables by the team.
This will help the team learn and do effective planning during the initial stages of agile transformation. This will give confidence to the team that they can plan as a team on their own and be predictable.