Tag Archives: electrical engineering

Debugging (David Agans)

I recently saw David Agans’ book Debugging mentioned in one of the many trade journals I receive (I can’t remember which one).  After seeing how much praise it received on amazon.com, I decided to pick up a copy.

Debugging really spoke to me because a large portion of my career has been devoted to finding and fixing hardware bugs.  I finished it in just two or three evenings (it’s a quick, fun and engaging read).  The examples are particularly interesting and relevant to me because many involve issues with embedded systems.  Admittedly, perhaps most fascinating is the one about a living room lamp that turned on anytime the author vacuumed the room.

I highly recommend this book to anyone who regularly  troubleshoots issues with any kind of system, software or hardware, mechanical or electrical.  This includes engineers of all discplines, circuit designers, computer programmers, helpdesk operators, web developers, auto mechanics, etc.

David’s nine rules of debugging are (with my notes):

  1. Understand the system – Knowing how your circuit, code, or widget is supposed to work will help you fix it.  Read the manual!
  2. Make it fail – Knowing how to reproduce the failure is critical to being able to fix it.  Also, stimulate the failure, don’t simulate it.
  3. Quit thinking and look – Don’t jump to conclusions and just fix what you think might be the problem.  This wastes time when you inevitably guess wrong.  Keep an open mind as to what the failure mechanisms could be.
  4. Divide and conquer -Eliminate what is definitely not part of the problem and focus on what’s left.
  5. Change one thing at a time – If you change ten things at once, how will you know which one actually solved the problem?
  6. Keep an audit trail – Being able to reproduce the fix is crucial.  Even if you don’t fix the problem, you might discover a pattern or something you overlooked by looking at your notes.
  7. Check the plug – When all else fails, check the obvious stuff that you probably should have looked at first.
  8. Get a fresh view – Someone else may have more experience with the problem than you do or might see the one thing you’re missing.
  9. If you didn’t fix it, it ain’t fixed. –  Don’t stop when the problem just disappears.  It will surely come back later at the most inconvenient time possible.  We’ve all been bitten by this one before.  Never again!

There’s even a free poster available on the book’s website to help you remember these rules during your next debugging crisis.

EEVblog – The Electrical Engineering Video Blog Podcast

David L. Jones, maker of, among many other things, the awesome uWatch, is producing a really cool Electrical Engineering-themed video blog/podcast called ‘EEVblog‘.  I don’t why it took me this long to realize what an informative and hilarious video podcast this is, but a couple recent episodes really sucked me in.  I am now a huge fan.

David’s blog actually sprang to life in April of this year, so if you want to watch all of the episodes you have some catching up to do.  However, some of the most hilarious episodes are also the most recent.  For example, here is David’s very honest review of the Microchip PICkit 3, a development tool for Microchip PIC microcontrollers:

And here is Microchip’s equally hilarious response:

David’s blog has covered a lot of other cool topics, such as exploding capacitors, equipment teardowns, and microcontroller datasheets.  Check EEVblog out!