Programming Is Debugging, So Debug Better

Accepted Session
Short Form
Scheduled: Thursday, June 20, 2013 from 1:30 – 2:15pm in B302/303


Debugging: The schedule destroyer, the confidence sapper, the mire in which thousands of working hours are lost every day. It's time to stop staring at those four lines of code, desperately willing the bug to appear. This session is about the philosophies that will steer you around bugs, strategies for dealing with them, and tools that can shorten a four-hour debugging session to five minutes.


Have you ever:

  • Spent hours staring at the same block of code, trying to work out where the bug was, only to realise that it’s actually somewhere else?
  • Littered your code with print statements, trying to locate a bug, then deleted them all, then put them back in for another bug later?
  • Checked in those print statements accidentally?
  • Been told that IDEs are for wimps, but secretly wondered what the attraction is?
  • Looked at your language’s debugging tools, wistfully thought about memorising the obscure commands they need, then gone back to print statements?
  • Wondered if all the debugging means that you’re not a good coder after all?

Stop wondering. All code has bugs, and all coders fall victim to them. You can’t predict what kind of bugs you’ll get, but you can arm yourself against their mischief. Even better, with the right coding strategies in mind, you can avoid many of them entirely.

We’ll be looking at:

  • Why bugs happen, even to the best of us
  • Software engineering strategies for preventing and containing bug damage
  • How to dive into the unknown when diagnosing problems
  • Modern heresies that’ll make you more productive
  • What to look for when choosing languages and frameworks
  • The many tools you can use that’ll turn debugging time into pony-riding time
  • Whether and how to write your own debugging tools, and the nifty things you can do
  • Maybe a little more about ponies

The languages I’ll be targetting with my custom tools are Ruby and Javascript, but the techniques apply to all languages.

You can code amazing things. Don’t let the bugs drag you down!

Speaking experience

I've spoken at O'Reilly's ETech (2006, about Ning and microformats ) and OSCON (2011, with Alex "Skud" Bayley: ), also at FOO Camp 2005, BarCamp Palo Alto 2007, and most recently at Noisebridge's "5 Minutes Of Fame" on the topic of Winamp, which you can watch here: (starts about 18 minutes in, lasts 8 minutes)