The 5 Whys technique is a critical component of the Toyota Production System. Taiichi Ohno, described it as “the basis of Toyota’s scientific approach … by repeating why five times, the nature of the problem as well as its solution becomes clear.” The underlying premiss behind the method is that a questioner can trace the chain of causality by drilling deeper. The questioner begins with the problem statement and repeatedly asks “Why did that happen?” multiple times to clarify cause/effect relationships.

In software development, however, the technique has some shortcomings:

  • Problems and their causes are not always linear and you cannot always trace a symptom directly to a root cause by asking the 5 Whys.
  • Sometimes causes are separated, in a significant manner, by time and space from the effect; this makes identification of the relationship difficult.
  • Practitioners at times aim for the single root cause, but each question could elicit many possible root causes.
  • The 5 Whys technique works well in simple and complicated environments; not so well in complex and chaotic conditions (see the Cynefin framework for definitions). Multi-causality, contributing factors, and not-so-obvious variables if ignored can lead the questioner to the wrong conclusions.
  • Results are highly dependent on the questioner’s ability — stop too soon (at the symptom level) and you don’t reach the lower level root causes; stop searching after the first right sounding answer and you miss out on other plausible causes; treat a long-lived and unchallenged statement as fact and you limit avenues of investigation.
  • The questioner’s level of knowledge is a limiting factor — ignorance can cause people to overlook causes they don’t already know about.
  • Results aren’t repeatable and different people can identify different causes for the same problem.

It’s important to realize that we have more than the 5 Whys method in our toolkit. We can flow chart the process, use the Current Reality Tree (CRT) thinking process, or use Gerry Weinberg’s Diagram of Effects (my favorite). Which techniques do you use?