The Engineering Manager Handbook (Development Manager) · Organisation and Strategy
Headcount and Capacity Planning
Plan headcount from real capacity, ramp-up time and team structure — and avoid the trap of adding people to a late project.
Scenario
Example organisation: the 40-engineer product organisation must double in a year. Leadership plans "20 more engineers, 5 per quarter" and expects roadmap capacity to double by Q4. The first new teams are formed with mostly new hires and no experienced lead; delivery drops for two quarters.
What you see on the team
- Hiring plans disconnected from onboarding and team structure.
- Roadmaps assuming new hires are productive on day one.
- New teams without experienced engineers or managers.
- Existing teams slowed by interviewing and onboarding.
The common mistake
Treating headcount as instant capacity and planning growth as a number of hires rather than a sequence of team changes with ramp-up and support costs.
Why it happens
Headcount is easy to count; productivity isn't. New engineers need months to ramp up and take time from experienced ones. Brooks's law — "adding manpower to a late software project makes it later" — is the extreme version: onboarding and communication costs come first, capacity later.
The playbook
Model capacity, not headcount:
# Hires per quarter for a 40-engineer org doubling in a year (example)
plan = [5, 5, 5, 5]
RAMP = [0.25, 0.6, 0.85, 1.0] # productivity in a hire's 1st, 2nd, 3rd, 4th+ quarter
ONBOARD_COST = 0.25 # experienced-engineer capacity spent per new hire in their 1st quarter
INTERVIEW_COST = 0.15 # per hire made that quarter (interview loops)
cohorts = []
existing = 40.0
for q, hires in enumerate(plan, start=1):
cohorts.append([hires, 0])
new_capacity = sum(n * RAMP[min(age, 3)] for n, age in cohorts)
drag = sum(n for n, age in cohorts if age == 0) * ONBOARD_COST + hires * INTERVIEW_COST
effective = existing - drag + new_capacity
headcount = existing + sum(n for n, _ in cohorts)
print(f"Q{q}: headcount {headcount:3.0f} effective capacity {effective:5.1f} engineers "
f"({effective / 40:.0%} of today)")
for c in cohorts:
c[1] += 1
Output
Q1: headcount 45 effective capacity 39.2 engineers (98% of today) Q2: headcount 50 effective capacity 42.2 engineers (106% of today) Q3: headcount 55 effective capacity 46.5 engineers (116% of today) Q4: headcount 60 effective capacity 51.5 engineers (129% of today)
In this example, headcount grows by half while effective capacity grows much more slowly at first — roadmaps should follow capacity, not headcount.
Grow teams by budding: grow an existing team to eight to ten, then split into two teams of four or five (Larson) — never form teams of only new hires.
Hire leads and managers early, ahead of the teams they'll lead.
Plan onboarding and interview capacity as explicit roadmap cost.
When a project is late, adding people is rarely the fix; reduce scope or extend the date first.
What to say
To leadership:
"If we hire five a quarter, headcount reaches 60 by Q4, but effective capacity is closer to 50 — new hires ramp up over a year and onboarding takes senior time. I'd plan the roadmap at that level, hire two engineering managers in Q1, and grow teams by splitting experienced teams rather than forming new ones from scratch."
Trade-offs
- Slower growth limits roadmap ambition; faster growth risks quality, culture and burnout.
- Budding teams keep experience distributed but delays new areas until there's enough experience.
- Ramp-up assumptions vary; measure your own (time to first independent project).
Signals it's working
- Roadmap commitments match modelled capacity and are met.
- New teams have experienced leads from the start.
- Time to productivity for new hires is measured and improving.
- Existing teams' delivery doesn't collapse during growth.
Key points
- Plan effective capacity, not headcount: ramp-up, onboarding and interview costs.
- Grow by budding experienced teams; hire leads and managers early.
- Brooks's law: adding people to a late project usually makes it later.
- Set roadmaps from capacity models and measure ramp-up in your own organisation.
Practice questions
Leadership expects roadmap capacity to double as headcount doubles in a year. What's missing?
Answer
Ramp-up time, onboarding and interviewing costs: effective capacity lags headcount, especially in the first quarters, so roadmaps should be planned from a capacity model.
How should new teams be formed during rapid growth?
Answer
By budding: grow an experienced team to eight to ten, then split into two teams of four or five, with experienced engineers and leads in each — not teams made only of new hires.
A project is late. Why might adding engineers make it later?
Answer
New people need onboarding and communication from those already on the project, reducing their capacity before the new people contribute — Brooks's law.
Open in the app to mark lessons complete, take notes and track your progress.