Free — no signup required

The Problem: When Structure Fights Strategy

2 min read

The Accidental Architecture

The danger of Conway's Law is that if you ignore it, your software architecture will be defined by accident, not by design. This is how most architectural debt accumulates — not through bad engineering decisions, but through organizational decisions made without considering their technical consequences.

Companies often design an idealized technical architecture on a whiteboard — perhaps a sleek, decoupled microservices architecture based on business domains (e.g., "Payments," "Shipping," "Users"). The diagram looks clean. The architects are proud of it. Then they hand this design to their existing organizational structure: functional silos like "The UI Team," "The Java Team," and "The DBA Team."

The Conflict

Because the "UI Team" has high-bandwidth communication internally but low-bandwidth communication with the "DBA Team," the software will reflect this. Instead of the desired domain-based microservices, the teams will naturally build a layered monolith. Every feature request requires a UI ticket, a backend ticket, and a DBA ticket — three queues, three sets of priorities, three release windows.

The organizational structure acts as a constraint that forces the software into a shape that matches the communication paths, regardless of what the architecture diagram says. You can mandate microservices all you want, but if the teams are still organized by technical function, you'll get a distributed monolith: the worst of both worlds. You get the operational complexity of microservices with the tight coupling of a monolith.

The organization's structure will always win against the desired architecture. This is not a failure of engineering discipline. It is Conway's Law operating exactly as described.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free