Agile Zone is brought to you in partnership with:

Luigi has posted 4 posts at DZone. View Full User Profile

Debug It! Book Review

  • submit to reddit
Published by: The Pragmatic Bookshelf
ISBN: 193435628X

Reviewer Ratings




Buy it now

One Minute Bottom Line

Have you ever had the luck to work with the kind of brilliant mind that is able to quickly see order in a messy code and even see what is wrong with it? Well I know a couple of guys fitting this description, and trust me I want to be able to do what they do. Although I will probably never reach that level I was expecting from this book to pick up some of the methods and techniques to get at least close to it.

If you, like me, expect great things from this book maybe you should consider it. If you are a beginner and you've never worked in a big company with a structured software life cycle, maybe this is a good book for a start.


The idea to write a book about debug is brilliant. There is an increasing demand for developers to fill positions where maintaining the code is an important part of the job. But we still don't have experts in this fields. We usually considered this part as a necessary task to perform and we prefered not to do it at all.

I think, as the author, that we should give more importance to debug and to all the techniques or best practices associated with it. As we do, for example, for the design and patterns. If you think about it all of us has at least a book about patterns. But how many of us have a book about debug?

I know designing a new software is a lot more fun than maintaining an existing one. But with the amount of code that is being written probably, sooner or later we will get a job where we need to do it.

So let's get to the point. The book is divided in three parts with "strange" titles:
  1. The heart of the problem
  2. The bigger picture
  3. Debug-fu

The first part is very good, pages flow very quickly and there are really good points to keep in mind. The first one you will encounter is that debug is more than what we usually associate with this word. Debug is composed of these four phases: Reproduce, Diagnose, Fix and Reflect. I'm sure that just by mentioning them you already have an idea about what they are but I want to mention a couple of them.

Reproduce a problem is in the first thing to do. We often skip this important step because we think to know where a problem is especially if we worked on the software we are checking. Nothing is more wrong than that and should always be avoided. You should always try to verify your idea. Better if with a unit test.

Another very good point in the first part of the book is the empirical technique. It is explained in the "Diagnose" chapter (you can even find the free chapter here It goes like this.

If you have a bug you can follow these steps :
  1. construct an hypothesis with what you know
  2. design an experiment to prove the hypothesis
  3. if the experiment fail go back to point 1
  4. if the experiment supports your hypothesis keep trying to find new experiments until you are certain that you have a complete view of the problem

Usually while I'm reading a book I stick cards to the pages containing important concepts. Now that I have finished to read the book I can see that 90% of the cards are in the first part while the rest of the book doesn't have much. Maybe is just because I already knew the concepts but... you get the point.

You will find all sort of things in the rest of the book. All the stuff we are used to in our daily life as developers ranging from the use of version system for the code to a strict delivery process.

So even though I'm disappointed by the shortage of arguments in the book, you will not waste time in reading it. At least at the end of it you will have clear in mind that debug is not just the act to find a bug but is a process to maintain the software. Another good thing about this book is that it is really nice to read. You can read it even on Monday morning on the tube to get to work without falling asleep.
Published at DZone with permission of its author, Luigi Agosti.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Freddy Daoud replied on Mon, 2010/04/19 - 7:25pm

This book is excellent. Highly recommended reading.

Luigi, your review is mostly positive. So why 2/5 stars under "Relevance" and 2/5 stars under "Overall"? That doesn't make sense to me.

Luigi Agosti replied on Tue, 2010/04/20 - 1:59am

Maybe I was to hard on it, not sure. Probably I was expecting great things from it. The fact is that I didn't learn that much. It is very well written and engaging but... It feels to me like in the last two parts were put there just to reach a number of pages that enable the editor to sell the book.

Yann Cébron replied on Thu, 2010/10/07 - 2:50am

I've read this book and think it is mostly targeted at beginners/medium level programmers - experienced programmers will recognize many of their best practices.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.