Software Economics - Root Cause Analysis
Email this Mix
Tags: Software Engineering
Slide 1 - Software EconomicsRoot Cause Analysis
- Emerson Murphy-Hill
- Creative Commons Attribution 4.0 License.
- Material Created by NCSU Software Engineering Faculty.
Slide 2 - Causal analysis, root cause analysis
- Look at failure
- What caused the failure?
- When was the fault injected?
- When was the fault discovered?
- How many phases did it escape?
- What do we need to do differently next time?
- Process change?
Slide 3 - Root-Cause Analysis Techniques
- First, agree on the symptom
- Recursively ask: what was the cause?
- The “root” is:
- The depth at which you can no longer affect the solution
- “5 whys” is a common heuristic
- Techniques to answer:
- Empirical investigation
- Techniques to represent:
- Simple list
- Fishbone diagram
- Technique to fix: balance long-term and short-term goals when choosing what level to address problem
Slide 4 - Example
- Problem: Website is down
- why was the website down? The CPU utilization on all our front-end servers went to 100%
- why did the CPU usage spike? A new bit of code contained an infinite loop!
- why did that code get written? So-and-so made a mistake
- why did his mistake get checked in? He didn't write a unit test for the feature
- why didn't he write a unit test? He's a new employee, and he was not properly trained in TDD
- bring the site back up
- remove the bad code
- help so-and-so understand why his code doesn't work as written
- train so-and-so in the principles of TDD
- change the new engineer orientation to include TDD
- From: http://www.startuplessonslearned.com/2008/11/five-whys.html