High Quality Low Cost Software Inspections
Written with every software engineer's question in mind-How much do inspections pay off?-this book demonstrates how to get the most value while controlling costs for investment and inspections. Covered are the economics and ROI of inspections as well as defect prevention and controlling the cost of quality. Written for managers interested in successfully implementing inspection programs and using the data, this book can also be used by engineers and technical writers who want to learn how to maximize software quality and minimize costs as well as agents of change interested in introducing a method that has significant quality and productivity potential. Also described are how to develop and use checklists, how to apply inspections to other life cycle activities and work products, how to read documents for successful inspections, and how to maximize quality, cost, and cycle time objectives for an organization.
Review By: Mary Ann Overbaugh
07/09/2010
The book's preface, written by Capers Jones, sets the tone for understanding the efficiency gains and cost savings obtained by catching defects early in the software development lifecycle. He states that the combined results of early inspection and pre-release testing "could approach 99 percent in cumulative defect removal efficiency," resulting in better user satisfaction and much lower software maintenance costs.
This book extends the work of Fagan and other inspection gurus by reemphasizing their original point: there is substantial efficiency and return on investment (ROI) from conducting software inspections early in the software development lifecycle. Inspections reduce both the amount of testing needed and the cost of fixing problems caught during the testing phase. Though Radice restates most of the formal inspection methodology, he adds his own personal experiences of actually working with the techniques. In addition to discussing the inspection process, rules, and roles, he quotes many studies and tells us how to interpret and use the data (metrics) we collect. There is also a chapter on causal analysis techniques and another that deals with many practical issues faced by practitioners. The author also explores other inspection approaches (he mentions eleven), letting us know that inspection methods can be tailored to support development methodologies. He guides the reader toward understanding the differences between walkthroughs, reviews, and other methods such as the Cleanroom technique, and he explains when these methods should be used. For example, he describes how to inspect a Web-based product versus applications written in Visual Basic. He lists metrics that can be gathered for calculating the return on investment and measures for process effectiveness. The last chapter ends with some thoughts on the future of inspections, lists various approaches and purposes for their use, and includes a best case process for conducting inspections. The appendix is loaded with checklists and forms that may be used by the reader.
Inspections should be a key feature of any quality program. But selling the value of inspections requires proof of their effectiveness. I was pleased to see the author point out that an organization must get to a certain maturity level before it is able to achieve the efficiencies to be gained through using inspections. Many have given up on inspections because they have not stayed the course long enough to skillfully use the methods. Inspections done early in the lifecycle are like a sieve that allows the project manager and team to focus on deficiencies before they become defects. Inspections drill down to ask tough questions while the project scope is in a malleable state, forcing the team to mentally walk through their solution. The book does not have trendy graphics or pretty colors, but it does go far beyond describing the inspection process. It is loaded with substance, detail, and examples from real experience. It is a must-read for everyone who would play a role during an inspection or for those who need to justify information technology costs to senior management.