Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.
This observation, made by Melvin Conway in 1967, has profound implications for software architecture. If your team is split into frontend, backend, and database groups, you will likely end up with a three-tier architecture—regardless of whether that's the best design.
Implications
- Team structure constrains system design
- Reorganizing teams can reshape architecture
- The Inverse Conway Maneuver deliberately structures teams to produce a desired architecture