How to Do Agile Capacity Planning

Agile development focuses on delivering new features or products that could be demonstrated or even go to market at the end of each one-week to one-month development period, called sprints. Agile capacity planning allows a team to determine how many productive hours are available for the upcoming sprint so that they can confidently commit to developing and completing a specific set of work in that time frame.

Capacity Planning in Agile

At the beginning of each sprint, an Agile team is presented with a set of user stories, which describe feature requirements from the target user's point of view. The team assigns story points -- an estimation of size and complexity relative to other user stories -- to each story, and further breaks down those that cannot fit into a sprint. Capacity planning helps a team understand how many story points they are likely to accomplish within a sprint and takes into account company and personal time off, and commitments that impact the total time available for productive project work.

Basic Equation

At the root of Agile capacity planning is a simple equation: Number of team members multiplied by number of days in the sprint multiplied by number of productive hours in a day. In most cases, more complex parameters are considered in the capacity planning equation, but this calculation can be used for well-jelled teams that have achieved a consistent velocity of story points completed per sprint. Even with these ideal teams, additional parameters need to be taken into account if a team member is unavailable for some or all of the sprint, if members are added or leave the team, and if technology and domain knowledge change ahead of the next sprint.

Person Days in a Sprint

The number of person days in a sprint is determined by the first part of the equation: number of team members multiplied by number of days in the sprint. For example, a three-week sprint with no holidays has 15 days; if there are six team members, there is a maximum of 90 person days in the sprint. In most sprints, company holidays and events, team members' planned time off, training, travel and other corporate obligations impact the total number of person days. A one-day company holiday decreases the number of days in the sprint to 14, and the total number of person days to 84. If a team member takes a week-long vacation (five days), the 84 days are decreased to 79. If two more employees each take two days of training (four days), the 79 days fall to 74.

Number of Productive Hours

The number of productive hours in a day refers to the number of hours team members could, realistically, be expected to work actively on the project. Start by assuming that any given team member is available a maximum of 75 percent of a day (typically six hours); the remaining time is spent reading and responding to email, in meetings and dealing with other tasks that are not related to the story work. Some teams have members who work across multiple teams and who are available for even fewer hours during a sprint; availability for that team member can be altered either by changing the number of available days or the number of available hours. Even adding and educating a new team member can impact productive hours; the new member will start at less than full capacity as he comes up to speed, while another team member is likely to see a decrease in available hours as she assists the new member.

Best Practices

Although the underlying Agile capacity planning equation does not change from sprint to sprint, the parameters will change almost every time. At the start of the planning meeting, go around the room and ask team members for available days, as well as how many hours or what percent of time they expect to contribute to the project. Use a spreadsheet to track this information on a per-person basis so that each member can make sure their availability is reflected accurately. Set up the spreadsheet to calculate automatically the total productive team hours so that, at the end of the exercise, the team is ready to launch into reviewing, estimating and committing to stories for the sprint.