Lately I’ve been thinking about systems thinking a lot. The difference between complicated systems and complex systems. How you approach them and how you work with them. You can control a complicated system. It might take a while to find the right lever to pull or knob to turn, but once you figure it out you can control it pretty tightly with a feedback loop. Because a complicated system’s responses are (generally) linear and predictable.
Complex systems are different. You work with a complex system. You don’t control it. You can characterize it’s responses to small changes in constrained environments, but they’re hard to generalize about. Because complex systems have feedback loops in them already. And those feedback loops aren’t linear. They can be exponential. They have inflection points. They can change direction. They’re dependent not only on the initial conditions, and the change applied, but also on the rate of change.
Or to put it more concretely, with a complicated system, you know how the system will react to a change, and a person with lots of experience with the system has a high likelihood of knowing what to change,and how much to change it, to get a desired response. On the other hand, with a complicated system, having lots of experience with a given set of conditions and making small changes doesn’t give you high confidence about what will happen if you make large changes, nor does it tell you how small changes will impact the system if you start from a different state.
A complicated system, no matter how Rube Goldberg it is, can be boiled down to a series of runbooks, checklists, or decision trees. If this, then that. After A, always B. When the next step doesn’t happen you know exactly where to look to find the problem, and the solution is usually obvious. Executing the fix might be hard, but knowing what it is, not so much.
For complex systems it’s different. You might have an idea about how the system will respond to a change, but unless you’ve seen the exact same situation before then you don’t really know what will happen. That’s where the OODA loop comes in. I first learned about the OODA loop from fighter pilots back in my flight simulator days, but it really applies to any situation where you can’t predict exactly what the response to an input will be.
OODA is short for Observe, Orient, Decide, and Act.
But that simple loop just glosses over the critical details of the OODA loop. In its full form the OODA loop is a complex system in of itself,
That’s because it takes a complex system to deal with a complex system. OODA is all about interacting with the environment, understanding how things are changing, due to its own inherent tendencies and reacting to your actions, and then modifying those actions to drive the system to the state you’re looking for.
Luckily, while OODA is a complex system, it’s really not that complicated of a system. While it has lots of feedback and feedforward loops, the process itself is straightforward. Where it gets hard is in the observe and orient steps. It takes effort and intellectual honesty to avoid biases. To see things as the are and as they are evolving, not how we want or expect them to.
So next time you run into a complex system that you’re trying to manage, Observe, Orient, Decide, and Act. And repeat as necessary.