Conway's Law
Featured Video
Conway’s Law is the observation that an organisation's system and software architecture will inevitably mirror its communication and organisational structure. Formulated by computer programmer Melvin Conway in 1967, it remains a foundational principle for technology leaders trying to align organisational design with technical strategy.
The Core Concept
Conway’s Law asserts that technical architectures and organisational architectures are homomorphic (mirror images of each other). Committees, teams, and departments don’t just write code; their communication boundaries define the boundaries of the systems they produce.
Siloed Teams vs. Monolithic Code
If you structure your engineering organisation around functional layers (e.g., separate Frontend, Backend, and DBA teams), you will naturally produce a software architecture split into a monolithic frontend, a monolithic backend, and a single, shared database. The hand-offs and communication bottlenecks between those teams will manifest as tight coupling and high latency in the software layers.
Cross-Functional Teams vs. Decoupled Systems
Conversely, if you structure your organisation around cross-functional teams that own specific domains (e.g., Payments, Catalogue, User Accounts), each team will build and own a separate, decoupled service. The clear boundaries between the teams will lead to clean, well-defined APIs and microservices.
Strategic Utility (Why CTOs Should Care)
For technology leaders, Conway's Law is not just a passive observation, but an active tool for structuring systems and teams.
1. The Inverse Conway Maneuver
The Inverse Conway Maneuver is the strategic practice of designing your organisation's team structure to mirror the target technical architecture you want to achieve.
- Action: If your goal is a modular microservices architecture, do not start by writing code. Start by breaking down your large engineering teams into small, independent, cross-functional stream-aligned teams with clear boundaries.
2. Reducing Cognitive Load
Aligning team boundaries with software boundaries (e.g., Domain-Driven Design's "Bounded Contexts") prevents engineers from having to understand the entire system to deliver value. Each team can focus entirely on their specific business domain and its technical implementation, minimising context switching.
3. Lowering Coordination Overhead
When team boundaries don't match software boundaries, developers are forced to coordinate extensively across teams to ship a single feature. This creates meeting overhead, deployment bottlenecks, and "too many cooks in the kitchen." By matching team ownership to architectural boundaries, you allow teams to deploy independently.
Explore Next
- Brooks’s Law — How team size and communication overhead affect project delivery.
- Dunbar's Number — Understanding relationship limits and team scaling thresholds.
- Laws of Software & Systems — A compilation of mental models for technical systems and organisations.
- Martec's Law — Balancing organisational change with technological evolution.
- Architecture Patterns — How modular frontends and backend patterns align with team boundaries.
References
- How Do Committees Invent? — Melvin Conway's original 1967 paper published in *Datamation*.
- Conway's LawWikipedia — Overview and historical context.
- Conway's Law on MartinFowler.com — A pragmatic explanation of the law in modern software architecture.