Two-Pizza Teams.

Just a decorative image for the page.

Intro

A two-pizza team is a small, cross-functional group dedicated to supporting a specific business capability. It was introduced by Jeff Bezos during Amazon’s rapid growth. During the growth teams just got bigger, but communication and productivity just broke down. Jeff therefore made it a rule that any development team should be a Two Pizza Team.

The term “Two Pizza Team.” originates from the idea that the team should be small enough to be fed with two pizzas. Typically, this translates to about 5-8 members, though some teams may extend up to 15.

Why Size Matters

The primary advantage of keeping teams small is cohesion. Smaller teams foster tight working relationships, enabling efficient communication and collaboration. But the size is just one aspect; the focus and autonomy of these teams are equally crucial.

Autonomy and Focus

A two-pizza team is designed to be self-sufficient, possessing all the necessary skills to deliver valuable software with minimal dependencies on other teams. This autonomy allows them to quickly adapt to customer needs, experiment, and evolve their solutions.

Outcome-Oriented Approach

Two-pizza teams are outcome-oriented and not organized by skill (e.g., databases, testing, operations). They take on all responsibilities required to support their customers, from development to deployment and monitoring. This holistic approach minimizes inter-team hand-offs and reduces cycle time—the period from ideation to production.

Long-Lived and Business-Capability Centric

Two-pizza teams are not project-based; they are long-lived and centered around business capabilities. They continue to support and enhance their product as long as the capability is active, functioning more like product teams than traditional project teams.

“You Build It, You Run It”

A core principle of two-pizza teams is end-to-end ownership. They are responsible for deploying code into production and maintaining it, including off-hours support if necessary. This principle, often summarized as “you build it, you run it,” ensures accountability and quality.

Support and Collaboration

While two-pizza teams are self-sufficient, they still require support from a robust software platform. Smaller organizations might leverage commercial platforms like modern cloud services, while larger organizations may develop internal platforms to facilitate collaboration without cumbersome hand-offs.

Inter-Team Collaboration

Effective two-pizza teams also provide their capabilities to peers through well-designed APIs, fostering a collaborative environment. This is crucial to avoid information silos and ensure smooth inter-team interactions.

Impact on Software Structure

Organizing teams around business capabilities profoundly affects software architecture, aligning with Conway’s Law. Whether through microservices or well-structured monolithic components, the goal is clear interactions and APIs between software components.

The two-pizza team model promotes small, autonomous, and outcome-oriented teams that drive agility and innovation. By focusing on business capabilities and fostering collaboration, organizations can achieve more efficient and effective software development.

More

Related posts