There are simple, complicated, and complex problems. Many people are unfamiliar with the difference between complicated and complex problems. Complicated problems have many parts, and it takes time and effort to understand how the system is working. Complex problems also have many parts, but even if you’ll understand how all the parts are working, you won’t be able to predict how the parts and the system will behave.
While we developed expertise over the years to resolve simple and complicated problems, we are still struggling with resolving complex problems. This post will provide you with ten simple steps to resolve complex problems.
1) Set Scope
Organizations are open systems. They are created from nested groups that depend on and influence each other. It’s very hard to draw a line of a group boundary in an organization. It’s also hard to draw the boundary of an organization.
Yet, when it comes to complex problems, a clear scope of the problem with clear boundaries must to be in place. Without clear boundaries, the problem resolution will turn into an immense effort with no results. It’s important to keep in mind that scope can be changed as the problem is better understood.
2) List all parts
After a scope and a boundary, the next step is to list all the “parts” that compose the defined scope. The first task is to define the level of the parts. Too low-level parts will create clutter, too high-level parts won’t help to get any value.
Problem domain parts should include every element in the system that is autonomous to make decisions and to take actions, as well as any policy, procedure, or rules that guide autonomous parts. In most cases, autonomous parts are people and groups. If you can work with roles rather than people, you’ll end up with clearer results.
Commonly, parts of the problem domain will also include technologies, applications, or processes that are used by people, roles, or groups.
A list of all the parts order by their type is a more refined scope of the complex problem under investigation.
3) Understand how parts interact
When we have all the parts we want to understand how they interact. Since we are dealing with a complex problem, we know that they have nonlinear interactions. Describing nonlinear interactions, in a linear way, is an obstacle that will prevent us from getting an understanding of the system.
There are three types of interactions that when captured will provide a good understanding of the problem. First, there is a need to understand how each element impacts others. Impacts are nonlinear. If A impact B, B impact A as well. Capturing how all parts impact each other and if the impact is positive or negative is the first step.
The second step is to understand how information and materials flow between the system’s parts. As with impacts, flows need to depict nonlinearity. The third step is depicting how interactions between people or roles (rules they are following based on available data) shape the aggregate behavior of groups.
4) Find flaws in the system that connects all the parts
After gaining an understanding of the complex problem we want to fix, the effort should shift to finding problems or opportunities in the way the management system set up. This is not a focus on business applications, it’s a focus on finding what are the problems in the management system (policies, procedures, rules, norms, processes, structure, flows, etc.) that connect all the parts together.
Based on the three views mentioned above, there are many tools available to identify opportunities in how parts are connected. This effort should identify what are the flaws in the management system and how to resolve them.
The first focus is on the management system. If no flaws found in the management system, there should be a focus on groups and roles to try what their contribution to the problem under investigation. As long as there are findings concerning the management system, don’t dive into groups and roles. Most of the time resolving management issues change the entire interaction and creates new opportunities.
5) If the parts are human, understand their drive
After understanding opportunities that related purely to the way the management system was set up, the focus should move to the human factor. In this step, the goal is to understand what drives people’s behavior and actions.
Mental models, how people think in certain events, how people cooperate or compete on scarce resources, narrative fallacy, and other methods should be leveraged to understand what drives people and teams to make a certain decision or take a particular action.
Most times understanding people’s motivation surface root causes of problems. One of the common scenarios is conflicting drives that turn into a very complex problem.
6) Find out how people’s drives escalate problems
In the previous step, we want to understand what are the drives that cause a problem. In this step, we want to understand what are the drives that escalate into a problem. Some problems start as simple or complicated, but over time and because of the human interaction they become complex problems.
Those problems won’t be resolved if there won’t be an understanding of what in the human interaction causes the problem to escalate into a complex problem.
In this step, the focus needs to be on personalities, but all the tools mentioned in the previous step should be used as well. Personalities tend to turn a simple technical debate into a complex interpersonal conflict that impacts almost every aspect of a company.
Understanding what causes an escalation to a complex problem is one of the pre-requisite to resolve the problem. Without understanding what causes an escalation, other simple problems might turn into complex ones in the future.
7) Using simulation to evaluate options and select one
After identifying all the causes of a complex problem and coming up with several options to resolve them, it’s time to select one solution. The problem is that complex problems are coming with so many parts and options that it is impossible to use pen and paper to find out what is the right solution.
Some complex problem-solving methods (such as Systems Thinking) provide the ability to capture in a computer all the parts, their connections, and the options to resolve a problem. Once captured in a computer, those methods can run simulations to show visually what will result from each option.
With the complexity that complex problem-solvers need to deal with, simulation is a better way to vet the right solution than pen and paper.
8) Implement the proposed option
This is a straightforward step. After a plan with projects and priorities is in place, it needs to be executed. When implementing a change in a complex system there are several principles it’s better to keep in mind and implement.
- Changes created by a group of people will adopt and implemented easier comparing to changes imposed on a group.
- Small changes over time are better than big onetime monolithic changes. The evolutionary process of small changes gives time for people to adjust and eventually create a solution that might not reflect planning but is a better fit for the environment.
- Randomness in the implementation process brings better results than following a linear implementation process.
9) Set measurement to monitor success and prevent side effects
In parallel with selecting the preferred solution, there should be an effort to define metrics and other feedback loops that will give an indication if the proposed change is getting the right results.
During the implementation step and even after the implementation is over, metrics and feedback loops should be monitored to see if the expected results are taking place in reality.
If there are growing discrepancies between the expected results and the current results, there should be an effort to understand if a pivot in direction or even reverting back should be the preferred option.
10) Monitor for recurrence of the same problem in different ways
Many times we resolve a problem just to find out that it’s coming back in a different shape or form. Since we know what to look for, an ongoing attempt to detect symptoms that are common to the problem we dealt with should be in place.
Identifying enough symptoms help to realize that the same problem is about to occur again. This early realization enables us to address the finding and prevent the same problems from reoccurring.
Ignoring this step ends up with unpleasant surprises. We are dealing with complex systems and our ability to understand fully the impacts in the system is limited. Just continuous monitoring for known symptoms can prevent unpleasant surprises.