📚 Book review: Debugging Rules

I highly recommend the book: Debugging Rules

Notes from the book:

  1. Understand the system
    • Read the manual
    • Read everything in depth
    • Know the fundamentals
    • Know the road map
    • Understand your tools
    • Look up the details
  2. Make it fail
    • Do it again
    • Start at the beginning
    • Stimulate the failure
    • But don’t simulate the failure
    • Find the uncontrolled condition that makes it intermittent
    • Record everything and find the signature of intermittent bugs
    • Don’t trust statistics too much
    • Know that “that” can happen
    • Never throw away a debugging tool
  3. Quit thinking and look
    • See the failure
    • See the details
    • Build instrumentation in
    • Add instrumentation on
    • Don’t be afraid to dive in
    • Watch out for Heisenberg (don’t let instruments overwhelm your system).
    • Guess only to focus the search
  4. Divide and conquer
    • Narrow the range with successive approximation
    • Get the range
    • Determine which side of the bug you are on
    • Use easy-to-spot test patterns
    • Start with the bad
    • Fix the bugs you know about
    • Fix the noise first
  5. Change one thing at a time
    • Isolate the key factor
    • Grab the brass bar with both hands
    • Change one test at a time
    • Compare it with a good one
    • Determine what you changed since the last time it worked
  6. Keep an audit trail
    • Write down what you did, in what order, and what happened as a result
    • Understand that any detail could be the important one
    • Correlate events
    • Understand that audit trails for design are also good for testing
    • Write it down!
  7. Check the plug
    • Question your assumptions
    • Start at the beginning
    • Test the tool
  8. Get a fresh view
    • Ask for fresh insights
    • Tap expertise
    • Listen to the voice of experience
    • Know that help is all around you
    • Report symptoms, not theories
    • Realize that you don’t have to be sure
  9. If you didn’t fix it, it ain’t fixed
    • Check that it’s really fixed
    • Check that it’s really your fix that fixed it
    • Know that if never just goes away by itself
    • Fix the cause
    • Fix the process

The Rules