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 Slide

  2. @blithe

    View Slide

  3. Big Nerd Ranch
    Atlanta, Georgia

    View Slide

  4. Scientist

    View Slide

  5. PhD in
    Physical
    Chemistry

    View Slide

  6. Physics

    View Slide

  7. Chemistry

    View Slide

  8. 6 Years!

    View Slide

  9. Experiments

    View Slide

  10. Scientific
    Method

    View Slide

  11. Developer
    < >

    View Slide

  12. StackOverflow

    View Slide

  13. Problem solved?

    View Slide

  14. Learn anything?

    View Slide

  15. Most Important Part

    View Slide

  16. Scientific
    Method

    View Slide

  17. Set of Techniques
    For Acquiring
    Knowledge

    View Slide

  18. Methodical

    View Slide

  19. Systematic

    View Slide

  20. “Has anyone seen
    string interpolation
    fail?”

    View Slide

  21. Define
    the Problem

    View Slide

  22. Expected behavior?
    !
    !
    !

    View Slide

  23. Expected behavior?
    !
    Actual behavior?
    !

    View Slide

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

    View Slide

  25. Do Your
    Research

    View Slide

  26. Know your
    environment

    View Slide

  27. Read the literature

    View Slide

  28. Discussions

    View Slide

  29. Make it fail!

    View Slide

  30. Establish a
    Hypothesis

    View Slide

  31. Design
    the Experiment

    View Slide

  32. Divide and conquer!

    View Slide

  33. Limit the variables

    View Slide

  34. Try something weird

    View Slide

  35. View Slide

  36. Hierarchy of Blame

    View Slide

  37. Gather
    Data

    View Slide

  38. Current status?

    View Slide

  39. Read the error
    message!

    View Slide

  40. Analyze
    Your Results

    View Slide

  41. Problem solved?
    !
    Learn anything?

    View Slide

  42. Understand the Why

    View Slide

  43. Future Experiments

    View Slide

  44. Embrace the Success

    View Slide

  45. Keep a Good
    Lab Notebook

    View Slide

  46. View Slide

  47. You won’t
    remember

    View Slide

  48. Logs aren’t enough

    View Slide

  49. Commit Messages

    View Slide

  50. Update the Docs

    View Slide

  51. Contribute

    View Slide

  52. View Slide

  53. Share
    the
    Knowledge

    View Slide

  54. Thanks!
    @blithe

    View Slide