Three teams build one system. The system has three modules. This is not a coincidence.
Melvin Conway wrote his observation in 1967. Every software organization since has proven it correct. Not because engineers read his paper. Because the constraint is structural, not cultural.
The Law
Conway's Law: Organizations design systems that mirror their own communication structure.
Not "tend to." Not "sometimes." Mirror. The architecture will reflect the org chart. The org chart will resist architectures that contradict it.
Why It Operates Like Physics
Conway's Law is not mathematical. You cannot prove it with formal logic. But no team in recorded software history has sustained an architecture that contradicts its communication structure for more than two years.
Tightly coupled teams produce tightly coupled systems. Loosely coupled teams produce loosely coupled systems. The architecture follows the communication lines. When team boundaries do not match service boundaries, changes cascade across teams. One team's deployment breaks another team's service. The organizational coupling becomes operational coupling.
Production Context
Consider two companies building the same product: a web application with a database backend.
Company A — functional teams: Company B — feature teams:
Frontend Team ──→ UI layer Profile Team ──→ profile service
Backend Team ──→ API layer Search Team ──→ search service
DBA Team ──→ schema Payments Team──→ payment service
Every feature = 3-team meeting Each feature = 1 team, 1 deployment
Company A organizes by function. Every feature requires coordination across all three teams. The API becomes a negotiation boundary. Schema changes require a three-team meeting. Deployment couples all three layers together.
Company B organizes by feature. Each team controls its own frontend, backend, and data store. Schema changes stay within a team. The API contracts between services become the coordination points.
Same product. Different org structures. Different architectures. Conway predicted this in 1967.
The Common Mistake
The common mistake: designing the architecture first and hoping the team structure will adapt.
An architect draws a microservices diagram. The org chart still has functional teams. The frontend team must now coordinate with five different service teams. The DBA team must manage twelve databases. The architecture says "decoupled." The organization says "coupled."
The organization wins. Every time. Within a year, the microservices accumulate shared libraries. Cross-service calls increase. The architecture drifts back toward what the org chart supports.
The Decision Change
The inverse Conway maneuver reverses the sequence. Instead of designing the architecture and hoping the teams adapt, you restructure the teams to produce the architecture you want.
Want microservices? Create feature teams with full-stack ownership. Want a modular monolith? Create teams aligned to domain boundaries. Want a platform? Create a platform team with a clear API contract to consuming teams.
The architecture follows. Not because you drew a diagram. Because you changed the communication structure that produces the architecture.
You do not choose between coupling and cohesion at the code level. You choose it at the team level. The code follows.
Concept: Conway's Law (L10)
Tradeoff: AT8 — functional teams produce coupled layers; feature teams produce cohesive services
Failure Mode: FM2 — when team boundaries do not match service boundaries, one team's change cascades into another team's outage
Signal: When your architecture keeps drifting back to a shape you did not design
Series: Book 6, Ch 12