Read Part 1 if you haven’t already.
To find a root cause given a list of symptoms, I use a Current Reality Tree (CRT), a tool from the TOC thinking processes. As the name suggests, I want to build a tree that represents our current reality.
Basics of Reading a Current Reality Tree:
- Read it as a series of IF–THEN statements: IF
X
THENY
- Clauses are joined by logical ANDs
For example, given the following tree:

We’d read it as follows:
IF Projects are consistently late
AND Cutting corners speeds up delivery
, THEN We cut corners to deliver
.
The statement should be true such that there is little argument. However, this tree is primarily for me to understand, so the goal isn’t to have absolute truth that would stand up to the most pedantic of Hacker News or Reddit commenters.
Our CRT
Given my list of complaints, I need to logically connect each complaint to a tree. I start by connecting any two complaints, and then continue with any complaint until all complaints are connected. I can add any facts necessary to make the logical connections true.
Here’s the tree I came up with:

Notes:
- The red notes are the original customer complaints.
- The yellow notes are supporting facts to make the casual links logically correct.
Takeaways
There are two loops. This means that, in practice, I should see a situation that continually gets worse as time goes on:
- As we deliver projects late, we get even more pressure to deliver faster.
- As we cut corners to deliver faster, it gets harder to predict work.
That’s encouraging for verifying the correctness of my understanding, because both of those statements are true in my experience.
Because there are two loops, most of the causes in the tree can be considered a root cause. My next step is to identify a root cause that is actionable and begin to understand the problem my customers have.
If you’re a little ambitious, look at the diagram and see if you can figure out which cause is worth considering.
Text Version
Here’s a text version that may be helpful for reading the tree. Each of these statements should be true.
IF We are under time pressure to make estimates
AND It is difficult to capture uncertainty
AND People ask for tight windows of certainty
THEN We don't accurately capture important sources of uncertainty
.
IF There are significant amounts of uncertainty
AND We don't accurately capture important sources of uncertainty
AND We use conversations to resolve uncertainty
THEN It is difficult to track relevant communication
.
IF We don't accurately capture important sources of uncertainty
AND Estimates contain uncertainty
THEN Estimates are not reliable
.
IF We don't accurately capture important sources of uncertainty
AND We use conversations to resolve uncertainty
THEN We spend lots of time in meetings
.
IF We don't accurately capture important sources of uncertainty
AND It is uncertain what work is important
THEN Important work is missed until late in the process
.
IF Delivery dates rely on estimates
AND Estimates are not reliable
THEN Projects are consistently late
.
IF Estimates are not reliable
AND People want to be seen as reliable
AND Estimates become commitments
THEN People are under stress
.
IF Projects are consistently late
AND There are always new projects to start
AND Projects start with estimates
THEN We are under time pressure to make estimates
.
IF Projects are consistently late
AND Cutting corners speeds up delivery
THEN We cut corners to deliver
.
IF We cut corners to deliver
AND Future work depends on previous work
AND It is hard to predict how shortcuts affect future work
THEN There are significant amounts of uncertainty
.