Although you may never of heard of it, this book is something of a cult classic.

Donella Meadows  was an environmental scientist and is probably best known for her book The Limits to Growth, but this book is not strictly about environmental science and is instead about systems more generally. It is out of print, but is available for Kindle, second-hand and there are some PDFs kicking about too.

I first came across this book on a Systems Thinking course hosted by Kent Beck and Jessica Kerr. My personal interest in this comes from the most interesting parts of my work, which is generally on the boundaries between social/organisational, technical and economic systems. In our field we've got various modelling languages for parts of this, such as UML and BPMN, but I wanted something that might be usefully able to work with systems and subsystems of any kind, because often there are complex trade-offs between technical, social, organisational and economic choices. We make these decisions generally through experience and intuition - which means we probably get a lot of them wrong.

Wardley Maps are one option in this space, but they are very high level and my interest is in something with more analytic power at a lower level. I stumbled across "Systems Thinking" as a concept a few years ago, but really didn't get on with the Gerald Weinberg book on the subject. I will perhaps revisit it soon.

System dynamics seems like a genuine option for addressing my need, but learning how to actually model systems in this way is another matter. This book has genuinely useful advice on the subject.

Thinking in Systems really comes in two parts. The first is an introduction to modelling and diagramming System Dynamics (sometimes called differential equation modelling or dynamical systems modelling). The second is a wide ranging discussion of typical behaviours of dynamic systems and their common traps and failures.

System dynamics has its own notation (quite poor in my view), but the concepts, and the notation, are quite simple. As always with any modelling exercise it seems simple until you try and do it - often you discover rapidly that you do not understand the system nearly as well as you thought.

A brief introduction to system dynamics

The rest of this won't make any sense without a very brief introduction.

A system dynamics model consists of:

Stocks - stores of some material. This could be anything you can claim to measure in some way: money, water, people or goodwill.

Flows - movements of material between stocks.

Variables - indicating values or constants that affect flows and stocks

Links - show how other variables, flows and stocks may effect each other

A simple example from the book is this showing how you might choose to drink coffee to give you energy. The boxes are stocks, the taps are flows, the arrows are links and the 'B' indicates a balancing feedback loop. Feedback loops are a critical emergent property of dynamic systems.

The cloud is also a stock but one of infinite capacity. Imagine it like the earth in an electrical diagram.

Creating models

The models in the book are, obviously, on paper, and it is possible and valuable to create them this way - often you may not need the mathematics or graphs to get something useful out of the modelling exercise. Certainly for the models I am interested in just being able to draw them is likely to be sufficient.

However, there are some tools which can help, and you can plug some numbers into them too. One which is probably worth pointing to is Insight Maker, which is free and usable on the web directly. The above coffee drinking system can be modelled pretty easily with this as:

You can then specify some values and simulate the system, producing a graph of the various stocks and variables:

The importance of stocks

The book is full of valuable insights which should be far better understood - particularly amongst economists, politicians and  policymakers, who routinely seem to fail to understand the properties of the systems they are trying to influence.

One of the key insights for me is the importance of Stocks in these models. She says:

Most economic analysis goes one level deeper, to behaviour over time. Econometric models strive to find the statistical links among past trends in income, savings, investment, government spending, interest rates, output, or whatever, often in complicated equations.
These behaviour-based models are more useful than event-based ones, but they still have fundamental problems. First, they typically overemphasize system flows and underemphasize stocks. Economists follow the behaviour of flows, because that's where the interesting variations and most rapid changes in systems show up. Economic news reports on the national production (flow) of goods and services, the GNP, rather than the total physical capital (stock) of the nation's factories and farms and businesses that produce those goods and services. But without seeing how stocks affect their related flows through feedback processes, one cannot understand the dynamics of economic systems or the reasons for their behaviour.

This absolutely rings true for me, and typically when we look at dynamic systems from a high level we don't try to measure or predict stock levels, partly because this is very hard. The processes are easier to see and measure than the absolutes.

