Conway's Law and Product Design

Conway's Law is an adage formulated by Melvin Conway in the late 60's. It says that organisations are constrained to produce products and services aligned to their social structure. Planning for Conway's Law can help teams set themselves up for success.

Conway's Law and Product Design
"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."

Melvin E. Conway

Conway's Law is an adage formulated by Melvin Conway in the late 60's. It says that organisations are constrained to produce products and services aligned to their social structure. Collaboration is hard and teams inevitably focus on what they can control. This results in system boundaries that mirror team boundaries.

We work in smaller teams these days but we still suffer when scope is unclear and we're overrun with dependencies. Conway’s insight helps us address some of these challenges. As designers, we are on the ground floor, creating product constructs that are given to teams to deliver. Those teams will be subject to Conway's Law.

One way to think about this is that early on in design, you can flip things on their head because there are no teams yet. You've got an opportunity to shape the product in a way that is either aligned to the organisation, or decouples teams from the beginning with clearly bounded contexts.

Bounded context is typically a technical idea related to object-oriented design and micro-services, but Conway's Law highlights that technology has a social context and gives us an opportunity to shape it.

Have a look at this video by the Monzo architectural team. Smart decoupling of product components supports social AND technical perspectives. It makes it easier to add and remove elements to a system by streamlining the communication and decision making required to achieve those goals.

A lot of getting large groups of people to work together is about creating scope appropriately. What Conway's Law tells us is that that there's a deep social layer to getting this right. You're doing the groundwork to set your people up for success if you spend time early, before there are teams, to resolve dependencies and overlapping contexts. This gives teams a locus of control and lets them focus on quality within their boundaries.

Product or service design at this stage is about creating bounded contexts that are not just meaningful to users, but are decoupled, comprehensively exhaustive and mutually exclusive for the teams that need to deliver them.

Conway's Law tells us that it's incredibly difficult to create great software across organisational boundaries. It also tells us that if we design components with intent it will make things easier to deliver and maintain as well.

Like so many things in life and design, constraint and structure make it easier for people to play together.