Category Archives: software

Conway’s law held in place by the Shirky principle

I had a good time at Devopsdays.  It’s been a few weeks, and two things are still near the surface of my thoughts.

  1. Conway’s law

    “Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.” — Melvin Conway

  2. The Shirky principle.

    “Institutions will try to preserve the problem to which they are the solution.” — Clay Shirky

This leads me to the following:

Organizations have many teams and departments, each ostensibly required to build a complex system. These sub-divisions function to preserve themselves.

These two principles work together to produce something that’s very resistant to change. It’s even worse when the entrenched org prevents meaningful change in something new – such as a move to the cloud, adoption of devops or agile.

Put another way :

Companies build machinery (structure, people and tooling) to create software that become inflexible because the people that are the machinery hang on to their cog.

There is another factor keeping systems and organizations static:

“It is difficult to get a man to understand something, when his salary depends on his not understanding it.” — Upton Sinclair

Change is hard, but change is inevitable.  Thinking on and trying to understand why it’s hard has helped me.

The catalysts for these thoughts:

Dan Slimmon‘s talk on Conway’s Law: The Skeleton Of Devops

Ian Malpass‘ talk  on Fallible humans: dealing with failure in the absence of scapegoats


Filed under software, work