Whilst at Lean Agile Scotland this year I attended a workshop on building current reality trees, which is a thinking process in the Theory of Constraints. It?s a technique a bit like the 5 Whys, but with more structure.
It?s designed to help you uncover and understand the relationships between all the different issues, and to make sure you are addressing the right problem. In complex systems the real problems are not always obvious and by ?fixing? the apparent problem the real problem will still be there, continuing to cause issues.
Current reality trees are fairly simple in structure, at the top of the tree you have an ?undesirable effect? (UDE), below them you have the intermediate effects and at the bottom of the tree you have the root causes.
Basically you build a chain of cause and effect until you reach the root cause. If two (or more) things need to occur to cause an effect then they are linked using an ellipse. You then focus your efforts in addressing the root causes and not the intermediate effects.
An example of a simplified tree is shown below.
How to do it
The first step is to agree the scope of what you?re trying to address. It?s very easy to keep going with causes until you get back to the creation of the universe, but that?s not particularly useful, you can?t do much about that! They key here is to go back just far enough, but don?t stop too early; think of it in terms of the things you can control and the things you can influence.
Next step is to brainstorm out all the undesirable effects and then map out the relationships between them, watch out for leaps of logic and drawing cause and effect relationships between things that are just not related. When doing this you should also be thinking about who to involve, you need enough people to get a variety of views, but not too many, it?s recommended you start with a small group to come up with a first draft and then expand out, talking it through with more people and adjusting as necessary.
Which brings us on to validating your current reality tree. The most valuable way of doing this is to read it aloud, sometimes just saying it out loud is enough to find a problem with it. You do this in either direction, from top to bottom you use the word ?because? e.g. ?end users are unhappy with the service BECAUSE incidents take a long time to resolve BECAUSE many incidents are poorly managed?.? From the bottom to the top you use the word ?therefore? e.g. ??.many incidents are poorly managed THEREFORE incidents take a long time to resolve THEREFORE end users are unhappy with the service?.
So now you have an agreed tree with root causes identified the next step is to work out what to do. The Theory of Constraints recommends you think of this is two stages, ?What to change to?, i.e. the end state you want to achieve and then ?How to change? i.e. the implementation.
We didn?t really focus on these stages in the workshop, but the theory is you build a future reality tree, which looks very much like a current reality tree but with it has desirable effects at the top and injections at the bottom. The value of the future reality trees allow you to then ask the question ?if we made this change what could go wrong?? If an injection could cause another undesirable effect you can choose to:
a) Not go ahead with the injection
b) Live with the negative consequence
c) Inject something else to eliminate the problem
The workshop was a great introduction ? now all I need to do is start putting this into practice.