A two-pizza group is a small group
that totally helps software program for a selected enterprise functionality. The time period
grew to become well-liked because it used to explain how Amazon organized their software program workers.
The identify suggests the obvious facet of such groups, their measurement. The
identify comes from the precept that the group ought to no bigger than will be fed
with two pizzas. (Though we’re speaking about American Pizzas right here, which
appeared alarmingly big after I first encountered them over right here.) Retaining a
group small retains it cohesive, forming tight working relationships. Usually I
hear this implies such groups are about 5-8 individuals, though my expertise
means that the higher restrict is someplace about 15.
Though the identify focuses solely on the scale, simply as vital is the
group’s focus. A two-pizza group ought to have all of the capabilities it must
supply invaluable software program to its customers, with minimal hand-offs and
dependencies on different groups. They will determine what their buyer wants,
and shortly translate that into working software program, capable of experiment and
evolve that software program as their buyer’s wants change.
Two-pizza groups are Consequence Oriented fairly than
Exercise Oriented. They do not manage alongside strains of abilities
(databases, testing, operations), as an alternative they tackle all of the obligations
required to assist their clients. This minimizes inter-team hand-offs within the
circulate of options to their clients, permitting them to cut back the cycle-team
(the time required to show an thought for a characteristic into code working in
manufacturing). This outcome-orientation additionally means they deploy code into
manufacturing and monitor its use there, famously accountable for any manufacturing
outages (typically which means they on the hook for off-hours assist) – a precept
generally known as “you construct it, you run it”.
Specializing in a buyer want like this implies groups are long-lived, Enterprise Functionality Centric groups that assist their enterprise
functionality so long as that functionality is lively. In contrast to project-oriented groups –
that disband when the software program is “finished” – they consider themselves as
enabling and enhancing a long-lived
product. This facet typically results in them being known as product
groups.
The large scope of abilities and obligations {that a} two-pizza group wants
to assist its product signifies that though such groups will be the first
method to group group, they want assist from a well-constructed
software program platform. For small organizations, this is usually a industrial platform,
comparable to a contemporary cloud providing. Bigger organizations will create their very own
inner platforms to make it simpler for his or her two-pizza groups to collaborate
with out creating troublesome hand-offs. Workforce Topologies
gives a great way to consider the totally different sorts of groups and
interactions required to assist two-pizza groups (Workforce Topologies calls them
stream-aligned groups).
For business-capability centric groups to be efficient, they might want to
make use of every others’ capabilities. Groups will thus want to supply their
capabilities to their friends, typically although thoughtfully designed APIs. This
duty for such groups to supply providers to their friends is commonly
missed, if it does not occur it is going to result in sclerotic info
silos.
Organizing individuals round enterprise capabilities like this has a profound
interplay with the best way the software program for a corporation is structured – due
to the impact of Conways Regulation. Software program elements constructed by
two-pizza groups want well-controlled interactions with their friends, with clear
APIs between them. This pondering led to the event of microservices, however that is not the one method –
well-structured elements inside a monolithic run-time is commonly a greater
path.