
Conway's Law - rexfuzzle
https://en.wikipedia.org/wiki/Conway%27s_law
======
JPGalt
I am aware of this theoretical law but never really considered it. I suppose
this could explain why I encountered such push back against a distributed SOA
architecture on commodity hardware at a large organization that was built
around centralized systems using mainframes.

Ultimately after three years of justifying and re-justifying the decisions I
made for which they explicitly hired me for I moved on. It was abundantly
clear that though they brought me in to implement SOA and lower physical
costs, the culture just did not support that decision. What struck me as odd
was that fact that those who hired me to do it did not seem to support it
either.

I should note that Conway's law seems like a reasonable assumption as to why
due to the monolithic and centralized nature of communication there. It was
considered "taboo" to walk in to an executive managers office to speak to
them. The expectation was to follow this ridiculously verbose chain of command
whereby response to even a simple question could take days or even weeks.

~~~
cagenut

      > The expectation was to follow this ridiculously verbose chain of command 
      > whereby response to even a simple question could take days or even weeks.
    

oh so they already did SOA

~~~
tabtab
I can't get a clear meaning of "SOA". Data and processes have been shared for
many decades. Stored procedures are a common example of such before the Web
era. Shoving stuff into JSON doesn't necessarily make it better, and often
creates more maintenance work. Do things for a clear reason, not because it's
in style.

------
sz4kerto
"organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations."

I'd say that organizations are not just constrained to do that -- they should.
When you design systems and infrastructure, keep in mind that systems and
solutions are under evolutionary pressure, and engineers have to change it all
the time. When optimizing for change, you need to optimize for teams and
interactions.

If the whole team is sitting in the same room, then there's nothing wrong with
a monolithic app and shouting to others that 'hey, does anyone have a problem
if I release the latest master branch?'; or it's also fine to have a QA server
that the team is using. At a remote company, it's much more important to be
able to test subsystems in isolation or even without internet access,
automated integration tests are more useful and important.

And so on.

~~~
sverhagen
Probably you're just oversimplifying for brevity or something. But I've worked
at plenty of projects where the team was sitting together, the product was a
monolith, and it was still a problem. Coordination becomes easier, sitting
together, but the need to coordinate, or the level with which people start
"stepping on each other's toes" (code-wise) isn't reduced by it. I'm not
saying all monoliths are bad, or that you would never want one, but when it
becomes a problem, there's little consolation in sitting together.

~~~
baddox
Conway’s law doesn’t directly claim anything about the quality or
effectiveness of the resulting system, but I suspect a corollary would also
apply: that the effectiveness of a system is limited by the effectiveness of
the communication structure of the organization that develops it.

~~~
stoshe
Conway's law doesn't make those claims, but this has been tested by
researchers and industry giants (a Microsoft team published a paper on this a
part of a Vista retrospective) and those papers do make such claims.

------
yacse
If it is one thing that I have learned at a large software company it is the
fact that Conway's Law is fundamentally true. Any software system is a mirror
of the team setup and the interactions between the involved people. And many
bugs are found in the interfaces/interactions between components of isolated
teams.

However, this also means that as a software developer you are unable, or at
least very constrained, in the ability to improve or refactor any complex
legacy system. You are basically fighting uphill battles in such situations,
because you are not in the authority to change/improve the organizational
structure.

This also means that as programmers we may need to take more time and care to
invest in human relationships and in our communication skills, as this could
have an significant effect on code and product quality.

------
kitd
Conway's Law validates a decision to move to a service-oriented and/or
microservice architecture. Each service ~= a business unit or department.

Even better is that such an architecture requires (or at least greatly
benefits from) specifying precisely the communication between the interacting
parts in the form of interfaces.

