Finding Root Causes of Problems: The Practical Guide

Daniil Bratchenko
6 min readDec 5, 2017

About a year ago I switched from software engineering to business operations. A large part of my job is identifying and removing bottlenecks preventing the company from growing faster.

A startup is a fairly complex system with multiple cause-effect relationships. It is physically impossible to keep all the moving parts in my head when diagnosing problems. I needed a tool to augment my working memory.

You are probably familiar with mind maps. They are a great tool for thinking in breadth and extracting all the relevant thoughts from your head. But they do not work well when you need to do in-depth analysis.

I want to show you another tool I use just for that. It originates from Theory of Constraints. I used it many times to identify root causes of complex problems. It works better than any other tool or process I have tried.

It is called Current Reality Tree. I will walk you through the steps of defining a problem and identifying its root causes.

Let’s take a common problem that people often misdiagnose and fail to solve: “I am overweight”. I used to have this problem myself. Back then, I did not use the Current Reality Tree. It would have saved me time and effort if I did.

The common solution people identify:

The Wrong Solution

This approach uses common sense and people’s intuition. It is often wrong.

Let’s see how Current Reality Tree helps identify the real root causes and open a path to the working solution. I will use a tool called “Flying Logic”. It is designed specifically to help with thinking processes like this.

Step 1. List The Symptoms

Within the Current Reality Tree, two types of problems exist:

Undesirable Effect and Precondition

Most of the problems you will list are “Undesirable Effects.”

Let’s start with symptoms: apparent issues you can list from the top of your head. The list may look like this:

The Symptoms

Try to list as many symptoms as you can. Do not worry if some of them overlap with each other.

Step 2. Identify Cause-Effect Relationships

Now it is time to add some structure. Usually, symptoms you have listed are interdependent. If one problem causes another, connect them with an arrow.

The result may look like this:

Do not worry about the strict cause-effect relationship at this point. You will correct the diagram during the next step.

Step 3. Fill The Gaps

Now let’s get more sophisticated. One of the rules of the Current Reality Tree process is the meaning of an arrow connecting two items. It is called “sufficient cause”. If A and B connected with an arrow, it means “A is sufficient to cause B.”

For each arrow on the diagram, ask “Is A sufficient to cause B?” If the answer is “no”, you should update the diagram.

For example, is “I am overweight” sufficient to cause “I do not like what I see in the mirror”? It is not. We need to add another component to correct the logic:

You can represent a situation where multiple problems combined cause another problem using “AND” operator.

There are two ways multiple upstream problems can cause a downstream problem. One is logical “OR” and another is logical “AND”. “OR” connection means that any problem alone is sufficient to cause the problem it’s connected to. “AND” means that all the problems together cause the downstream one.

Left: each problem alone is sufficient to cause the downstream problem. Right: only the two problems together are sufficient to cause the downstream problem

Keep asking “is the cause sufficient?” to fill other gaps in your Current Reality Tree. At the end of this step, you may end up with something like this:

Note how far down “I do not exercise regularly” is. Getting fat is a complex process. The following conditions need to be met:

  1. I consume more calories than spend.
  2. I get high blood sugar and therefore high insulin.
  3. Insulin commands my body to store fat.

Lack of exercise affects energy balance, but is not enough to cause accumulation of fat.

If you look at the resulting tree, I can already see potential solutions to the symptoms identified in the beginning:

  • I can accept my shape and stop considering it a problem. After all, standards of beauty are not universal.
  • I can start doing health check-ups to be less worried.
  • I can start controlling the calorie intake.
  • I can prevent myself from having high blood sugar (a foundation of the slow carb diet)

But let’s not stop here. There are more root causes to identify and eliminate.

Step 4. Find The Roots

In the previous step, you applied critical thinking to the complete cause-effect relationships. In this step, let’s find missing underlying problems.

Review every problem that does not have any underlying causes and ask yourself “what the cause could be?”. If you found an answer, add another Undesirable Effect or Precondition to the tree. Keep doing it until you cannot identify any more root causes.

Here is how result may look like:

Now you have a full list of the root causes. If you eliminate a right combination of them, the logic of the system will cause all the symptoms to disappear. But do not bother removing the problems that have underlying causes - you will fail.

If you want to be even more systematic with converting the Current Reality Tree into an actionable plan, a complementary thinking process exists. It is called “Future Reality Tree”. I will describe it in one of the next posts. Subscribe to get notified.

Let’s recap the steps:

  1. List The Symptoms
  2. Identify Cause-Effect Relationships
  3. Fill The Gaps
  4. Find The Roots

If you like the idea, go ahead and apply the Current Reality Tree to a problem you currently have. The first iteration will take you at least an hour, so make sure you have enough uninterrupted time.

References

  • Flying Logic app in case you want to find a few root causes on your own.
  • Thinking with Flying Logic — read it if you want to get more sophisticated with the ToC thinking processes.
  • If you don’t want to pay for the Flying Logic, I recommend general-purpose diagram apps: Lucidchart or Draw.io

--

--

Daniil Bratchenko

Building software and data systems that enable business operations; VP of Business Engineering @DataRobot