Featured White Papers
- Oct. 14th: Simplified IT with Software-as-a-Service (SaaS) (ZDNet)
- PCI DSS therapy for the smaller retailer (McAfee)
- The rise of Web commuting (Citrix Online)
Technology Industry
Industry: Email Alert RSS FeedHigh Quality Low Cost Software Inspections
IBM Systems Journal, July, 2003 by Richard J. Hedger
Ronald A. Radice, Paradoxicon Publishing, Andover, MA (2002). 479 pp. (ISBN 0-9645913-1-6).
This book by Ronald Radice describes the author's 28 years of experience defining, using, and teaching the software inspection process. He states that his goal is to first focus on the effectiveness and then on the efficiency of inspections. Inspection effectiveness is how to find the most defects as early as possible at controlled and low costs. Inspection efficiency is finding the most defects at an increasingly lower cost to continue ROI (return on investment) improvement for the inspection processes. The book is very complete on the subject of inspection, covering software inspection history, inspection process definition and evolution, inspection economics, management, practical issues, where to start, what to inspect, other possible approaches, and the future. The appendix contains checklists, materials, and forms to help anyone who would like to pursue software inspections.
I believe the book is very readable and should be read by anyone who is interested in learning more about software inspections, including programmers, quality assurance and test personnel, project leaders and managers, inspection champions, Software Engineering Process Groups (SEPGs), and teachers. Readers who are just learning about software inspections, as well as those with inspection experience, will find the book helpful. The book gives an excellent overview of software inspection processes, how to develop a process tailored to your organization or project, and how to describe the business benefits of inspections to all involved. The author is extremely well qualified to write this book, having been significantly involved in the original Fagan inspections and in the leading software process improvement and quality activities in IBM. Radice also led the use of software inspections at Bull, was director of the Software Process Program in the Software Engineering Institute (SEI) at Carnegie Mellon University, and recently was a principal partner in Software Technology Transition, a company that provides training, consulting services, assessment services, and software engineering method solutions.
The book is organized in four main parts. Background and introduction are the topics in Chapters 1 and 2, the software inspection process in Chapters 3 through 8, inspection economics and management in Chapters 9 through 12, and other approaches and the future in Chapters 13 and 14. I briefly review key highlights that I found in each of these parts.
Background and introduction--Chapters 1 and 2.
Chapter 1, "Background," answers the question of why inspections are needed. "Our objective with Inspections is to reduce the Cost of Quality by finding and removing defects earlier and at lower cost." A high-level view is given of the benefits of inspections in the software development process along with answering some key questions, including: Why isn't everyone using inspections? Do good programmers make mistakes? When do we start? I found the historical perspective section that describes the first inspection in the IBM VTAM * (Virtual Telecommunications Access Method) project in 1972 to be particularly interesting, because I was personally involved with the introduction of "Fagan inspections" in 1975 in the System/38 * operating system project in the IBM Rochester Development Laboratory.
Chapter 2, "An Introduction," defines inspections, examines how they are defined in this book using the ETVX (Entry-Task-Validation-Exit) Process Definition Paradigm, describes where they fit in the software development life cycle, their cost, and how they compare to "walkthrough" and "review." All are important introductory topics that are well described. The section on effectiveness and efficiency provides clear well-thought-out definitions that are used throughout the book. Chapters 1 and 2 should be read completely by all.
Software inspection process--Chapters 3 through 8. The software inspection process flow is clearly defined in Chapter 3 using a consistent format for each procedure. The format includes an introduction, describes the individual responsible for process, other roles, entry criteria, tasks to be performed, validation/verification, and exit criteria. The exit criteria include the measurements that are important to the procedure. The procedures are complete in reference to the original "Fagan Process," IEEE Inspection Process definition, and proven process improvements. Importantly, a scissors icon shows suggested tailoring options. This chapter is an excellent starting point for the organization interested in defining a software inspection process tailored to its requirements and structure.
Complete descriptions for the moderator role are provided in Chapter 4, and descriptions are given for the other inspection roles, including producer, recorder, and inspector in Chapter 5, as well as their various activities in the different inspection procedures. Of particular importance in Chapter 5 are discussions about process training, rules of behavior for effective meetings, how to select participants, and inspection psychology. Introducing software inspections in an organization is a major cultural change and requires careful planning and thought for the software inspections to be successful.