- For every symptom of a problem ask why it happened
- On that answer, ask again why it happened
- Keep repeating the question until you’ve identified the root cause
- Many times you’ll find the root cause at the 5th why, but don’t stop there if you didn’t find it yet
We used this technique at different circumstances and encountered some gotchas now and then. In this post, I want to list and discuss some of those.
Don’t make assumptions about the cause of the issue. If you’re not familiar with the topic, bring in someone who knows about it.
Making too many assumptions or not knowing (enough) about the causes means you might end up with wrong answers and you probably won’t be able to solve the issue correctly. In the end you’ll have to perform the 5 Whys methods multiple times (because the issue keeps coming up), if you find the root cause at all.
Answer with a direct cause
Try to avoid answering a why question with a reason that was not directly causal to the symptom or simply related. To validate the answer, ask yourself that if the reason didn’t happen, would the symptom not exist? Example:
Question: Why didn’t the team meet the goal?
Answer: Because one team member was sick.
To prove whether that is the correct reason, ask whether this sentence is true: If the one team member wouldn’t have been sick, the team would’ve met its goal. If it’s not true, the root cause is not found yet.
The reason might still be valid but not the whole truth. Go one step back and ask the why again. Sometimes it helps to answer with the most obvious cause, other times you might have multiple causes for which you have to create a causal tree instead of a path.
Never use people as root cause
A root cause should never be a specific person. People fail and will fail in the future, even if you replace them. A root cause should always be a broken or missing process, may it be quality assurance, guidelines, etc. These can be changed and provide people with guidance.
As a result of a 5 Why analysis, implement processes to avoid the failure in the future.
Think about the question to ask
A why question should not only be a simple Why?. You have to think about the question to ask.
Asking a simple “Why?” on the situation “The modal dialog on the website doesn’t work”, you could answer “Because the engineer introduced a bug.” This of course is a reason why the bug exists but not why it still exists, eg. that it was not discovered before pushing the website to production. Also this will never lead to a final resolution because the next engineer might also introduce a bug.
Thinking about what to ask might lead you to the question “Why was the bug not uncovered during QA?” or similar.
Think outside the box
While we’re on our way to find the root cause of an issue, the things we found in between might also be very valuable. Consider taking actions on those as well, though processes of course. It might help preventing issues in the future even when a process fails.
The 5 Whys is not a silver bullet
Some people think the 5 Whys are not the right way to prevent issues in the future. See, for example, John Allspaw’s blog postand comments below. For now I’ll leave it up to you, the reader, to choose the right method. For us it’s a great way to start doing “root cause analysis”, but for sure we’d like to dig deeper on other methods.