Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.
-- Conway's Law
In reverse words, the way a company or a team is structured will determine how its software structures and works. The law is so important because it reveals a lot of important facets that we might want to examine before building software:
- It tells us that we should always start with people first.
- It tells us that we can't change the architecture of a software unless we change the same time how the people working on it are organized.
- It tells us to look at the people to understand why a certain system was developed in a certain way.
- It tells us the two modules developed by two development groups cannot interface with each other unless there are communications between those groups.
- It tells us to not panic if experiencing a large group starts breaking into smaller ones because it's how an organization grows by reducing communication overhead.
- It tells us that organizational hierarchies should change as fast as either the need for internal innovation or external market pressure.