January 16, 2006

...Learn TDD with Codemanship

Unknowing The Unknowable

It seems to be human nature that we like certainties, and always look for a simple reason why things happen. At the moment I'm reading Ubiquity by Mark Buchanan. In it, he explains a concept in Physics called the critical state, and how it makes things like earthquakes, forest fires, nuclear chain reactions and stock market crashes impossible to predict. In everyday parlence you may have heard the critical state referred to as the edge of chaos.

Using simple models and games, he describes how systems can - over time - increase in complexity until they become so unstable that even the slightest change can cause massive upheaval. One game in particular stuck in my overworked mind.

Take a table top, and drop grains of sand on it, one at a time, at random locations. As the sand pile builds up it becomes more and more unstable. Randomly, each subsequent grain of sand might cause some of the structure in the pile to collapse - it might be a tiny slip, or it might be a huge sand avalanche (yes, it works with snowflakes, too). For an avalanche, the pile has to build up to the critical state. So such upheavals are a product of critical complexity caused by the cumulative drip, drip, drip of history. That's why the same principle applies to so many other things where complexity builds up over time - like societies and wars, fault lines and earthquakes, stock markets and crashes, forests and fires.

Buchanan stresses that people who specialise in the study of societies, or earthquakes, or stock markets, or forests tend to get very upset by the idea that crude games can explain how they work, and especially upset at the idea that - despite all their detailed studies and grand theories - such phenomena are inherently unpredictable.

Management theorists (and the practioners who subscribe to their theories) get equally upset when anybody suggests that they too will have to learn to live with considerable uncertainty, and that - regardless of their grand theories - in something as complex as business, what will be will be. In that sense, managing a business is little different to living on a fault line. Rather than wasting your time and energy trying to predict when the next earthquake will be, you need to be thinking about how you might survive it when it comes. For all your planning and contingency, a quake could hit while you're parking the car, or taking a leak behind a bush. There's just no telling when it will happen, or how big it will be.

Some people can become paralysed by fear. They don't go out. They take as few risks as possible. Other people move away, mistaken in their belief that there are places on Earth where earthquakes can't get at them.

Some businesses become paralysed, too. They spend so much time worrying about potential disasters that they effectively stop making key day-to-day decisions. When the pile of sand has built up to a mountain, nobody dares drop another grain of sand.

A similar effect can be seen in software development. Software is another phenomenon where complexity builds up gradually over time, and when the code gets very, very complex, with lots of interdependencies (like the dependencies between grains of sand in a pile, or buyers and sellers in a market), it can reach a stage where developers don't dare make changes for fear of the whole thing coming crumbling down.

What's interesting is that critical states, and our reactions to them, are the first decent scientific explanation of the Agile core value courage. Yes, an earthquake may hit at any moment, but that's no reason to sit in your basement covered in bubblewrap.

The next paradigm shift in management theory will, I suspect, be finally admitting that there are some very important things that we just can't know with any degree of certainty. The move from Linear to Nonlinear Management is largely, therefore, about unlearning a whole bunch of stuff based on safe, comfortable reductionism and determinism. No matter how much we know about every aspect of our business' past, the future is still unknowable.
Posted 21 hours, 8 minutes ago on January 16, 2006