-
Notifications
You must be signed in to change notification settings - Fork 0
General
alex [dot] kramer [at] g_m_a_i_l [dot] com edited this page Jul 19, 2023
·
3 revisions
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.