root-cause-tracing
Systematically trace bugs and issues to their root cause using debugging techniques and analysis methods
When & Why to Use This Skill
The Root Cause Tracing skill enables a systematic approach to identifying the fundamental origins of software bugs and system failures. By leveraging structured analysis frameworks such as the 5 Whys, Fishbone diagrams, and Fault Tree Analysis, this skill helps developers move beyond surface-level symptoms to implement permanent solutions and prevent recurring technical debt.
Use Cases
- Software Bug Investigation: Systematically reproducing, isolating, and tracing complex logic errors to their specific source in the codebase.
- Production Incident Response: Analyzing critical system failures or service outages to determine the primary trigger and mitigate future risks.
- Performance Bottleneck Analysis: Identifying the underlying causes of high latency, database slowness, or resource exhaustion through timeline and profile analysis.
- Systematic Failure Analysis: Applying the 5 Whys framework to uncover deep-seated design flaws or process gaps that lead to technical issues.
| name | root-cause-tracing |
|---|---|
| description | Systematically trace bugs and issues to their root cause using debugging techniques and analysis methods |
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
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/