For years, it was believed that the value of inspections is in finding and fixing defects early in the development process. Otherwise, the cost to find and fix them later is much higher. However, in examining code inspection data, we are finding that inspections are beneficial for an additional reason. They make the code easier to understand and change. An analysis of data from a recent code inspection experiment shows that 60% of all issues raised in the code inspections are not problems that could have been uncovered by latter phases of testing or field usage because they have little or nothing to do with the visible execution behavior of the software. Rather, they improve the maintainability of the code by making the code conform to coding standards, minimizing redundancies, improving language proficiency, improving safety and portability, and raising the quality of the documentation. We conclude that even if advances in software technology have diminished the value of inspections as a defect detection tool, in most cases, it continues to be of value as a maintenance tool.
A note in passing, this work is the culmination of our experiments to understand reviews and inspections. Adam Porter, Dewayne Perry, myself and others hope that this work will stand as a model of how to do software engineering empirical studies.
Dr. Lawrence G. Votta received his B.S. degree in Physics from the University of Maryland, College Park, Maryland in 1973, and his Ph.D. degree in Physics from the Massachusetts Institute of Technology, Cambridge, Massachusetts in 1979. From 1979 through 1998, he was both a member of technical staff and manager at Bell Labs, Lucent Technology Inc., working and managing development groups in switching and computer products including the DMERT and UNIX operating systems. He was a founding member of the Software Production Research Department at Naperville, Illinois where he pursued research interest to understand how to measure, model, and do credible empirical studies with large and complex software developments. In 1999, he retired from Bell Labs, started his own consulting company (Brincos, Inc.), and joined Motorola, Inc. to build high availability computers (WhiteSmoke). He managed the performance and availability modeling and analysis group of the Common Platform Development Department and a research collaboration with Professor Ravi Iyer's Reliable Computing Group at the University of Illinois at Urbana-Champagne. In December 2001, he joined Sun Microsystems Inc. as a distinguished engineer responsible for reliability, availability and performance modeling and measurement of Sun's web information infrastructure architecture and products.
Dr. Votta has published 10 articles in Physics and more than 50 articles in Software Engineering including empirical studies of software development from highly controlled experiments investigating the best methods for design reviews and code inspection to anecdotal studies of a developer's time usage in a large software development. He is a member of the IEEE and ACM. He is currently serving as an associate editor of the IEEE Transactions on Software Engineering.