Systems Thinking

Occasionally I work with clients who have a major problem in delivering on time and to the agreed quality. When I start to investigate the causes I find that when I talk to the product team they say the problem is that engineering is not fast enough and/or they produce too many defects, and when I talk to engineering they tell me that they get incomplete specifications from product, which means they have to spend more time developing, and sometimes they have to undo changes because they were not what the customer wanted. It is common for these organisations to see themselves as a set of silos, and to believe that the solution lies in “fixing” one of these silos (e.g. engineering). But this is a reductionist view of the problem, and rarely helps to solve it. To address the root of the problem, we need to rethink how we understand the organisation, and this is where systems thinking can help. As Einstein said: “We cannot solve problems by thinking in the same way as when we create them”.

A couple of years ago I came across the book Team Topologies (by Mathew Skelton and Manuel Pais), which talks about organisations as software systems. The book introduces Conway’s law, which states that organisations produce systems that mimic their communication structures. Examples of this law in practice can be seen when we separate a team working on the same component or microservice, it is common for this component to end up splitting, since the communication structure between the teams splits, making the close collaboration required to work on the same component more complicated. The book talks about Conway’s reverse manoeuvre, which invites us to design our organisation according to the architecture we want to achieve. This challenges many of the organisational decisions that are made in companies, where architecture is not taken into account or plays a secondary role in the design of the organisation. And it invites us to think of people and the software they produce as parts of the same system.

Companies are systems, but they are often not seen as such. And although we may not be aware of the system that makes up our organisation, that system is real and it is there. Sometimes the only visual representation of a company’s system is a traditional organisation chart, but this is a very limited vision that only shows the people, teams and reporting lines. It reflects neither the flow of information, nor the dynamic connections, nor the culture, nor the real and complex relationships that occur throughout the organisation chart.

Linearity and non-linearity

We are used to think in a linear way: if X then Y. However, systems cannot be understood in this way. The number of components and relationships between them grows exponentially, and systems become non-linear. I continually have conversations in which people try to approach problems in an oversimplified way. For example, talking to a manager a few months ago about the need to invest in upgrading his cloud infrastructure, he asked me what the expected ROI was, in terms of how many hours per week each developer was going to save relative to the cost of upgrading the infrastructure. He wanted to know this in order to know whether he approved the investment or not. While we can estimate the savings in developer hours, calculating ROI that way and making a go/no-go decision leaves out many other important aspects. If we think about systems and work to identify the implications of having an outdated infrastructure, new perspectives open up where we can see that this not only affects productivity, but also affects people, operations and customers. In this diagram, as an example, it can be clearly seen:

When we think about systems, we start to become aware of the different parts and how they relate and influence the outcomes of the system. But the deeper we go into the system, the more we become aware of how many variables there are and how the search for the right decision becomes more distant. The paradigm shifts, and instead of looking for the definitive decision, what we do is experiment, collect feedback and re-adjust the direction. We learn. Agile methodologies work in this way, recognising the impossibility of developing a project that is conceived and planned all at once at the beginning, to respond to the complex needs of a client in an adequate way. Startups work like this, instead of factories, they are conceived as engines of experimentation and learning. Facebook’s motto was “Move fast and break things”, which can be seen as a recognition that the world is a complex system, and to find the right solution it is best to experiment, not to be afraid to fail and to learn empirically.

Systems thinking requires a change of mindset, it requires leaving behind a reductionist approach, where if we do X then we get Y. It requires identifying the different pieces of a problem and the relationships between them. It requires identifying the different pieces that influence a problem and the relationships between them. It requires doing a root cause analysis, not staying with the symptom, accepting that often we do not have enough information to make a decision, and then we must experiment, learn and re-evaluate the decision. The tool for systems thinking is modelling, representing the parts, the relationships, the whole and the outcomes. This can be done with an offline or online whiteboard (e.g. miro), as shown in the diagram above.

Although the use of systems thinking is not yet widespread in the software industry, I believe it is only a matter of time before this happens. We are continually seeing how the more classical mentality and vision for tackling problems comes up against reality. Starting to use systems thinking is not complicated, maybe there is a problem that is going around in your head, and for which systems thinking can help you to make progress.

References

Book Team Topologies

Post Dancing with Systems


I am currently working to help companies and technology teams make better use of their potential. I help them to be aware of where their inefficiencies lie and how they can work on concrete actions to improve within their context, and do so on an ongoing basis. If you feel that you have room for improvement in your company, but the day-to-day is eating you up, we can talk to explore solutions together. Book a call here.

Leave a Comment