Debugging, by David J. Agans. AMACOM, ISBN 0814474578
This book is absolutely indispensable for anyone working in any job where things occasionally work in an unexpected manner. It’s concise, funny, well-written, and full of immensely useful tips on how to go about debugging problems.
One of the great things about this book is that it’s generalistic in nature, not specific. Agans’s decades of troubleshooting experience has given him great insight on how to go about debugging in all sorts of environments, so he lays out nine rules for approaching any problem:
- Understand the System
- Make it Fail
- Quit Thinking and Look
- 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
You can get a poster of the rules online at Agans’s site, too, but if you get just that you’ll be missing out on the great insight for working with those rules. Agans backs up each point with humorous examples and war stories, plus some very good logic about how to move forth in each step.
Debugging isn’t an art performed only by folks with some odd genetic disposition, it’s a critical craft which can and must be learned. I was fortunate to have some good troubleshooters as mentors during my days working radar inflight, but I’ve fallen out of many of the good practices those folks beat^H^H^H^Hinstilled in me. Agans’s book is helping me pull out of the thrash and churn mode of debugging.
This book’s only 175 or so pages long and is well-worth adding to your library. Actually, substitute “a critical addition” for “well worth adding”. I’m also going to make sure this book gets added to the professional development reading list I’m working on creating.