The Debugging Workflow
Seven steps from bug report to closed ticket: capture, triage, reproduce, isolate, fix, guard and close the loop.
Start here
This is the routine we recommend. Adapt the details to your tools. Keep the order.
1. Capture
Log every bug in one tracker with a title that describes the symptom, steps to reproduce, expected and actual results, and environment details. Attach logs or screenshots. See what makes a good bug report.
2. Triage
On a regular rhythm, review new bugs together. For each one decide: is it real, how bad is it, how many people does it affect, and who owns the next step? Agree a simple scale and stick to it. Read how to prioritise bugs.
3. Reproduce
Before changing code, make the bug happen on purpose. A reliable reproduction proves you understand it and tells you when it’s fixed. Flaky bugs need different tactics: see intermittent bugs.
4. Isolate
- Shrink the reproduction to the smallest input or steps that still fail
- Check recent changes; version control history can bisect to the commit that introduced it
- Read the actual error and stack trace slowly
- Change one thing at a time and note the result
- Explain the problem out loud to a colleague or a rubber duck
5. Fix
Make the smallest change that addresses the cause, not just the symptom. Keep unrelated cleanup for a separate change so the fix is easy to review.
6. Guard
Add an automated test that fails before the fix and passes after. It stops the same bug coming back quietly.
7. Close the loop
Tell whoever reported it. If the bug revealed a weak spot, such as missing logging or an untested path, log a follow-up.