IIRC there is a study that Steve McConnell mentions in one of his books
(sorry, I can't find the link) that shows that the number of bugs introduced
into system is highly correlated to the number of lines of communication
between the people or teams that write it. Add another team and that number
potentially rises exponentially. Conway's Law is the scaffold on which all
these understandings hang.

~~~
SideburnsOfDoom
> Conway's Law validates a decision to move to a service-oriented and/or
> microservice architecture. Each service ~= a business unit or department.

Organising the business units around the desired deployables is also know as
"the Inverse Conway Maneuver"

[https://www.thoughtworks.com/radar/techniques/inverse-
conway...](https://www.thoughtworks.com/radar/techniques/inverse-conway-
maneuver)

[http://betica.com/blog/2016/06/17/transform-your-
organizatio...](http://betica.com/blog/2016/06/17/transform-your-organization-
with-the-inverse-conway-maneuver/)

------
cateye
I feel old when these kind of Wikipedia pages make it to the front page and I
was assuming that it was known and obvious for everyone. </grand parent mode
off>

~~~
ghaff
Yes. When speaking and writing, I constantly struggle with the fact that a lot
of things that are eye-rollingly last year's or even last decade's news for
some are eye-opening new concepts for others. It's easy to assume that what's
almost cliche in your specific circle is as well known everywhere.

~~~
spanktheuser
When I was younger I thought of the course of knowledge as steadily advancing.
Because that was my experience as a beginner. Now I think of generations of
knowledge, each a circle in a venn diagram, messily overlapping one another.
Not an astonishing insight, but it helps me prepare for mentoring some of my
younger colleagues.

------
tialaramex
It's maybe interesting to consider Conway's Law in respect of the systems
designed by IETF Working Groups (as distinct from the wider scope of systems
that have an RFC but were designed wholly outside the IETF or brought to the
IETF largely finished for just a bit of spit and polish)

Whether the IETF is an organisation per se is a fun question in itself of
course since it has no membership. It is clearly an activity, but so is break-
dancing or reading poetry and we do not suppose that people who read poetry
are an "organisation". But if it /is/ an organization, then is that
organisation reflected in the things it designs?

~~~
rumcajz
I think this may be one of the reasons for IETF's success. Compare with, for
example, 3GPP standards. The fact that each WG does a single task and is
disabanded early means, according to Conway's law, that individual RFCs will
be relatively independent.

------
valeg
Conway's law can explain a lot about current Facebook privacy debacle.

~~~
godelmachine
It does. Move fast and break things. Thye have broken a lot of things.

------
etaioinshrdlu
What do you build when everyone talks to each other over Slack?

~~~
staz
depends on how they talk on slack and who talks to who.

The company I'm working with at the moment has separate slack per team with
each time being ~5 persons and then some people from other team on each slack
who pass message.... the communication is not great and the collaboration
between services isn't either

~~~
delecti
Entirely separate Slack instances? Not just separate channels?

~~~
staz
Yep entirely separate instance. I have 6 different slacks tab open for work at
the moment.

They also have mails, Skype, Yammer, Ms Team, and a few different conferencing
system on top of that.

it's a mess. For example nearly each team have their own Bitbuck, gitlab
instance, github org , gitlab org or whatever VSTS use

------
wavemode
This also applies to performance. Nobody cares that the system is
nightmarishly slow in bureaucratic corporations where even the simplest
software projects take 6 months minimum.

------
dang
Some previous discussions over the years:
[https://hn.algolia.com/?query=Conway%27s%20Law%20points%3E3&...](https://hn.algolia.com/?query=Conway%27s%20Law%20points%3E3&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

------
k6hkUZtLUM
I often see this in the company webpages. Does a college organize for new
students? By division? Department? You can tell a lot about the college
culture based on how the website is organized!

------
jimhefferon
This is like Tufte's, _Presenation recapitulates organization._

------
newman8r
I always suspected this could be applied to civilization and the human mind as
well - that the structure of society has some similarities to the structure of
our brains.

------
z3t4
Have anyone deep dived into this ? I'm interested in learning more. What is
the most common communication structures and what designs does those
correspond to ?

------
DonbunEf7
This is also the reason why online discourse sucks; online forums are shaped
like troll incubators or echo chambers, not like fora.

------
desertsky
TIL Conway's Law isn't "Life Finds a Way"

------
thelegendxp
the Twitter offices must be a special kind of hell. could you imagine twitter
in real life?

------
JensRantil
How can this not have been posted on Hacker News before? Do old posts expire
after some time?

~~~
hamandcheese
It's a recurring topic:
[https://hn.algolia.com/?query=Conway%27s%20Law&sort=byDate&d...](https://hn.algolia.com/?query=Conway%27s%20Law&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

------
bencollier49
Has this appeared on here because it was discussed on This Week in Tech (TWiT)
?

~~~
rexfuzzle
Yip, that is where I heard about it- found it very interesting and applicable.

