How to Improve Your Agile Team’s Capacity Planning
Agile Team Capacity
In delivering technology advancements, we often find that the demand for new functionality typically outweighs our team’s capacity. The following will equip you with tools to accomplish capacity planning with your agile teams, including the outcomes you can expect from capacity-based planning.
In this post, you’ll learn about the main benefits and challenges experienced with agile team capacity planning. We’ll also share a worksheet for balancing your team’s available capacity to sprint load which will ultimately help you in arriving at your team’s sprint velocity.
Establishing Team Capacity
First, the team quantifies its capacity to perform work in the upcoming iteration.
Each team member determines their availability, acknowledging time off and taking into account other standing commitments such as maintenance or tech debt stories distinct from new story development.
Using historical team velocity (or a specified # of story points/team members doing the work) as a starting point, the team then makes adjustments on the unavailable time for each team member to determine the actual capacity for the iteration.
When the team is new and historical velocity is not yet known, team capacity can be determined utilizing the following approach:
- Give the team 8 points for every full-time developer and tester on the team,
- Then subtract one point for every team member’s vacation day and holiday in the iteration.
Note: Capacity Planning is especially important prior to Program Increment (PI) planning, where team capacity is documented for each iteration within the upcoming 3-month program increment duration. This prepares a team to keep their planned work within available team capacity during PI planning.
Benefits and Challenges
While capacity planning with our teams presents long-term benefits, it is not without its challenges to overcome.
- Teams create and take responsibility for plans, transforming unpredictable delivery into predictable delivery where team iteration load does not exceed available team capacity.
- Provides for more efficient use of resources, creating an empowered team with the bandwidth to accomplish what they’ve signed up for.
- Balancing desire for an ‘I want it all now’ mentality with respect for what team members actually have capacity to accomplish.
- Demand doesn’t usually match capacity; continually watching excess work in progress (WIP) is key for bringing forward learning and adjustments for your team’s next iteration.
Supporting Team Capacity in your Organization
You can support team capacity as a leader in the organization by:
- Supporting investments in capacity planning for maintenance and to reduce technical debt.
- Helping to adjust the scope to ensure demand matches available team capacity.
As a Team Facilitator or Scrum Master, you can support team capacity by:
- Conducting Iteration Planning prior to starting each iteration, where your team determines their iteration goals based on how much of the team’s backlog they can commit to during the upcoming iteration.
- Remembering your ‘tech debt reserve’ and let your team’s capacity determine the number of new functionality stories and enablers that are selected.
Balancing Your Team’s Load
The following worksheet provides you with a means to provide visibility in balancing your team’s capacity with their workload.
Another benefit in utilizing this worksheet comes in tracking your team’s completed work, as after three iterations you arrive at your team velocity. Going forward, your measurement of team velocity can be used as a starting point for calculating your team’s capacity for future iterations in software development.
Note: A team’s velocity may increase over time, but is far more likely to be affected by changing team size and technical context.
Capacity planning is a journey and one that your team will thank you for.