As a Farmboy, an Electronics Engineering Technologist and an Electrical Engineer, I’ve been debugging things almost my entire life. It now seems like it is a way of life!
I can recall many times having this internal conversation:
What is wrong with this thing? What’s it supposed to do? Why isn’t it do that now?!
I’ve always known there was a thought pattern that I followed instinctually as I troubleshooted whatever I was working on. Whether it was a farm implement, a circuit board or a embedded software program, I followed the same pattern and methods every time. I accredit this process to Dad, to my training in school and to all practical experience troubleshooting busted things I encountered on the farm, in the lab or on the job.
So now, in the spirit of sharing knowledge, here is a list of debugging rules (as compiled by David Agans) that you can follow as you make yourself into a first class troubleshooter.
- Understand the system
- Make it fail
- Quit thinking and loo
- Divide and conquer
- Change one thing at a time
- Keep an audit trail
- Check the plug
- Get a fresh view
- If you didn’t fix it, it ain’t fixed!
Everybody likes a good story, right? I will get to work and put my thoughts and experiences into words and iterate this article in public for you.
In the meantime, check out the debugging war stories that David Carney shared over at the Macroware Technology Blog.