The Two-Pizza Rule
A team should be small enough that two pizzas can feed it. Communication overhead grows quadratically.
The Two-Pizza Rule
In one line: A team should be small enough that two pizzas can feed it — roughly 6–10 people.
Amazon's famous rule. Communication overhead grows quadratically with team size: 10 people have 45 possible pairs to talk; 20 people have 190. Small teams ship faster because there's less to coordinate and ownership is unambiguous. Once "everyone is responsible," no one actually is.
Amazon's famous rule. Translated: 6–10 people maximum.
Why this matters
- Communication overhead grows quadratically with team size. 10 people have 45 possible pairs; 20 people have 190.
- Small teams ship faster. Less coordination, more ownership.
- Accountability is clearer. When everyone's responsible, no one is.
How to apply it
- Service ownership: Each service owned by one team. If two teams need to coordinate constantly, the service boundary is wrong.
- Team splitting: When a team grows beyond ~10, split it.
- Project teams: Cross-functional groups should also stay small.
Trade-offs
Small teams can become silos. Counter with:
- Cross-team rotations.
- Shared design system, infrastructure, observability.
- Open Slack channels.
- Engineering all-hands.
A team of 8 ships a feature every two weeks. Over a year, they grow to 14 people.
Symptoms a few months in:
- Standups take 25 minutes instead of 10.
- Half the team is on a Slack thread about a decision that doesn't affect them.
- Two engineers are doing similar work without realizing it.
- Velocity has dropped despite adding people (Brooks' law in action).
The fix: split into two teams of 7 with clear ownership boundaries. Maybe "payments + billing" and "core product." Each team gets a single service or module as its primary responsibility. Velocity recovers within a sprint or two.
If two teams need to be in the same meeting every week to make progress, the boundary is wrong. Either:
- They're actually one team (merge them), or
- The service boundary should change so they don't need to coordinate constantly.
The two-pizza rule is really about conway's law: your system architecture will end up mirroring your team structure. Get the teams right, and the architecture follows.
Common mistakes
- Splitting headcount without splitting ownership. Two teams of 7 that share the same codebase, the same on-call, and the same backlog are just one 14-person team with extra meetings. Splitting only counts when each side owns a service or module that the other doesn't need permission to ship in.
- Counting only engineers in your team-size math. Two-pizza teams include the PM, the designer, the data scientist, and anyone else in the standups. A team with 8 engineers, 2 PMs, a designer, and a data lead is already 12 — coordination cost is already biting.
- Treating the split as permanent. Team boundaries should track product reality, not org-chart inertia. When two teams find themselves constantly co-deploying, the boundary is wrong; merge or redraw it. The two-pizza count is the goal, not the boundary itself.
- Hiring to fix throughput when coordination is the bottleneck. Adding a tenth engineer to a struggling team of nine almost always makes it slower — see Brooks' law in the worked example. Before pitching for more headcount, audit whether the team's coordination overhead is what's actually slowing you down.
Page checkpoint
Did the two-pizza rule stick?
RequiredWhat's next
→ Continue to The "Why Now?" Question — before adopting any new technology or pattern, demand a concrete reason.