Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Scientific Method of Troubleshooting

The Scientific Method of Troubleshooting

This version of the talk was presented at eurucamp 2014.

Blithe Rocher

August 02, 2014
Tweet

More Decks by Blithe Rocher

Other Decks in Programming

Transcript

  1. The Scientific
    Method
    of Troubleshooting

    View full-size slide

  2. Big Nerd Ranch
    Atlanta, Georgia

    View full-size slide

  3. PhD in
    Physical
    Chemistry

    View full-size slide

  4. Scientific
    Method

    View full-size slide

  5. Developer
    < >

    View full-size slide

  6. StackOverflow

    View full-size slide

  7. Problem solved?

    View full-size slide

  8. Learn anything?

    View full-size slide

  9. Most Important Part

    View full-size slide

  10. Scientific
    Method

    View full-size slide

  11. Set of Techniques
    For Acquiring
    Knowledge

    View full-size slide

  12. “Has anyone seen
    string interpolation
    fail?”

    View full-size slide

  13. Define
    the Problem

    View full-size slide

  14. Expected behavior?
    !
    !
    !

    View full-size slide

  15. Expected behavior?
    !
    Actual behavior?
    !

    View full-size slide

  16. Expected behavior?
    !
    Actual behavior?
    !
    Criteria for success?

    View full-size slide

  17. Do Your
    Research

    View full-size slide

  18. Know your
    environment

    View full-size slide

  19. Read the literature

    View full-size slide

  20. Make it fail!

    View full-size slide

  21. Establish a
    Hypothesis

    View full-size slide

  22. Design
    the Experiment

    View full-size slide

  23. Divide and conquer!

    View full-size slide

  24. Limit the variables

    View full-size slide

  25. Try something weird

    View full-size slide

  26. Hierarchy of Blame

    View full-size slide

  27. Current status?

    View full-size slide

  28. Read the error
    message!

    View full-size slide

  29. Analyze
    Your Results

    View full-size slide

  30. Problem solved?
    !
    Learn anything?

    View full-size slide

  31. Understand the Why

    View full-size slide

  32. Future Experiments

    View full-size slide

  33. Embrace the Success

    View full-size slide

  34. Keep a Good
    Lab Notebook

    View full-size slide

  35. You won’t
    remember

    View full-size slide

  36. Logs aren’t enough

    View full-size slide

  37. Commit Messages

    View full-size slide

  38. Update the Docs

    View full-size slide

  39. Share
    the
    Knowledge

    View full-size slide

  40. Thanks!
    @blithe

    View full-size slide