5 ms·
> Conway's Law isn't a flaw, it's the correct way to engineer a product Conway's Law is not a way to engineer product. It is an emergent property of a system,
by throwawaaarrgh 4y ago
> Conway's Law isn't a flaw, it's the correct way to engineer a product
Conway's Law is not a way to engineer product. It is an emergent property of a system, called homomorphism.
It's flaw in most systems because an organization's natural structure leads to flaws in the system. (https://www.atlassian.com/blog/teamwork/what-is-conways-law-acmi https://www.atlassian.com/blog/teamwork/what-is-conways-law-...)
The thing is, it's not written in blood. You don't have to reorg to redefine your architecture. You don't have to design an ironclad API, or work on an "imperative function" between people sitting in the same room. In fact, there may not be an organizational principle that will give you a good architecture.
Want evidence? Open Source software. People sitting halfway around the world making software that has eaten the entire planet. Some of the contributors have commercial interest, but they don't get to dictate the architecture. And hey, how about that, the software gets made well anyway, even though the communication structure is often just one global mailing list. "The org structure" doesn't define the architecture because it would become random. Instead, the software's architecture is defined, and then people go out of their way to figure out how to make it. It is the opposite of Conway's Law. Yet it has been working for over 30 years.
Conway's Law is a flaw in human ingenuity, like a bias. We have many biases. Bias is an emergent property that, if unchecked, leads to bad outcomes. But we are capable of rising above them, if we try. The result is better if we do.
- diatone 4y agoRe your point on OSS being architected first, then the org shapes itself around it, a decent counterexample is the development of git. https://www.linux.com/news/10-years-git-interview-git-creator-linus-torvalds/ https://www.linux.com/news/10-years-git-interview-git-creato... Written specifically to match the politics of Linux kernel development, since there wasn’t an open source alternative that could do so already (paraphrasing the interview)
- throwawaaarrgh 4y agoGit is a great example of terrible design; Linus has said this repeatedly (and it's in the name). Most successful open source software is simply designed however one person thought it made sense. Often this design ends up being reworked into a new major version, but again, in most open source projects the goal is just better design without deference to communication structure.