Like Karl Seguin's most excellent book about the Foundations of the Programming (which is highly recommended), this book covers the basics that each programmer should live and breathe.
Software developers with only a couple of years of experience will benefit the most from this book. Patrick Cauldwell nicely introduces essential topics like Test-Driven Development, Continuous Integration, Source Control, Static Analysis, Design by Contract, Tracing, Error Handling, Dependency Injection and Inversion of Control, etc. ... . These are all practices that are applied by every self-respecting software development shop.
For example, the first chapter nicely discusses the much needed "Buy, Not Build" approach for those who think they can conquer the world by reinventing the wheel for the quintillionth time. Why build yet-another-date-picker-control if money can buy one that covers most of your needs? Why build yet-another-DI-container when there are so many of them out there? Seems like common sense, right?
Although I am practicing these basic things for quite some time now, I managed to get away with some things I hadn't though about before, like working out a policy for tracing, exception handling, etc ... that everyone on the team agrees upon.
Due to the fact that the book is only about 200 pages, the author only scratches the surface of all these topics. The one thing that I feel is missing from this book, is a comprehensive appendix chapter that provides resources for a more in depth view. This is much needed for those readers that are new to these topics and want to read more.
In conclusion, this book provides a nice introduction for those who are new to these essential development techniques. The how and why is nicely laid out. If you are already practicing these techniques, then this book is not for you.
Till next time