A Corollary to Conway's Law


Conway's law states that

organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations

This law has been empirically observed time and again, and is usually uttered together with a sigh of despair of an engineer or system architect who has just given up hope that the system in question will ever become anything else but a tangled mess.

But if you are a CTO or VP of engineering you can use Conway's law to your advantage. Namely, being two or more management levels away from the actual code effectively precludes higher-level tech manager from influencing the architecture of the system as all the real decisions influencing the architecture of the system are made in the code by developers and their immediate leads, not at the meetings with senior tech manager. The only real influence on the architecture of a system that a CTO or VPE effectively has is through selection and organization of people building the system. For example, if you want you two systems to integrate, your best chance of achieving it is to blend the teams responsible for building the systems. Similarly, if you want some system to be split in two, your best option is to split the team and wait for the code base to diverge. And if you want your system to start using some new technology, you need to include in the team a strong personality enthusiastic about the technology you want to introduce and the rest will just happen (eventually).

Enhanced by Zemanta