1. 9
  1. 6

    I’m not sure how I feel about the “Five Whys” example. The classic problem with root cause analysis is that people stop looking too early. Demonstrating this, the author stops at step 3 with “there is a bug in the parser”… when surely step 4 is “we are using a regex to parse a query string”, a rootier cause.

    1. 1

      That’s fair. I would note that five whys is not always intended to be used five times - but to be used until you reach a root cause.The root cause in this case, IMO, is not that a regex is used, but that the regex is incorrect.

    2. 3

      This is the fundemental idea behind what if? — start small, with code that passes some conditions. Then question yourself on edgecases.

      This, to me, is just the natural way to program. And it’s how I’ve been coding for over two decades. Sitting down to think about the problem beforehand in this way also prevents you from writing a whole bunch of tests or other code that you’re just going to throw away.