On this occasion, I would like to discuss a statement of conventional wisdom, usually taken as law, Conway’s Law to be precise.
This particular law enunciated by Melvin Conway in the 1960s states that organizations design systems that are, in turn, copies of their own organizational structures. By “copies” it means that the systems are, in some way, influenced or conditioned by these structures. In other words, if an area of a company produces a module “X” and another a module “Y”, and both modules must interact, the communication interface between the modules will be as good as the communication between the areas.
A typical example that is usually used to exemplify the law is:
“If you have four groups working on a compiler, you’ll get a 4-pass compiler”.
In the words of Bill Corcoran: “The structure of a problem reflects the structure of the organization that created it”.
Some formal evidence of Conway’s Law has been published by the Harvard Business School when they found that distributed teams tend to implement more modular products.
The law suggests that the architecture chosen for a system is often conditioned by the development teams available to perform it. It is very usual to find two products developed by the same organization that, although they are part of a greater product or integral solution, are very different from each other. They might not even have the same look and feel.
Conway spoke, I think, of cohesion, but of social cohesion. If we go to the source, social cohesion in the company is the “sense of belonging to a common space or the degree of consensus of the members of an organization”. It would be something like “throwing all for the same side, feeling united by something that is beyond our own security or egoistic goals”. I do not think Mr. Conway wanted to talk specifically about the members who work in the design and implementation teams, but about all areas of the company. After all, the products and services are not sold or displayed on their own; they are not deployed in isolation or supported apart from other systems.
Likewise, there is considerable effort invested in improving communication. To rethink work teams, no longer dividing by specialization, tending to put together teams that truly do everything. These new teams are like cells, comprised of diverse members which can solve any type of problem. This answers many issues that are seen today in the final product. The industry moves in the same direction when it looks towards the Agile paradigm or with the emerging of job positions such as full stack developers or the recently so much requested develops.
I think this is a recurring problem in all companies in the industry and, given how great the impact it has on our work is, I find it surprising that Mr. Conway and his law are still not widely widespread, despite having pointed out such a prevalent problem, so long ago.