She goes on:

Second, and more seriously, in trying to find statistical links that relate flows to each other, econometricians are searching for something that does not exist. There's no reason to expect any flow to bear a stable relationship to any other flow. Flows go up and down, on and off, in all sorts of combinations, in response to stocks, not to other flows.

An example of this that struck me is the infamous Phillips Curve, which is an economic model that relates rates of employment and wage rises. This is exactly the kind of model Meadows is talking about - it ignores any of the underlying "stocks" within the system that actually effect the decisions of the agents within it and just tries to make a gross relationship between the flows. Needless to say, the Phillips Curve doesn't seem to really hold in most cases, but is still routinely referred to.

Something else that struck me about this insight is that computer strategy games, which contain within them dynamic system models, apply stocks rigorously.

For example, a policy might make assumptions about the effect of actions on behaviour - just look at the "nudge unit", but I have never heard of any dynamic systems models of this kind being used (it is quite possible they are of course, just never shared).

Anyway, computer games use this stuff all the time, for example Loyalty in Civilization VI. Your actions have an impact on the goodwill your population feels towards you, and this generates a flow to or from a stock of "loyalty" a city has towards you. As this crosses various thresholds it impacts the way that population behave.

This seem intuitively a realistic model for how people actually behave, and modelling something intangible such as loyalty is genuinely not insane even in a real world model?

Once you start thinking in this way you can see it everywhere, and I have to admit to having become a bit obsessed.

For example, listening to Appendix 3 of Mike Duncan's (excellent) Revolutions podcast, which is a detailed analysis of the progress of a revolution, it is hard not to imagine stocks and flows of intangible collective mental states.

System traps

One section of the book lists common system traps, and how to address them. I won't list all of these, you can just go read the book, but hopefully you will get the flavour.

I recognised all of these from my everyday life working with organisational and technical systems, but also all of them from government policy. That they are so identifiable, and so general, gives me hope that we might get better at fixing them - but also they are ways in which systems naturally fail, so we're likely to keep seeing them forever.

Here are the traps she lists:

  • Policy resistance
  • The tragedy of the commons
  • Drift to low performance
  • Escalation
  • Success to the successful - competitive exclusion
  • Shifting the burden to the Intervenor - Addiction
  • Rule beating
  • Seeking the wrong goal

By conceiving of systems in simple terms it is possible to describe these in concrete terms which might help designing your way out of them. For example the well-understood problem of the Tragedy of the Commons can be reframed:

When there is a commonly shared resource, every user benefits directly from its use, but shares the costs of its abuse with everyone else. Therefore, there is very weak feedback from the condition of the resource to the decisions of the resource users. The consequence is overuse of the resource, eroding it until it becomes unavailable to anyone.

With possible ways out:

Educate and exhort the users, so they understand the consequences of abusing the resource. And also restore or strengthen the missing feedback link, either by privatizing the resource so each user feels the direct consequences of its abuse or (since many resources cannot be privatized) by regulating the access of all users to the resource.

Hence the constant tension between regulation and privatisation as possible approaches to our increasingly large global commons.


As with all of these analytic/synthetic approaches it can be genuinely difficult to learn and apply, since it requires a change in the way you think about something, when you probably don't have an in-depth grasp of it anyway (or you would already be doing it).

Examples you work with are either toys, which have little transferrable analytic power, or are of complex domains you don't already understand, so either they seem simple and obvious or entirely mysterious.

Learning something of this kind is therefore a process of sort of edging forwards, developing an understanding of the method and of your domain together, and requires quite a lot of work. This is part of why it is so difficult to develop.

Having been through some of this process though, this is actually a great introduction to system dynamics, because of the combination of examples and then higher level discussion of the nature of systems.

Thinking in Systems by Donella H Meadows

I first came across this book on a Systems Thinking course hosted by Kent Beck and Jessica Kerr.