Exploring the Human Implications of 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.”
In other words, the communication patterns in your team are duplicated in your software. I recently had a chat in which my counterpart made the point that if we take Conway’s Law to be true, it should stand that the mental state of the individuals engaging in said communication is also having a great affect on your software.
When dealing with networks, we most often focus on the links between the nodes. It’s the relationship between the pieces which produce a meta layer of dynamics to work with. Without connections, there is no network. Yet when dealing with networks of humans, the natural extension of Conway’s Law calls on us to examine the state of nodes themselves.
In contrast to inanimate interactive entities, like servers, human nodes are neither uniform nor neutral. Much the way DNA contains a set of plans for how an organism’s development unfolds, humans are carriers of their own design patterns. The way these design patterns are expressed in an organization will vary based on things like their past experiences and identities, whether or not they perceive that their contributions are respected, and whether they’ve gotten enough sleep or calories, just to name a few. An individual human node will respond to stimulus differently based on the state of these factors, which shifts how they will communicate on a given day. Conway’s Law postulates that this is reflected in the software system they’re building. Then, there’s a concurrent process running where they interact with other humans in your organization, each with design patterns of their own. This combination produces the state of your software.
While preemptively controlling for every aspect of the communication between the humans designing a system seems unlikely, it stands to reason that optimizing for the well-being of the individuals doing the work can be a sort of resilience engineering. Things like proper compensation, respect for boundaries, a blameless culture, and clear opportunities for advancement create circumstances most likely to engender an open, well-regulated, constructive mental state. If Conway’s Law is right, maintenance on the state of the human nodes in a network paves the way for more constructive communication patterns, and better software.