What is Capacity Planning?
Simply put, capacity planning is matching the supply of resources available with the demand for those resources. In software development, the resource is usually deverlopers' time (workforce capacity planning), but it could also include tools, raw materials, etc. Effective capacity planning ensures that the right resources are available and applied at the right time.
Benefits of Capacity Planning
Capacity planning seeks to avoid two problems, both of which can be costly for businesses:
- Not having sufficient resources available when you need them, leading to failure to deliver projects on time and/or on budget
- Wasted money due to a glut of capacity
Basically, capacity planning seeks to find the sweet spot where your talent, tools and materials are deployed to maximum gain.
The benefits of capacity planning include:
- Bigger project margins in terms of both time and money
- Improved projections, allowing you to set and meet your customers expectation
- The ability to make informed decisions about what projects should and shouldn’t be taken on
- Improved productivity through matching the right capacity to the right projects
Without capacity planning, you risk missing opportunities, taking on more that you can realistically deliver, or being stuck in decision paralysis because you simply don’t know if your team has the bandwidth for one more project.
Perhaps the most important reason to engage in capacity planning is to protect your staff. Great workers are often rewarded with more work. This inevitably leads to burnout. While we like to pretend that we have infinite capacity – that we can stretch ourselves to do whatever needs to be done, it isn’t true. When people or teams are given more than they can realistically do, something has to give. It may be progress on another project, the quality of all projects, or how team members feel about their jobs. Either way, overloading your teams beyond their capacity is unsustainable.
Capacity planning preserves your talent and improves your bottom line.
Agile Capacity Planning
Capacity planning can improve agile development, especially scrum, by helping you make more accurate predictions about the amount of work that can be completed in a Sprint. This in turn, will allow you to better manage changing and competing priorities, set appropriate expectations for feature delivery, and give the team a sense of success when they’re able to complete all the issues in the sprint.
Accurate agile capacity planning requires calculating the time available sprint work. This could look something like:
Number of Days in Sprint x Number of Available Hours per Day x Utilization Rate
- Days in sprint should be the actual working days. Do not include holidays, weekends, etc.
- Number of available hours per day is the sum of the actual number of hours your team members have available. Be sure to account for workers who are part time, taking leave, etc.
- Utilization rate is the percent of those hours that are actually productive. Developers can be called away from sprint work to deal with new bugs and support requests, as well as for the normal interruptions previously mentioned. A realistic utilization rate is usually around 70-80%. You can use time tracking data to hone in on your teams actual utilization rate.
Once you apply those numbers to the formula, you’ll have an accurate calculation of the time available. The next step is to match that time up against the work to be done. It’s important to have accurate time estimates (either in hours or story points) when deciding which and how many items from the backlog to move into the sprint. Unfortunately, we humans are pretty bad at predicting how long a task will take.
However, as a final step in implementing agile capacity management, you should revisit and check the accuracy of task time estimates as part of your sprint retrospective. With each iteration, your ability to accurately predict the time needed will improve.
Capacity Planning in Jira
Now that we understand how capacity planning works in agile development, what capacity planning tools are available specifically in Jira? As mentioned above, the key to accurately forecasting capacity lies in making accurate estimates of the time needed for a given task, and the utilization rate of your team members. Both of those factors will be calculated as “successive approximations.” You can’t make an exact prediction, but time tracking data will allow you to make better and better estimates.
Jira provides three native forecasting and management reports:
- The Time Tracking Report which can be filtered by Fix Version, can include all issues, or only completed issues, and can include or omit subtasks. The report shows the original estimate, estimated time remaining, and actual time spent, then calculates the accuracy of the estimations.
- The User Workload Report shows the projects, number of assigned issues, and time logged for a given user.
- The Version Workload Report shows a summary of remaining (unresolved) issues in the version, sorted by issue type and user.
While paying attention to these reports will certainly provide insights into sprint planning, they have significant limitations. While the Time Tracking Report provides useful information, filtering options are limited, and you can’t easily organize the data (by user, issue type, etc). The User Workload Report can only show time tracking data for one user at a time, not a given team.
To overcome these limitations, you can install Clockwork for Jira | Pro, a full-service Jira time tracking app. The app’s rich time tracking reports can help you calculate a team’s capacity by:
- Filtering and breaking down your timesheet reports by multiple factors (including selecting more than one user, or a whole team)
- Highlighting undertime/overtime work to easily identify where the workload is off balance
- Capturing time spent on non-project activities (meetings, PTO, daily standups, etc.)
- Viewing estimated time vs actual time spent on any timesheet
![](https://cdn.prod.website-files.com/660b7241cfe490c443ab3624/667ce42a38247e88ca9441d5_64f2638154a363013debfeea_Estimated%2520vs%2520Actual%2520Time%2520Spent%2520report.gif)
Armed with that information, you can now apply the Days in Sprint x Number of available hours per day x Utilization rate formula to your Sprint planning.
Jira Capacity Planning Template
There may be times when you’re looking for a team member(s) with time to work on something outside of your sprint. You may need to decide if you can patch together the staff time to take on a new project, or you may simply need to find someone with the time for an important one-off task.
Confluence provides a capacity planning template for easily visualizing where your team is spending their time. Sadly though, team members will have to take time out of their project work to fill out the template. A better solution is to grab the data from a Clockwork for Jira report and export it to Excel where you can quickly format it into a capacity planning report.
![](https://cdn.prod.website-files.com/660b7241cfe490c443ab3624/667ce42da181ac8c53295f4b_656e4a473b79beaa6659c819_CapacityPlanningReport.png)
Capacity planning is an important strategy for making the most of your resources, especially for optimizing talent in agile teams. Implementing the right tools and practices will make capacity planning an integral part of your development process.