We got a great response from members for last month's guest blog on Coupling from Paddy Baxter, so we asked for another. This time he's talking about Conway's Law, thanks Paddy.
"organisations which design systems ... are constrained to produce designs which are copies of the communication structures of these organisations." — M. Conway
For some reason I've always loved Conway's law ... and in this article I'm going to dig deeper into it and see what's behind it. I think I might find some hidden gems.
So is it true?
Based on my own experience I absolutely, completely think it is true.
This is based on intuition more than anything though. The question is can I find any hard evidence to back this up? In preparation for this article I did some more research to see if anyone more reputable than me (which wouldn't be hard), had tried to assess how true Conway's claim might be. And I found some really interesting stuff. Who knew!
Top of the list of reference papers in Wikipedia is a Harvard Business School paper by Alan MacCormack, John Rusnak and Carliss Baldwin. This is an excellent read which purports to prove, for one limited enough product/system type example, that software systems designed by more tightly coupled organisations, in this case commercial private sector software companies, are more tightly coupled than software systems developed by much more loosely coupled "organisations" in the open source sector.
To test this they used a specialised code analysis tool to measure the level of inter-dependency - direct and indirect - in the code of systems listed below.
This tool measured the impact of a change on the code - how many parts of the code were impacted by the change? They postulated (without much detail I could see), that the open source systems were developed by more loosely coupled organisations, which is a fair enough assumption you would have to say. What they were not able to do was provide any evidence that the closed source systems were developed by organisations representing tightly-coupled org structures. It's a fair assumption but there is little evidence presented in the paper, that I could see, to back it up.
As detailed below, in the 5 systems types they compared, changes to loosely coupled, open source systems had a lower overhead than equivalent change in the private, commercial off the shelf systems.
What the results show is that, by their measures, the "propagation cost measures" are much higher for systems that are the product of tightly coupled organisations. This is certainly an interesting finding but it's a long way from a slam dunk proof you would have to say too. For one it's a pretty limited sample group and more critically there's not much real detail provided on the actual org structures at play in each of the organisations selected.
So I decided to keep on looking. Next!
This is a Microsoft research paper and as I dived into it I realised that this time, the researchers had gone much deeper into understanding the org structure itself. And since the source was the Microsoft team that created Windows Vista (don't hold that against them), they were going to have a lot of really good data to work with.
We are talking a team of several thousand, 3404 separate binary files with over 50 million lines of code. With access to Microsoft's own version control system, they were able to gather really detailed data on factors such as
To kick things off here's how they summarised the key questions they hoped to answer in their paper:
What I found particularly interesting was how they came up with measurable characteristics from the org structure. For each binary file they assessed the following attributes:
These are all interesting measures (though they do seem to want to make them sound more complex that they need to ... researchers eh!). Thankfully, the also included the following table to help us understand what they meant in simple English:
So what did they find? Well, I am going to save you the trouble of reading through all of their detailed workings and let you know that they found the assertions above to be the best method of predicting code quality they could find when compared to other measurable factors such as Code Churn, Code Complexity, Dependencies, Code Coverage or Pre-Release Bugs.
Or as they say themselves:
'Our organisational measures predict failure-proneness in Windows Vista with significant precision, recall and sensitivity. Our study also compares the prediction models built using organisational metrics against traditional code churn, code complexity, code coverage, code dependencies and pre-release defect measures to show that organisational metrics are better predictors of failure-proneness than the traditional metrics used so far.'
So there you go. Interesting. So what does this all mean? Well if you want to be a real IT Architect it is something I think you really need to think long and hard about because, if it's really true (and the data points that way from what I can see), then you'd better not be trying to design systems that conflict with the communication structure of the organisation in which it needs to work - for example dynamic, deeply software integrated systems in a waterfall structured org ...
Unfortunately for many of us today this is exactly the scenario we are facing and even worse, for most of us, we have very little hope of fixing it in the short term if ever.
Unless .... how about we try and answer this question ...
If Conway's Law is really true, what kind of org structure would facilitate high quality digital systems?
In my next post, for the fun of it, I am going to take the factors below and see what an optimally designed org structure might look like.
Till next time.
About the Author
This article was originally published on the Digital Age Architects blog.
Paddy Baxter is a Senior Lecturer on the Iasa Core Certification (CITA-F) course, an Iasa Ireland committee member and regular organiser of several Iasa Ireland Conferences and events.
Paddy, a big picture thinker, with IT architecture in his blood is passionate about the role of the IT Architect in modern society. Paddy has over 25 years’ experience in the IT sector working to improve organisations, processes and systems using digital technology. Working in many geographies and in many enterprises for companies such as EY, Intel, Microsoft and HP, Paddy has gained extensive experience in what value means (and does not mean), when talking digital innovation.