We cannot forever hide the truth about ourselves, from ourselves.
– John McCain
This book was a freebie from Smart Bear Software, which means that if it were presented in terms of utility per dollar, it would be nothing short of infinitely worthy. If you’re interested in Software Engineering, the disciplined and systematic development and maintenance of software, I can’t recommend highly enough that you go on and get your free copy. It’s an insightful and provacative book, and you won’t regret your investment of time.
The Best Kept Secrets of Peer Code Review remain secrets because it is manifestly evident to every coder that their code is flawless. This is pretty obvious; nobody ever sits down to add bugs to their code. A bug, logical or syntactical, is largely a matter of perception.
Black box testing for code flaws is a lot like smelling an old milk carton; a tester is here not hunting for actual flaws so much as the implication of flaws, their products, offspring, and output. Code review, as defined here, is the actual human fathoming of pre-production code. This is important, no one will deny, but is it absolutely necessary for proper development? That’s the argument made in this book, and it’s made with lucidity and care. The reason this book is worth reading is its careful, honest, and meticulous use of statistics to prove that enforced peer code review is a numerically better case for most software teams.
It is true, you know. The books sinews, the very guts of it, the part that will remain in the reader’s mind long after all thoughts of what constitutes a code flaw, what part of design is taste and what is doctrine, and what metrics of testing are more important that others, are its brilliant and decisive forays into the metrics of bugfinding. Simply put, the better and harder you look at code – any code – the more bugs you’ll find. The sooner you look, the easier they’ll be to fix, and the more lines reviewed, the more bugs will be found to exist. This is absolutely, universally, inarguably true of any code that exists, and if as those axioms weren’t philosophically fundamental, this book absolutely proves them and more.
The authors of the book reveal these truths so systematically that it’s impossible to flinch when, on putting the book down, you will realize that the more bugs that have found per line of code in a piece of software, the less buggy the software can be said to be. An excellent read for anyone who likes to ruminate on the dynamics of group software development. It’s convinced me to try out their cross-platform tool, Code Collaborator; here’s looking forward to it.