TL;DR: Amazon’s team structure: 10 people max (feed them with two pizzas), autonomous, self-funded, evaluated by fitness-function, monitored live. Led by someone with technical depth and business judgment.
The constraint is radical. Most teams are 15–30 people. Why cap at 10? Because communication overhead explodes as you add people. Two-pizza teams minimize meetings, reduce dependencies, and move fast. Everyone fits in one Slack thread.
A two-pizza team has a leader (multidisciplined: engineer, product, business sense), owns its metrics, and controls its own engineering, design, and roadmap. It doesn’t have to ask permission to move. It can’t hide—its fitness function is live, visible, debated weekly (working-backwards-method). The team must be approved by the S-Team (senior leadership). That’s the gate: if you can’t convince senior leadership your team deserves to exist, you don’t exist.
The structure forces clarity. Small teams can only hire people who pull weight. Dependencies with other teams stay minimal. And if a team is broken, you replace the leader, not shuffle the org.
Real constraint: this doesn’t scale to 10,000 people without creating layers. Amazon knows this. They create two-pizza teams at each layer.