Ramblings of an aging IT geek
← Ramblings of an aging IT geek
personal

the book that rewired how I look at every system I touch

Reading Donella Meadows' Thinking in Systems changed how I debug, design, and argue about infrastructure, and gave me language for things I half-knew.

A coffee and a stack of books on a table

I do not usually write about books. But every so often one reorganises the furniture in your head, and you keep bumping into the new layout for months afterwards. Donella Meadows' Thinking in Systems: A Primer did that to me this year, and I have been quietly applying it to everything from a flaky deployment pipeline to an argument about capacity planning, so it has earned a post.

It is a slim book. You could read it in a weekend. It is also one of those rare technical-adjacent books that is genuinely well written, which is to say I never once felt I was being made to work harder than the idea required.

stocks and flows, and why my dashboards lied

The core vocabulary is stocks and flows. A stock is an amount of something that exists right now: the water in a bath, the messages in a queue, the cash in an account. A flow is the rate at which it changes: the tap, the drain, the consumers pulling off the queue.

This sounds trivially obvious until you notice how often we build dashboards that show only stocks and then act surprised by the dynamics. I had a queue depth graph for months. It told me how full the queue was. It told me nothing about why, because the depth is just the running difference between the inflow and the outflow, and I was watching the bath without watching the taps. The moment I plotted enqueue rate and dequeue rate alongside the depth, the problem was obvious: the consumers kept up fine on average, but a burst would briefly outpace them and the stock would climb. The depth graph could never have told me that on its own. I had been staring at a symptom and calling it a metric.

A quiet landscape, the kind of view that makes you think

delays are where the pain lives

The second thing that stuck: delays. Meadows is relentless about the fact that the gap between a change and its visible effect is where systems go wrong. We act, nothing happens, so we act harder, and then all our actions land at once and the thing overshoots wildly.

I have lived this. Autoscaling that reacts to a five-minute-old metric, scales up too late, then scales down just as the next wave arrives. A team that adds capacity in response to last quarter's load. A shower with a slow mixer, where you keep nudging the tap and end up alternately scalded and frozen. They are the same system. The delay between cause and observed effect is the thing that makes a control loop oscillate, and naming it has changed how I tune anything with feedback in it. I now ask, first, how long is the delay, before I ask how strong the response should be.

leverage points, and arguing better

The chapter that has changed my work most is the one on leverage points: the places in a system where a small shift produces a large change. Her insight, and it is genuinely counter-intuitive, is that the obvious leverage points (tweak a number, add a buffer) are usually the weakest, and the powerful ones (change the goal of the system, change the rules, change who gets the information) are the ones nobody reaches for because they are uncomfortable and political.

I think about this every time someone proposes solving an organisational problem by adding a metric. Adding a number to a dashboard is a very low leverage point. Changing what the team is actually rewarded for is a very high one. The book gave me language for an argument I had been having clumsily for years.

Another long view, room to let an idea settle

the bit that is harder to take

The uncomfortable part, and the reason it is more than a clever framework, is the closing argument: you cannot fully control a complex system, you can only dance with it. Optimise one variable hard enough and the system routes around you. Push on a symptom and the structure reasserts itself. The honest move is to understand the structure, find the real leverage, and accept that you are participating in something larger than your change request.

That is not a comfortable thing for an engineer who likes a deterministic build. But it is true, and once you have seen it you cannot unsee it, which is the mark of a book worth reading.

If you spend your days reasoning about infrastructure, queues, teams, or anything with a feedback loop, read it. It is short, it is kind, and it will quietly change how you look at the next outage. That is a good return on a weekend.