Troubleshooting.
Nine rules of debugging are:rW6
- Understand the system: read about it, learn its tools.
- Make it fail: identify success and failure cases, look for patterns in intermittent failures, record all of the steps.
- Quit thinking and look: only guessing should be about where to add more visibility.
- Divide and conquer: cut down the problem space progressively, zooming into the cause.
- Change one thing at a time: don’t fix until the cause is clear, try comparing the current state to the last known good state.
- Keep and audit trail: write all changes down, assess for cause and effect.
- Check the plug: start at the beginning, identify and verify all assumptions.
- Get a fresh view: rubber duck, talk to experts, listen to experience, discuss symptoms rather than conclusions.
- If you didn’t fix it, it ain’t fixed: verify fixes truly work, know that things can’t just start working, find the root causes.
-
↩
David Wheeler, “David A. Wheeler’s Review of ‘Debugging’ by David J. Agans,” March 2, 2004, https://dwheeler.com/essays/debugging-agans.html. (See notes.)