Stackbook Logo
← Back to Architectural Thinking

Conway's Law in Practice

How organization structure shapes system design, and how to use the Inverse Conway Maneuver to align teams and architecture deliberately.

4 min read

In 1968 Melvin Conway observed that organizations design systems that mirror their communication structures. Decades later it remains one of the most reliable predictors of what your architecture will look like. Ignore it and your org chart will quietly override your diagrams.

What the law actually says

If three teams build a compiler, you will get a three-pass compiler. If the database team, backend team, and frontend team are separate, you get three layers with a lot of coordination at every boundary. The cause is not mysticism: interfaces form where communication is expensive, and teams naturally carve their code along lines where they do not need to talk.

Spotting it in your system

Look for symptoms where structure and architecture disagree.

| Symptom | Likely org cause | |---------|------------------| | One feature needs changes in five repositories | Teams organized by technical layer | | A shared "common" library nobody owns | No team accountable for the capability | | Services with chatty synchronous calls | Teams that split a single domain | | A giant module everyone fears | One team owning too much, or none owning it | | Duplicate implementations of the same logic | Teams without a channel or incentive to share |

A quick diagnostic: pick the last ten significant features and count how many teams each required. If the median is over three, your boundaries are probably wrong.

The Inverse Conway Maneuver

Instead of letting organization drive architecture accidentally, shape the organization to produce the architecture you want. If you want independent services around business capabilities, create stream-aligned teams around those capabilities and give each end-to-end ownership.

Example: an e-commerce company has teams for Frontend, Backend, and Database. Every change to checkout touches all three. They reorganize into Checkout, Catalog, and Fulfilment teams, each with engineers across the stack. Within two quarters, the checkout team deploys independently, and the layered monolith begins to split along domain lines.

Align boundaries with communication paths

Practical steps:

  1. Map the current dependencies between teams, not just between services.
  2. Draw the target architecture and note which teams would own each part.
  3. Where one team spans many components, ask whether it is overloaded.
  4. Where a component has several owners, assign one.
  5. Move people or responsibilities before moving code.

Changing code boundaries without changing ownership produces a distributed monolith: separate deployments with the same coordination costs.

Beware the limits

Conway's law is a tendency, not a verdict. Strong platform teams, clear API contracts, and good documentation reduce coordination cost across boundaries. Also, reorganizations are expensive and disruptive; do not reorganize to fix what an interface contract could fix. Consider how big a team can be: a team whose cognitive load exceeds what its members can hold will produce a tangled system regardless of structure.

Remote work and acquisitions add wrinkles. Time-zone boundaries often become service boundaries. After a merger, two payment systems linger because the two teams never merged.

Use it in design reviews

Add one question to every design: which team will own each component, and who must they coordinate with to change it? If the answer is "three teams must agree," redesign the boundary or the ownership. Treat team structure as an architectural input, on the same level as latency or data volume.

Key takeaways

  • System structure tends to copy communication structure; plan for it.
  • Count teams touched per feature to detect misaligned boundaries.
  • Use the Inverse Conway Maneuver: design teams to match target architecture.
  • Change ownership before, or together with, code boundaries.
  • Ask who owns each component in every design review.