Organizations create software / Software creates organizations.
Very few of the applications we use are created by individuals, almost all software is actually the product of an organization — and the source code will reflect the principles and structure of it’s creators. At the same time, the tools and applications an organization uses to perform it’s functions will define it’s structure — and possibly even influence its values.
Creating good software may need programmers and source code, but it is the way in which an organization operates that will define whether or not the software really does it’s job.
When you step back and look, the relationship between organizational structure, principles and tools is fairly obvious. It’s not a simple one-way connection, but a complex feedback loop where tools influence management and ideologies create tools.
It’s always been this way. The impact of fire on society would have transformed the way whole tribes operated. The agricultural revolution was a process of evolving technology and the organizational ability to utilise it. This combination of tools and organisation transformed the world.
The same can be said for the industrial and digital revolutions. Mechanisation allows new types of organization to emerge which then create the tools that allow them to better achieve their goals.
An organization that can work very efficiently with an assembly line will mirror the nature of the assembly line. It wiIn the same way, an organization able to operate in an online, interconnected, digital world, will adopt an appropriate structure.
If you squint your eyes just right, you will see an org chart in the layout of an industrial organizations factories. In just the same way, you can see an organization reflected in the source code it creates, and the structure of it’s website.
In software, the relationship between organizational structure and code is known as Conway’s Law.
“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.”
— M. Conway
Conway’s Law in practice
Over the last 20 years of building software, I’ve seen this rule over an over again. In fact, after 20 years of building software, I have given up on the code to focus on the organization because, no matter how good my team might have been at creating software, it was the way in which my clients made decisions that mattered far more.
When building a website for an organization that is always wanting to do different projects and try new marketing campaigns run by different agencies and departments, you will tend to get a request to build something with lots of configurable options or modules.
If marketing is in the hands of one team with a standard way of working, they will want a tool that is more linear, allowing them to do what they always do better.
In a slightly different way ,when 3 teams are working on the same piece of software, they will produce software with 3 main components so that they can minimise the communication required between the teams.
The principles and vision of an organization are reflected too. When an organization is focused on aesthetics and clear lines of control, it will produce software that has aesthetics at all levels with a strong emphasis on consistency. An organization that stresses modularity, extensibility and technical functionality, will mirror these values in it’s organizational structure and in it’s software.
These correlations are unavoidable, they can sometimes be mitigated by really strong programmers who are able to influence the organization in their own way, but even that influence is essentially mirrored in the code.
In practice, Conway’s Law comes down to this: To build good software, you need to build the right organization. It also says that the software you use will influence your organizational structure.
This post is part of the preparation for a talk I am working on. Inspired by Liz Slade to begin to think out loud a little more, I’m attempting to share ideas a little earlier in the writing process than normal, so they may be a little rough and evolve over time.