Understand Dynamic Complexity with Systems Thinking
Peter Senge talks about a concept called dynamic complexity in his book, The Fifth Discipline. He says that the world is becoming more and more complex every day.
Most of us understand this from the standpoint of detail complexity. This is the complexity around the specifics of an issue and around the details.
Short Run and Long Run
But dynamic complexity is different. Senge states, “When the same action has dramatically different effects in the short run and long run, there is dynamic complexity.”
I came across this while working for a Fortune 1000 company. I was working on improving several websites. One common method of solving problems was to rely on the quick fix.
The Band-Aid fix
It would usually start out by discovering a problem or bug on the site. Soon we would do research and come up with the root cause of the issue. It was usually something ingrained in the site.
Because of the nature of the problem, we usually had two ways to solve the problem. The first way was to find a shortcut to solve the immediate problem. This meant we looked for the quickest way to end the discomfort of the problem. It often felt like slapping a Band-Aid on a gaping wound.
Over time, doing Band-Aid fixes resulted in very complex and messy code. In the future, when we wanted to update a page, we had to remember these unique "fixes" that we put in place to correct issues.
The other issue that this caused was for our quality assurance team. They would have to test all the unique scenarios we created. It took hours to go through each case every time we made an update.
Attacking the Root Cause
The second way was to address the root cause of the problem. We would spend hours working through the code. We would make sure we addressed anything that could cause a similar problem in the future.
This was time consuming. It was difficult. But when it was done, we were more confident that we created a solution that would last.
Don't Ignore Dynamic Complexity
The Band-Aid fix is an example of ignoring dynamic complexity. The easy solution in the short run is a horrible solution in the long run.
It is important to think through dynamic complexity when solving problems. This helps us to understand the true consequences of our actions.
Thinking through problems in this manner shows that the Band-Aid fix might seem like a good idea at the time. But it usually results in future problems. The slow fix might be more difficult but will have better results in the long run.
But we all do this from time to time. Stress about a work assignment convinces us to relax with a beer or glass of wine. Rather than work through the tough assignment we look for a quick way to ease the discomfort.
It seems like a great way to get away from the stress. But in the long run it means that the problem is waiting for us. It will return once our buzz wears off.
I’ve caught myself reaching for the Band-Aid fix from time to time. Sometimes, instead of cleaning the house, I decide to go for a drive or go out to eat. It gets me past the chores that I have to do but doesn’t get them completed. As soon as I get home, I realize all the stress around the housework returns.
Focus on the Long-Term Impacts
A better approach would have been to see the dynamic complexity and then tackle the chores. Times when I do this, I feel better after I finish them than I do when I am trying to escape from them. In the long run the solution is much different than the short run (dynamic complexity).
Next time you face with a problem, take a moment to think through the problem and the potential solutions with an eye for dynamic complexity. Look for ways in which the solution might look completely different in the long run versus the short run. Then make your decision based on the full picture rather than a snapshot.
You may decide to go to the quick fix from time to time. But you will understand the shortcomings of ignoring dynamic complexity. And you will learn when it can be beneficial and when it causes more problems than it solves.
Systems Thinking Provides Insight
Dynamic complexity comes from systems thinking. We want to see the full system and the interconnecting parts of the system. This allows us to see the short and long-term ramifications of our system changes.
Systems thinking helps identify the patterns and structures. These will help decide the best course of action.
If we are close to redesigning the website, we don't need to do an extensive fix for a problem. A Band-Aid fix will likely be enough to cover us until we create the new site, as was the case in my previous role.
But if we recently created this website, the Band-Aid fix can build and grow into a more complex problem. Tackling it now is probably the best approach.
Reinforcing Feedback Loops Leverage Today's Choice
In systems thinking there is a concept called a reinforcing feedback loop. This is a structure where the output from the system feeds into the input of the system.
The result is a drastic increase in output. The reason is because the more output, the more it gets turned into an input. Then it gets magnified and put back into the input. This cycles over and over creating serious output over time.
So, today's decision to use the quick fix might create a pattern of relying on quick fixes. Over time the consequences of this decision mean more problems. Since there are more problems we rely even more on quick fixes.
Soon we are in over our head in problems. Our decision to ignore dynamic complexity means that we create a reinforcing feedback loop. In this case the feedback loop is a negative one that creates more problems.
Reinforcing Feedback Loops Can Be Positive
Reinforcing feedback loops could also move the system in a positive direction. If we make the decision to do the hard work to fix a problem now, we won't have that problem come up again.
Instead of more and more problems getting created, we solve them. We stop them from recurring. As we do this, we soon have more time when problems surface. This makes it easier to take the time to solve the problems systematically.
Solving problems systematically stops them from coming up later. Then we can move on to other problems. Soon we realize that we have built quality into the process.
We continue to improve and get better and better over time. But it all starts with an understanding of dynamic complexity.