Conway’s law is an observation, which states that the structures of systems are predetermined by the communication structures of the organizations that implement them. Conway’s law is based on the idea that interpersonal communication is necessary to define the interfaces between separate software modules. Therefore, the communication structures of the organizations have a great influence on the structures of these interfaces.
A Harvard Business School study concluded that there is strong evidence of the correctness of Conway’s law. For all of the 12 products, they studied from 5 different fields of application (financial management, word processing, spreadsheet, operating system, database system), the coupling of the organizations developing them correlated with the modularity of the products.
Suppose a company is contracted to implement a large software system. The contractor has three developer groups, E1, E2 and E3, working together on the project. Conway’s law now states that the developed software system is likely to consist of three large subsystems, S1, S2, and S3, which will be implemented in a different developer group. More importantly, the quality and type of interfaces between the subsystems (S1-S2, S1-S3, S2-S3) will reflect the quality and type of interpersonal communication between the relevant developer groups (E1-E2, E1-E3, E2-E3).
The same is true on a smaller scale: suppose the software developer E1 has implemented class K1 for the functionality F1. Later, the functionality F1 will be extended by a similar functionality F2. If the software developer E1 implements this functionality, it will simply extend the class K1 with this functionality. If a software developer implements This functionality from another group, he is likely to fear that the existing functionality will be compromised and therefore implement the F2 functionality in a (sub)class K2. The design of the application, therefore, depends to a high degree on who implements the functionality.