Skip to content

General

alex [dot] kramer [at] g_m_a_i_l [dot] com edited this page Jul 19, 2023 · 3 revisions

Debugging Checklist

From Debugging by David J. Agans, paraphrased by me.

  • Understand the System
    • RTFM
  • Make it Fail
    • Deterministic reproduction of the issue is critical to proving that it is fixed
  • Quit Thinking and Look
    • Hypotheses are only as good as their eventual confirmation. Check the data, logs, consoles, output, metrics, etc.
  • Divide and Conquer
    • Isolate parts of the system until you can still reproduce the issue with the smallest subset of the system.
  • Change One Thing at a Time
    • Test each potential fix separately in as small of increments as possible. Iteration is key.
  • Keep an Audit Trail
    • Write down everything you investigated or tried and the outcome.
  • Check the Plug
    • Zoom out and confirm there are no transient or systemic issues like permissions, authentication, outages, VPN/network issues, etc. before digging into the technical weeds.
  • Get a Fresh View
    • When you get stuck or feel like you are going in circles, bring in fresh pair of eyes or a "rubber duck".
  • If You Didn't Fix It, It Ain't Fixed
    • See "Make it Fail". If you can't deterministically repro the issue, then you can't claim it's fixed.
Clone this wiki locally