Capacity Planning
Table of Contents
Overview
Capacity planning ensures teams have sufficient resources to deliver work at sustainable pace, prevents burnout, and enables accurate commitment to stakeholders.
When to Use
- Annual or quarterly planning cycles
- Allocating people to projects
- Adjusting team size
- Planning for holidays and absences
- Forecasting resource needs
- Balancing multiple projects
- Identifying bottlenecks
Quick Start
Minimal working example:
python# Team capacity calculation and planning class CapacityPlanner: # Standard work hours per week STANDARD_WEEK_HOURS = 40 # Activities that reduce available capacity OVERHEAD_HOURS = { 'meetings': 5, # standups, 1-on-1s, planning 'training': 2, # learning new tech 'administrative': 2, # emails, approvals 'support': 2, # helping teammates 'contingency': 2 # interruptions, emergencies } def __init__(self, team_size, sprint_duration_weeks=2): self.team_size = team_size self.sprint_duration_weeks = sprint_duration_weeks self.members = [] def calculate_team_capacity(self): """Calculate available capacity hours""" # Base capacity base_hours = self.team_size * self.STANDARD_WEEK_HOURS * self.sprint_duration_weeks // ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Capacity Assessment | Capacity Assessment |
| Capacity Planning Template | Capacity Planning Template |
| Resource Leveling | Resource Leveling |
| Capacity Forecasting | Capacity Forecasting |
Best Practices
✅ DO
- Plan capacity at 85% utilization (15% buffer)
- Account for meetings, training, and overhead
- Include known absences (vacation, holidays)
- Identify skill bottlenecks early
- Balance workload fairly across team
- Review capacity monthly
- Adjust plans based on actual velocity
- Cross-train on critical skills
- Communicate realistic commitments to stakeholders
- Build contingency for emergencies
❌ DON'T
- Plan at 100% utilization
- Ignore meetings and overhead
- Assign work without checking skills
- Create overload with continuous surprises
- Forget about learning/training time
- Leave capacity planning to last minute
- Overcommit team consistently
- Burn out key people
- Ignore team feedback on workload
- Plan without considering absences

