Root Cause Tracing Skill
Systematically identify root causes of bugs and system failures.
When to Use
- •Bug investigation
- •Production incidents
- •Performance issues
- •System failures
Analysis Frameworks
- •5 Whys: Ask "why?" repeatedly
- •Fishbone Diagram: Categorize causes
- •Fault Tree Analysis: Logic tree of failures
- •Timeline Analysis: Chronological events
Debugging Process
- •Reproduce: Create minimal reproduction
- •Isolate: Narrow down location
- •Trace: Follow execution path
- •Hypothesis: Form theory
- •Test: Verify theory
- •Fix: Implement solution
- •Verify: Confirm fix works
Tools
- •Debuggers (gdb, lldb, pdb)
- •Logging and tracing
- •Profilers
- •Stack traces
- •Network analyzers
5 Whys Example
code
Problem: Website is slow Why? Database queries are slow Why? No indexes on frequently queried columns Why? Database schema not optimized Why? Initial design didn't account for scale Why? No performance testing during development Root Cause: Lack of performance testing
Best Practices
- •Document investigation steps
- •Don't jump to conclusions
- •Test hypotheses systematically
- •Consider multiple causes
- •Implement preventive measures
Resources
- •The Art of Debugging: https://nostarch.com/debugging
- •Debugging Teams: https://www.oreilly.com/library/view/debugging-teams/9781491932049/