Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save chriseckhardt/1e55d0142018b7607353da461da21b76 to your computer and use it in GitHub Desktop.
Save chriseckhardt/1e55d0142018b7607353da461da21b76 to your computer and use it in GitHub Desktop.

Debugging with the Scientific Method by Stuart Halloway

https://www.youtube.com/watch?v=FihU5JxmnBg

  • clear problem statement
  • efficient hypothesis
  • good eperiments
  • useful observations
  • writing it all down

something more descriptive than "it didn't work"

steps you took what you expected what actually happened.

Don't sweat naming

  • divide & conquer
  • decrease & conquer
  • bisection
  • interval halving
  • proportional reduction

We want to take the problem space and reduce it to find the answer.

WRITE IT DOWN Single most important point of his talk.

  • write the problem statment
  • hypotheses
  • what experiment should show
  • why experiment een makes sense
  • observations

Software Specific Advice

Don't use C

The history of debugging is "OMG C has so many pitfalls" Not a level of abstraction you need to be working at.

The Failure is not the Defect

In clojure & Java it's always GC

  • OOM is typically unexpected
  • OOM can happen anywhere
  • OOM can appear as almost any other exception
  • near-OOM dramatically impacts scheduling
  • OOM related problems cascade

Read The Entire Fracking Manual

good docs for debugging are

  • short
  • specifications

Andreas Zeller chapters 5-7 11-14

Why Programs Fail Guide to Systematic Debugging

Write programs that automate the scientific method for debugging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment