Software Engineering Team Size
The right size of a software engineering team and the number of engineers a software engineering manager (SEM) can properly support are at the core of organizational design in tech companies.
The Scrum Guide states that “The Scrum Team is small enough to remain nimble and large enough to complete significant work within a Sprint, typically 10 or fewer people”. The Two-Pizza Teams, coined by Jeff Bezos at Amazon, also says that “We try to create teams that are no larger than can be fed by two pizzas”, which I guess can’t feed more than 8 or 9 people.
We could probably find other recommendations that are aligned with the previous two, probably backed by research from organizational behavior, cognitive science, and social dynamics.
Anyway, an accurate answer probably does not exist. Choosing a team size that fits your organization’s needs depends on how the organization and the team operate, or are expected to operate. For example, teams at big tech are responsible for innovation, keeping the lights on, on-call processes, among other responsibilities. In other companies, the reality may be much different.
The truth is, this question has been puzzling me for a while. I feel I’ve been in both extremes of this dilemma: Small teams that lack skills and are highly impacted by vacation, on-call, sick leave, etc., and big teams that get too complex to manage, lose focus easier, and don’t adapt fast. Both usually don’t perform as expected.
Being in the SEM’s seat, having a small team impels you to act hands-on with your engineers, whereas, with a big team, you can’t properly support all engineers the way you wish. Neither helps your career development as a software engineering manager.
In his book An Elegant Puzzle, Will Larson (CTO at Carta) offers, from his experience, a playbook on sizing teams at big tech, which I feel is well aligned with my perceptions.
From his playbook, we can get valuable insights:
- Managers should support 6 to 8 engineers
- Those who support fewer than 4 engineers are hands-on Tech Lead Managers (TLMs)
- Those who support more than 8 engineers typically act as coaches and safety nets for problems
- Managers of managers should support 4 to 6 managers
- Managers supporting fewer than 4 managers should be in a period of active learning (Ramp-up)
- Coaches: Supporting more than 6 managers leaves you functioning purely as a problem-solving coach
- On-call rotations want 8 engineers
- Small teams (fewer than four members) are not considered teams
This is a simple set of principles that can guide the way we organize teams effectively.
Further reading
Some further reading recommendations if you want to elaborate more on the subject:
- Sizing Engineering Teams, written by Will Larson (CTO at Carta)
- How Many Direct Reports Should a Manager Have?, written by James Stanier (Director of Engineering at Shopify)