BOOK: “Debugging” – Disciplines For All Technologists Print E-mail
Written by Darwin Sanoy   
Monday, May 25, 2009 7:20am

Troubleshooting and debugging is one of those life activities that we tap into relentlessly - yet never learn about in a structured manner. “Debugging” by David Agans sheds some light on the general principles that produce reliable results no matter what you have under your microscope.

Principle Focused: Concisely Expressed, Broadly Applicable

Most books on debugging or troubleshooting are geared toward a specific technology platform. Tools, samples and scenarios tend to be limited to a specific topical area. This concise little book deals with principles and disciplines that apply to all debugging and troubleshooting, regardless of the target technology. The book is filled with examples (called War Stories) that demonstrate the application of the principles. Some of these examples are technical in nature while others deal with household problems. I found this mix of examples to be effective because I could focus on the application of a debugging principle rather than being distracted by trying to figure out the bug in the example.

Results Don’t Come From Unapplied Methods

Many reviews of the book note that some recommendations were familiar and others were “self-evident”. Yet from my own experience, debugging and troubleshooting practices are rarely applied in a disciplined manner. So while you may sense that a given principle is somewhat self-evident because past use of it has produced great results – it is still very valuable to hear it from someone who can give structure to this knowledge domain because it:

  • reinforces your intuitions
  • fleshes out concepts you may be only vaguely familiar with
  • encourages you to apply them consistently – not just when you happen to think of it
  • lends credibility when making a case to utilize a given principle
  • allows you to spot processes that inconsistently or incompletely apply these principles
  • helps you understand interrelationships between the various principles

The results generated by masters of this art come from applying these principles consistently and completely – not just in the fits and starts caused by relying on intuition.

Rules Versus Disciplines

The book refers to the “9 Rules of Debugging” – but I have come to think of them as disciplines. I tend to think of rules as applying in a given order for a desired result and I think of them as eventually being memorized and applied without effort – like a memorized recipe.

In contrast, the principles in “Debugging” must be applied iteratively, simultaneously and re-invoked at various stages of the debugging process depending on conditions. Additionally, even when you know them, there is still a temptation to skip a principle if it requires a lot of detailed work.

The following two attributes cause me to think of the 9 rules as disciplines:

  • they should characterize the entire approach to debugging and troubleshooting and
  • even when you are aware of an applicable principle, many times you have to force yourself to do it.

On Target

This book is especially applicable to the target audiences of CSI-Windows training as it does not assume specific technologies, tools or a given role. It also applies equally to debugging and troubleshooting and it does not assume comprehensive knowledge of the system that is under analysis. Our course CSI-300 Foundations of Application Internals helps you learn how to be better at finding and solving tough problems.

CSI Windows training is targeted at:

  • Software Developers
  • Software Testers
  • System Engineers
  • System Administrators
  • Packaging Engineers and
  • Support Technicians

Our roles based guide gives many more details about how the training can help you.

On Your Shelf

David's excellent book deserves a spot on the shelf of every technical professional who must track down nasty problems!


Add comment

Security code