Skip to main content

Conway's Law and more

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

It was first posited by Melvin Conway in the 1960s, and it's a hard constraint on software, networks, and other formal technical systems. What it says is that code is generated by human systems, and these limit how it will work. All software contains the same patterns and relationships that exist within the social systems of the organisation that created it. There's now good empirical support for the hypothesis, too with a paper published the Harvard Business Review finding that closed-source software produced in a single location tends towards a single, monolithic codebase, whereas distributed open-source projects tend towards modularity.

Large organisations typically have support structures around those actually producing code or designing systems. There's management, procedure, and a whole host of other things which act to align the creation of something more tightly-coupled that would otherwise be the case. On a volunteer-led open-source project, this support structure is largely or entirely absent. There's no project manager to get everyone in a room, or set of coding standards which make it easier to write a complex interface. At best, there's a mailing list, or a forum, with perhaps a wiki to provide a bit of structure. It's therefore much easier to break the code into smaller pieces which can be tackled by individuals or a very small group.

Conway's Law has a really important implication for IT projects, and indeed for anything which results in the development of a formal system. That is, for things to work properly, your organisational structure must reflect the architecture of the system you're producing. This has some major implications for the static org chart that exists in many, many organisations. It suggests that cross-functional teams with a single goal are likely to produce far better products more efficiently than those who are part of separate, single-function teams. It also means that if you want the kind of tightly-coupled, low hand-off cost process which is the hallmark of something like Six Sigma, you need to make sure that there is the social structure around the process is just as robust.

Failing to do this results in two very unpleasant outcomes. The first is that the production of the product will cost more for a given quality than it would from an organisation in which architecture and structure were aligned. Tensions which exist between groups will result in a product who's structure does not systematically fulfil its design goals. This will make the thing harder to develop, to fault-find, and to maintain. The second, perhaps subtler, but equally troubling outcome is that product will reflect the concerns of the organisation and those in it, rather than those of the end-user. This results in a system with unnecessary functions, inexplicable behaviours, and other quirks which lead to considerable user dissatisfaction. It's not possible to engage in user-focused design unless the organisation itself, its social structures and culture, are also user-focused.

There's an important corollary of Conway's Law which also has considerable influence over the end-user experience.  The affective state which a product generates in its users will be a reflection of the affective state of the people who created it. In other words, a happy team makes products which make customers happy, and a miserable team makes products which make customers miserable. We've all experienced using something finely crafted and well thought through. Perhaps it was a car, or a really well made meal at a high-end restaurant. Whatever it was, it was the product of a high degree of team cohesion, and a lot of intrinsic motivation to deliver a product that was truly great. That just doesn't come about with an unhappy team.


It's also the case that if you want long-term engagement with your customers, you're going to want long-term engagement with staff. People build a relationship with and develop an attachment to the products they use, even if you develop business tools. Particularly if you develop business tools. There's abundant evidence that happier employees are good for the bottom line even of you don't produce the kind of systems we're talking about. They make customers happy. If you're selling a business application and you can make your customer's users happy, they get a nudge along the way in their own workplace happiness and all the benefits that brings.

Whether you're in charge of a whole organisation, or simply taking the lead on the smallest project, you need to be mindful of Conway's Law because it can radically affect outcomes. Even if you're simply contributing, by forging better social links with your colleagues you can create a more cohesive product and deliver something which end-users will enjoy. Ultimately, again, this demonstrates how important a happy, positive working environment is. This isn't just because it's the right thing to do (although it very much is), but because it's the only way to make things that people will actually want to use.

Comments

Popular posts from this blog

Starting at the start - why write a blog?

Why start a blog on Pychology for IT Pros (and other technical people)? Whilst there's a huge amount of information tailored to traditional business, and an increasing body of work around startups and their associated culture, there is very little that directly relates to the day-to-day working life of technical people and what they do. This is a major omission; whilst technical people may be different in that part of the job involves dealing with machines, a huge part of the work is with, for, and mediated by, other people. There's a good argument that the role of  IT people is to form the bridge between computer systems and the rest of the organisation. The aim of this blog is to use evidence from psychology, neuroscience and other related fields to give you insight into how you can do your job more effectively, and be happier whilst doing so. You may well be wondering if reading this blog will be worth your time, aside from the absence of anyone else writing on the the t...

Why work?

This is the first of a series of post on happiness at work. Happiness is one of the most valuable practical outcomes of applying psychology, and doing so at work can be transformative. We typically spend 40 hours a week working, which is a very long time to be doing something which makes us miserable. Few people I've met had really made a point of pursuing happiness at work. It's not a widely held expectation that we should enjoy our jobs, and perhaps even the opposite is true, that there is some moral value in spending time doing something you find unpleasant. This internalisation of the Protestant Work Ethic has been, perhaps surprisingly, escaped the Danes. They have word for happiness at work,  Arbejdsglæde,  and both expect the workplace to allow them to be happy, and make decisions in support of that. This has considerable benefits, including a higher per-capita GDP than the UK. Before I get stuck in, it's important to define what I mean by happiness here. What I...

How to change things

In the past few posts I've covered quite a few potential sources of dissatisfaction at work. You might have found yourself in a job which sits poorly with your personal identity , or you may have found yourself in a workplace which lacks sufficient trust . This post is focused on some methods with a good psychological backing to help you change yourself so you can get closer to the things you want. I'm focusing on self-change here as it's perhaps the most fundamental thing you can do to address an unhappy situation, and has the most profound effects. There's a lot of resonance in this topic for me personally, and this blog is a part of my own change process. First, I'm going to discuss approaches that make change more likely, then I'll move on to techniques for determining what kind of positive change you really want to make. Making change more likely Much like actively designing a computer system is far better than letting circumstance design it for you, pla...