Engineering Craft › Clean Code & Principles
Conway's Law
Systems mirror the communication structure of the organizations that build them.
Also known as: conway's law, conways law, organizations mirror systems
Conway’s law observes that a system’s structure tends to mirror the communication structure of the organisation that built it. If four teams work on four separate components and rarely talk, you get a system of four loosely-connected parts. If one team builds a monolith, that’s what the code looks like. The architecture reflects the org chart, whether you intended it or not.
org: Team A Team B Team C
system: [service A] [service B] [service C]
(or one tangled module per team — same law, worse outcome)
Why it happens: people design interfaces at the boundaries where communication already happens. Where communication is hard, coupling is low and coordination is expensive; where it’s easy, systems get tightly integrated. The architecture is a social artifact as much as a technical one.
The practical implication is the inverse Conway maneuver: if you want a particular architecture, shape the teams to match it. Want clean service boundaries? Give each service a team that owns it end to end. Want a modular monolith? Organise teams around modules with clear ownership. The org design is a lever on the technical design.
The classic mistakes:
- Ignoring it. Architects design ideal boundaries that ignore how teams actually communicate, and the system drifts back toward the org shape, leaving the intended design unrealised.
- Believing microservices will impose boundaries by themselves. If the teams aren’t aligned to the services, you get a distributed monolith — all the coupling, plus network calls.
- Forcing the wrong structure. Rearranging teams to chase an architecture, without the communication and ownership to support it, creates confusion rather than clean boundaries.
- Treating it as fatalism. It’s a tendency, not destiny. Deliberate ownership and communication design can shape the system — that’s the point of the inverse maneuver.
Conway’s law pairs naturally with Domain-Driven Design: bounded contexts are meaningful boundaries, and aligning teams to them makes the boundaries real. It’s a key reason the monolith vs microservices decision is partly an organisational one, and why “modular” structures that match teams tend to hold up best.