1 of 1 people found the following review helpful
A motivational tool that succeeds in making debugging sound like fun,
This review is from: Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers) (Paperback)
"Debug It!" is more than a book on debugging best practices - it's a motivational tool that succeeds in making debugging sound like fun.
Full of humorous and insightful anecdotes, the main message is "nobody writes perfect code - this is how you deal with it".
Paul Butcher does a great job of succinctly documenting the different types of bugs that show up in the wild, and best practices on how to find them and stop them appearing again. The book places a strong emphasis on development in a team environment, not neglecting the human factors that are often the trickier bits to manage.
For a good programmer, many of the best practices in "Debug It!" will not come as a surprise, the true value is in having all this experience documented in a single place - you're not the only one who's had to solve these problems. That said, even seasoned programmers will feel challenged at times by thought provoking advice such as Butcher's recommendation that you occasionally work on Customer Support to get closer to your customers.
Despite having thoroughly enjoyed reading "Debug It!", I cannot help but disagree with much of Section 10.1 "Assumptions and Assertions". This is perhaps a cultural approach between languages, with my primary language being Java. I prefer explicit checks on method parameters, with appropriate exceptions being raised - greatly simplified by the Google Collections API - than Butcher's recommendation on the use of "assert". For me, bad parameters should be discovered as soon as possible, using "assert" to catch them will only lead to difficult-to-track bugs on production deployments. In my opinion, "assert" is best used to check parameters in non-public APIs and for checking variables deep within an algorithm.
The final chapter "Anti-Patterns" is perhaps the most insightful. If you are too busy to read this delightful book in its entirety, then at least read the final chapter whilst mandating that your entire development team read "Debug It!" from cover to cover.