Software Economics - Root Cause Analysis

Software Engineering
1.0x

Software Economics - Root Cause Analysis

Created 2 years ago

Duration 0:05:53
lesson view count 139
Select the file type you wish to download
Slide Content
  1. Software EconomicsRoot Cause Analysis

    Slide 1 - Software EconomicsRoot Cause Analysis

    • Emerson Murphy-Hill
    • Creative Commons Attribution 4.0 License.
    • Material Created by NCSU Software Engineering Faculty.
  2. Causal analysis, root cause analysis

    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?
    • Education?
  3. Root-Cause Analysis Techniques

    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
    • Brainstorming
    • Techniques to represent:
    • Simple list
    • Fishbone diagram
    • Technique to fix: balance long-term and short-term goals when choosing what level to address problem
    • http://en.wikipedia.org/wiki/File:Ishikawa_Fishbone_Diagram.svg
  4. Example

    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
    • Solutions:
    • 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