Capacity Planning
- 3 minutes read - 449 wordsQuaterly Team Capacity Planning
This formal process provides a structured approach to team capacity planning, enabling more accurate resource allocation, improved project predictability, and enhanced team performance.
Input
Prerequisites
- Ask people about their vacation plans for the next quarter.
- Assess the size of tech debt (and decide how much time to invest there to keep it under control).
- Estimate the team’s “run the business” needs (unforeseen things that need to be done - like a vulnerability scanner detecting a compromised library or a root certificate migration / Java certification store update).
- Estimate the team’s on-call spend (either based on statistics or based on a simple assumption that on-call activities will consume 100% of the time of an engineer on duty).
Ouput
Engineer | Capacity (Sprints) |
---|---|
John L. | 6 |
Emily N. | 5.5 |
Will Q. | 6 |
Mike P. | 5 |
James R. | 6 |
Total | 28.5 |
On-call (10%) | 2.85 |
RTB (10%) | 2.85 |
Tech Debt (20%) | 5.7 |
Product OKRs (60%) | 17.1 |
The process
- Data Collection & Analysis:
- Historical Data Review: Analyze past performance data, including time spent on on-call duties, “run the business” activities, and technical debt remediation.
- Technical Debt Assessment: Evaluate the current depth of the technical debt backlog to determine the necessary allocation for remediation.
- Resource Allocation:
- Calculate Available Team Time: Determine the total available engineering time per quarter, accounting for planned vacations and other leave. Reduce the capacity for newcomers (typically 50%).
- Allocate Time for Essential Activities:
- Allocate 10% of team time for operational on-call duties.
- Allocate 10% of team time for “run the business” activities.
- Allocate 20% of team time for technical debt remediation.
- Allocate Time for Product OKRs: Dedicate the remaining 60% of team time to achieving the team’s Product Objectives and Key Results.
- Team Collaboration & Refinement:
- Joint Planning Session: Conduct a collaborative meeting with Technical Project Managers (TPMs) and engineering leadership to review the proposed allocations and discuss any adjustments.
- Iterative Refinement: Continuously monitor actual team performance against the planned capacity and adjust (and communicate!) allocations as needed based on unforeseen circumstances and changing priorities.
Scale it up
- This process should be run for all engineering pods in a team.
- The simplest way to get from pods to team level is to sum up pod capacities (unfortunately here we’re losing the precision since the pods are not interchangeable).
- Sum up team capacity to get to the organization level.
Key Considerations
- Accurate Capacity Planning:
- Essential for successful project execution.
- Provides a framework for aligning development efforts with mid-term deliverables.
- Data-Driven Decision Making:
- Utilizes historical data and real-time information (e.g., JIRA data) to inform resource allocation decisions.
- Balanced Workload:
- Ensures that sufficient time is allocated for operational responsibilities, technical debt, and product delivery to maintain long-term team health and sustainability.