Tuesday, October 11, 2011

Multiple cause-and-effect chains

For simple problems, a cause-and-effect technique like 5 Whys is quite effective.  Eric Ries has a nice software industry related example that I'll use here:

  1. Why was the website down? -> The CPU utilisation on all our front-end servers went to 100%
  2. Why did the CPU usage spike? -> A new bit of code contained an infinite loop!
  3. Why did that code get written? -> So-and-so made a mistake
  4. Why did his mistake get checked in? -> He didn't write a unit test for the feature
  5. Why didn't he write a unit test? -> He's a new employee, and he was not properly trained in TDD
However, as problems get more sophisticated, linear cause-and-effect chains are really not capturing what is going on. There is almost always more than one cause for any particular effect, each of which extend out into their own cause-and-effect chains.


A key point is to limit exploration to causes that are likely and that are within your sphere of influence.  Otherwise, there is a risk of analysis paralysis.

No comments:

Post a Comment