The Code Codex
Theme
← Notes / Architecture

note · quote17 Oct 2024 · 1 min

Conway's Law

“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.”

Melvin Conway, in How Do Committees Invent? (1968).

In practice: if three teams build a compiler, you get a three-pass compiler. Every boundary between teams becomes a boundary (an API, a service, a module) in the system, because that is where people need to negotiate.

becomes

System

Payments service

Orders service

Catalog service

Organization

Payments team

Orders team

Catalog team

becomes

System

Payments service

Orders service

Catalog service

Organization

Payments team

Orders team

Catalog team

It also works the other way around, which is called the inverse Conway maneuver: first design the architecture you want, then organize the teams around it. Microservices without independent teams tend to become a distributed monolith.