Conway’s Law

Melvin Conway is a computer scientist who made several early stage contributions to the field, including early specifications of coroutines and compiler compilers. His later work included development of the MUMPS medical programming environment. In 1967, Conway published an article in the magazine Datamation, titled “How Do Committees Invent?” In this article he detailed how systems design and organizational structure tend to be describable with the same abstractions, using entities and communication channels. More importantly, the systems and organizations tend to be homomorphic, or in Conway’s words:

“The basic thesis of this article is that organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.”

Hierarchical organizations produce hierarchical systems (anything governmental or military). Organization with communication breakdown tend to produce complete messes of systems because their components do not communicate well (Java). Large organizations with well structured commuication tend to create frameworks and platforms, leading to feature creep in the vein of Zawinski’s Law (any Web browser). Small, tight, focused teams create small, tight, focused systems, which is why the ideal team size is 5-7 persons. Single person operations tend to write extremely tightly coupled architecture or a single monolithic module (early PHP). Highly top-down organizations tend to have fewer configuration options (Apple), while organizations that have many stakeholders with low cohesion make too many concessions to configuration and other exceptions (Microsoft).