What is Capacity Planning
Planning the Capacity means estimating and calculating the capacity of the Agile team. There are two widely used capacity measurement units
1. Story PointsThis is a Simple way to calculate the velocity (Average of the last 6 to 10 Sprint’s Accepted Story Points). and target the upcoming Sprint to commit the User Story that closely matches the velocity. I Personally recommend the other way of doing the capacity planning by calculating it by Hours.. 2. HourI personally recommends Capacity Planning by Hours. I will explain only this way of Capacity Planning in this Article. It gives better visibility and accuracy. And many other benefits that we will discuss later in this article. Here we Calculate the available bandwidth of the Agile Team (except PO & SM). By calculating their available hours for the upcoming Sprint. We will discuss in detail how to calculate it, and what factors we should consider in this article.
How to do Capacity Planning (in Hours)
The technique is very simple to calculate & plan your capacity. I have explained below the steps to calculate it manually. However in today’s days, all major popular ALM tools have that inbuilt, You just need to feed in the details. At the end of this article will show examples of doing Capacity Planning in one or two ALM tools.I have explained below step by step what you can follow to do your capacity planning, even if you are not using any ALM tool, just by maintaining an Excel.
Step 1 – Calculate Sprint Duration
Calculate the Sprint Duration in Days, Identify the Sprint Start Day and End Day. To explain this I have taken a 2 Week Sprint which Starts on Wednesday and Ends on Tues day. And we are doing our Capacity Planning for Sprint 2. The picture on the right Represent a 2-week Sprint – Calendar, of 10 days. Spread in three Physical Calendar Week. Throughout the rest of the article, I will explain these color legends, where Yellow = Previous Sprint Green = Current Sprint (for the Sprint we are doing the Capacity Planning) Blue = Future Sprint.
Step 2 – Calculate Team Member’s Availability
Assuming We have 7 Members team 4 Developer and 3 Testers, Not Counting the SM and PO here, as we don’t need to count their capacity in Capacity Planning
Step 3 – Identify Allocation %
Now Identify the Shared resource if any, If there is No shared resource, we will count everyone as 100% allocated to this Scrum Team. For example, let’s assume we have one Tester (Tester 3) who is shared between two teams, and his allocation is 50% for this team in the example.
Step 4 – Calculated The Standard Hours per day
If we assume everyone has 8 hours per day on full allocation, The Shared resource will have 4 Hours per day allocated for this team. For this sprint. For 10 Days Sprint the total Max capacity is 520 Hours for the entire Team and has 52 hours per day, Including Shared Tester. Everyone has 80 hours for 10 days and the Shared Resource with 50% allocation has 40 Hours, for this sprint Duration.
Now let’s see how does that looks like in our calendar
Step 5 – Consider The Factors
1. Team Holiday Mark the date that is off for the entire team. National Holidays etc. 2. Calculate the Individual working off. Calculate Based on – if any resources have been planned off / out of office. 3. Override default working day hours. If Required – Take an exception for individual team member, to change default hours from 8 Hours to something else, especially if someone has a plan half-day or the plan hours have other than the default 8 Hours (100% Allocation)
Assuming – Developer 1, Developer 2, and Tester 1 have a Planned full day off for three different days. By applying that we can see from this picture, that the total and Individual capacity is reduced accordingly.
Step 6 – Consider Other Works that eat up Times for everyone Consider the Time it will take for other meetings and Agile Ceremonies. The below picture represents the typical time a Teams Spends at each ceremony and other meetings
Step 7 – Consider Focus Factor Plan it accordingly so your team can focus, on any unplanned time loss keeping in mind the daily time off, Adhoc unplanned meetings, other official activities, training, Discussion with SMEs,s, etc. Remember for a planned activity your can still calculate beforehand. We keep the focus factor for anything that can not be planned. That value can vary from 75% to 95%
Summarizing the 7 Steps
Step 1 Calculate – Sprint Duration Step 2 List Down Team Members
Step 3 Calculate Team member Allocation Step4 Calculate – Standard Working Hours Day
Step5 Consider The FactorsTeam HolidayIndividual planned vacationIndividual Partial off day
Step 6 Calculate Ceremony Time and other work
Step 7 Calculate FocuFactor
Please Note The Values, Percentage, and amount of hours are for the above example only. You need to put values based on your own need and facts.
- Calculate the Focus Factor the best suits your project.
- Sprint Duration as per your Sprint Cycle
- Plan it for Developers/ Tester and any other Role in your Scrum team (except SM and PO)
- Team members allocation as actual in your team
- Factors like Team Holiday, Planned Vacation, and parts are not just limited to these three factors.
- Calculate the Times of Ceremonies as per your schedule in addition to any other planned meeting
- In The above example, I have not calculated the vacation day as falling under any ceremony day, to avoid complications and granular level calculation.
When we should do Capacity Planning
With Scrum Master’s facilitation, A Scrum Team can identify the capacity before the sprint planning. The best time is just before the Sprint Planning for any specific Sprint, Which gives the best visibility of Resource’s vacation plan or Ceremony time. If the Team is using any ALM tool, the Individual team can update their available time, Scrum Master can help the team understand how to calculate their Individual Capacity. Before hitting the Sprint Planning, the Scrum Master can conduct a quick 30 min meeting with the team and get the Capacity Calculated and Update accordingly. When I was a Scrum Master I used to calculate all the factors in Excel initially with the team 1 or 2 days before Sprint Planning, and eventually, the team was mature enough to do that on their own with very minimal intervention.
Benefits of Capacity Planning
Capacity Planning helps the team to gauge the available bandwidth for the team to commit and complete User stories. Especially when you estimate your capacity by hours and map tasks of committed user stories with the Individual capacity and his/her assigned estimated task hours. The team can identify the limit of committing user stories in Sprint Planning. We will discuss more in detail how we map our tasks and capacity during Sprint Planning, in a different article of Understanding Sprint Planning. The reason why I always prefer Capacity Planning and Mapping on Hours Rather than Velocity is, Its easy to calculate available Hours by simply math with Days, Vacation, Leave, Other Time, Focus Factor, etc. to get a Team Capacity. That is technically not possible with Velocity and the team needs to make assumptions that are dangerous, Secondly, you can not assign a Story (having Story points) to a single member, as completing a story is mostly a team effort. And distributing any story points between team members, Huh!! Can’t even think about it, where One Story (whatever the story point is) can have multiple tasks (each task having efforts estimated in Hours) can easily be assigned to one or more Team Members, each task can be assigned to each member. We will see more in detail with a demonstration in a different article on Understanding Sprint Planning.