:santagrin: This book was recommended by Jason Cohen
Like many other books on improving software quality, this book starts with the story of bugs discovered by the customer during the deployment phase. Developers work frantically to find it, only to stumble with red herrings. The real bug, hidden and lurking somewhere deep inside the source code, turned out to be small, actually a very silly one that normally could be noticed immediately. This one silly bug costed you your costumer's goodwill, several days of works, of which severely compromised your already busy schedule.
And then another bug was reported ...
If this story sounds awfully familiar, then this book is probably for you. In this book, the author presences peer code review
as a remedy to minimalise the number of bugs found on the deployment phase. Simply put, peer code review requires developers to review source code written by their peers
, so that they could notice and stop the problems at the earliest stages, before they reach the customer, before it gets expensive.
This method of peer code review may look simple, and yet it's hardly ever seriously done because the lack of real collaboration during the development phase. And then there are questions like, what if developers waste too much time
doing it? What if the social ramifications of personal critique ruin morale
? How can review be carried out in a measurable
way so you can identify process problems?
This book covers the largest case study of peer code review ever done at Cisco Systems
of ten months, 3.2m lines of code and 2500 reviews, and shows which conclusions readers can draw from them (and which readers cannot). It gives pro's and con's for the five most common types of review. This book explains how to take advantage of the positive social and personal aspects of review as well as ways managers can mitigate negative emotions that can arise. This book explains how to implement a review within a CMMI/PSP/TSP context. It also gives specific advice on how to construct a peer review process that meets specific goals. Finally, this book describes a tool that have been used to make certain kinds of reviews as painless and efficient as possible.
This book is aimed for anyone inside the production department, from the software developers to the managers. Regardless of reader's specific situations, this book will no doubt give readers a new idea on how to deal with those pesky little bugs.