$30 off During Our Annual Pro Sale. View Details »

The Scientific Method of Troubleshooting

The Scientific Method of Troubleshooting

This version of the talk was presented at Distill 2014 and GoGaRuCo 2014.

Blithe Rocher

August 08, 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
    2 3 4 5 6 7
    1

    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
    3 4 5 6 7
    Define 2

    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
    5 6 7
    Define Research 4
    3

    View Slide

  31. Design
    the Experiment
    6 7
    Define Research Hypothesis 5
    4

    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
    6 7
    Define Research Hypothesis Experiment 5

    View Slide

  38. Current status?

    View Slide

  39. Read the error
    message!

    View Slide

  40. Analyze
    Your Results
    7
    Define Research Data
    Hypothesis Experiment 6

    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
    Define Research Data
    Hypothesis Experiment Analyze 7

    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. !
    Questions?
    Thanks!
    @blithe

    View Slide