Rob’s posterous -
« Back to blog

Simple vs. Complicated vs. Complex vs. Chaotic - NOOP.NL

When you're managing software development projects, you need to know the difference between complex and complicated. Not knowing this difference means you might apply exactly the wrong approach to the right problem. (Or, if you prefer, the right approach to the wrong problem.)

It's a simple message, really. But if you don't get it, you're headed for chaos.

Simple = easily knowable.

Complicated = not simple, but still knowable.

Complex = not fully knowable, but reasonably predictable.

Chaotic = neither knowable nor predictable.

My car key is simple.
It took me about three seconds to understand how my car key works. OK, maybe that's not quite correct. Mine has a battery in it. If I take it apart it might take me another three hours to understand its details. But yeah, I'm smart, I'll manage.

My car is complicated.
It would take me years to understand how my car works. And I don't intend to. But if I did, then some day in the far future I would know with certainty the purpose of each mechanism and each electrical circuit. I would fully understand how to control it, and I would be able to take my car apart and reassemble it, driving it exactly as I did before. In theory, of course. In practice, only real men do things like that.

Car traffic is complex.
I can travel up and down the same street for twenty years, and things would be different every time. There is no way to fully understand and know what happens around me on the road when I drive, how other drivers operate their vehicles, and how the people in the streets interact. I can make guesses, and I can gain experience in predicting outcomes. But I will never know for sure.

Car traffic in Lagos (Nigeria) is chaotic.
When things get too complex, they easily become chaotic. Traffic in Lagos is so bad, it is not even predictable. Poor infrastructure and planning, heaps of waste, pollution, lack of security, floods, and many more problems make it one of the worst places in the world to be, as a simple car driver.

My computer is complicated. My software project is complex. My house is complicated. My household is complex. My blog is complicated. My thoughts are complex. Your dinner is complicated. Your dog is complex.

Simple and complicated systems are all fully predictable.

The main difference between predictable systems and complex systems is our approach to understanding them. We can understand simple and complicated systems by taking them apart and analyzing the details. However, we cannot understand complex systems by applying the same strategy of reductionism. But we can achieve some understanding by watching and studying how the whole system operates.

What's important for managers is that this also works the other way around. We create complicated systems by first designing the parts, and then putting them together. This works well for mechanical things, like buildings, watches and Quattro Stagioni pizzas. But it doesn't work for complex systems, like brains, software development teams, and the local pizzeria. We cannot build a system from scratch and expect it to become complex in the way that we intended. Complex systems defy attempts to be created in an engineering effort.

Complex systems are not constructed, they are grown.

Some people picture complexity as a state that somehow surpasses that of complicatedness (see next picture). But this view is incorrect.

Scrumcomplexity

From: Managing Game Design Risk: Part I

"Complicated" refers to a system having many parts, making it somewhat harder to understand, whereas "complex" refers to a system being not fully predictable. What is complicated is not necessarily complex, like two cars in a garage. And what is complex need not be complicated, like two people in a bedroom. (But what these people do in the bedroom can be quite complicated. And unpredictable.)

As I start the series on "Seeing through the Complexity of Culture" with Stuart Baker, I will offer up what I think are some of the best pieces from others. Here is post from Jurgen at NOO.NL that offers an exceptionally elegant description of the key problem of today - that we refuse to see the complex and work as if complexity was complicated or simple.

Stuart and I hope that we can help you at least see the elements of the complexity that is human culture and so be able to make more assured judgments about what might happen.

Loading mentions Retweet

Comments (0)

Leave a comment...

 
To leave a comment on this posterous, please login by clicking one of the following.
Posterous-login     Connect     twitter