Blogmark

Conway's Law

via jbranchaud@gmail.com

https://martinfowler.com/bliki/ConwaysLaw.html
System Design

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

Or put another way as I’ve also seen this concept described:

Organizations design systems that mirror their own communication structures.

Fowler gives a concise example of what this can look like.

if a single team writes a compiler, it will be a one-pass compiler, but if the team is divided into two, then it will be a two-pass compiler.

It’s not that there is a wrong or right way for an organization to communicate, but rather that an organization should ensure there isn’t dissonance between communication structures and system design.

We often see how inattention to the law can twist system architectures. If an architecture is designed at odds with the development organization's structure, then tensions appear in the software structure. Module interactions that were designed to be straightforward become complicated, because the teams responsible for them don't work together well.

I was reminded of Conway’s Law because it was mentioned in Pierre’s new landing page.