James's Blog

Sharing random thoughts, stories and ideas.

Conway's Graph

Posted: May 27, 2021
◷ 2 minute read

The famous adage of Conway’s law, coined by and named after Melvin Conway, states that:

Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.

Systems that an organization produces, such as software, typically have explicit structures. Maybe it’s obvious from simply looking at the system - seeing how the software works, how the information is organized within, and what the user experience is like. To get a more complete picture, maybe there are also some architectural diagrams showing all the under-the-hood components, and how they interact with each other to produce the whole.

What about the communication structure of an organization? I think things are less obvious here. There is the org chart, which is similar to architectural diagrams of systems. But it doesn’t quite articulate the communication structure of the organization, because it mainly specifies the reporting structure. Of course, there is some overlap between the two: people that fall under the same reporting silo will likely have more communication with each other than with people outside of their reporting silo. But the boundaries between reporting “sub-components” (e.g. functional teams or departments) of an organization is a lot more permeable than components of a technical system. Even in companies that practice service-oriented organizational architecture, people will still be talking to each other outside the preordained protocols.

Let’s call the actual communication structure of an organization its “Conway’s graph”, named after the law. This graph would contain information on who’s talking to whom, about what, through what means, and how often, across the entire organization. Management can use it to inform team structural design decisions and identify communication problems or bottlenecks. Individuals can use it as a map to navigate the organizational landscape to better collaborate with others. So how do we get this Conway’s graph?

If the organization is fully working within a single ecosystem of productivity tools, things are a bit easier to figure out. Software suites like Google Workspace, Microsoft 365, or Twist already provide a lot of powerful reporting and visualization capabilities that can give us a glimpse at the Conway’s graph contained within. But even these reporting tools, made by the same company for the same ecosystem, often don’t go deep enough to reveal the true nature of the graph. Email communication may be visible for example, but communications via comments in a Google Doc are not as easily seen.

In practice Conway’s graph is even trickier to get than this, because most organizations these days aren’t working within a single ecosystem of tools. A single company company may be using Google Workspace for emails and files, Slack for chat, Jira for project management, Notion for documentation. There is good reason for doing this, because each tool may be the best at fulfilling the needs in its own niche. But the result is that communication is split among them with no easy way to see things holistically, even with integrations between all the systems (which are usually too shallow for this purpose anyway).