Conway’s Law postulates, that the design of a system, reflects the organization of the designers.
An organization, that designs a system, will produce a design whose structure is a copy of the organization’s communication structure - source: Melvin Conway, Wikipeda
The assumption is that a Complex System is created, that is sufficiently big, that it cannot be created by only one part of the creating organization. Hence, members of the organization need to communicate to align the design and work (e.g. agree on interfaces). In bigger structures, this means departments need to communicate. The resulting system by necessity is then shaped (sic) by the communication structure of the organization.
Consequences
- To change design => change organization => change people
- Changing architecture of a software requires changing the organization of the people that work with it
- It answers the WTF question (this messy piece of s**t we made is messy because we are messy - we should work on that before rewriting it and get the same out)
- It makes sense of consultancies: have someone “who works right” design it, thereby have a “mold” to align the organization
- It emphasizes to understand tooling before committing - don’t buy software that doens’t work for your organization