Track Talk W16

Solving Software Industry Problems by Applying ‘Systems Thinking’ to Ourselves

Andrew Brown

16:30-17:15 CEST Wednesday 8th June

When we design IT systems, we use systems thinking to understand what to build, plus how to design that system and ensure it is aligned to business goals.

However, whilst we are used to applying systems thinking to problems within IT systems, we don’t use systems thinking to help us understand some long-standing, difficult problems within our own industry.

Ask yourself the following questions:

  • Why are open-source tools dominant in many areas, despite some obvious disadvantages to them?
  • Why is test automation widespread, but software inspections, which offer a far better Return on Investment, so rarely used?
  • Why are so many companies heavily reliant upon consultancies and system integrators, but desperately wish that they weren’t?
  • Why do so many long-standing issues in software development – think of overrunning projects and technical debt – remain unresolved, despite potential solutions being available?


The software development industry is a system, a social system. A major reason why these issues remain unresolved is that they are happening within that system, a one which we do not understand.

If we had a problem within a complex IT system, we would not expect to solve that problem without studying and understanding the problem from a systems point of view. Likewise, we want to solve the complex and long-running problems within our own industry, we need to look at them as problems within a system.

In this session, we start by looking at two problems outside of software. We use systems thinking to show why prohibition in the United States did not reduce alcoholism but did lead to the rise of the Mafia. Next, we use systems thinking to show why the US war on drugs is currently unwinnable.

We then use systems thinking to shed light on why long-standing problems in software development – like overrunning projects – have remained with us for more than fifty years.

In doing so, we will discover why:

  • Some innovations never get adopted
  • Some problems persist even after we have a solution readily available
  • Why some things we think of as problems are not really problems at all.


We also use concepts from systems thinking to uncover problems that we didn’t even realise we have. Problems such as:

  • The problem of addiction
  • The drift into low performance
  • The escalation trap


So, come to this session and learn to look upon our software world with entirely fresh eyes.