An experiment to assess the cost-benefits of code inspections in large scale software development

We conducted a long-term experiment to compare the costs and benefits of several different software inspection methods. These methods were applied by professional developers to a commercial software product they were creating. Because the laboratory for this experiment was a live development effort, we took special care to minimize cost and risk to the project, while maximizing our ability to gather useful data. This article has several goals: 1) to describe the experiment's design and show how we used simulation techniques to optimize it, 2) to present our results and discuss their implications for both software practitioners and researchers, and 3) to discuss several new questions raised by our findings. For each inspection, we randomly assigned three independent variables: 1) the number of reviewers on each inspection team (1, 2, or 4), 2) the number of teams inspecting the code unit (1 or 2), and 3) the requirement that defects be repaired between the first and second team's inspections. The reviewers for each inspection were randomly selected without replacement from a pool of 11 experienced software developers. The dependent variables for each inspection included inspection interval (elapsed time), total effort, and the defect detection rate. Our results showed that these treatments did not significantly influence the defect detection effectiveness, but that certain combinations of changes dramatically increased the inspection interval.

[1]  Myron Lipow,et al.  Software reliability : a study of large project reality , 1978 .

[2]  John M. Chambers,et al.  Graphical Methods for Data Analysis , 1983 .

[3]  Kenneth H. Pollock,et al.  Modeling capture, recapture, and removal statistics for estimation of demographic parameters for fish and wildlife populations : Past, present, and future , 1991 .

[4]  Lawrence G. Votta,et al.  Assessing Software Designs Using Capture-Recapture Methods , 1993, IEEE Trans. Software Eng..

[5]  K. Burnham,et al.  Estimation of the size of a closed population when capture probabilities vary among animals , 1978 .

[6]  A. Stuart,et al.  Non-Parametric Statistics for the Behavioral Sciences. , 1957 .

[7]  Gerald M. Weinberg,et al.  Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products , 1990 .

[8]  Barry W. Boehm,et al.  Verifying and Validating Software Requirements and Design Specifications , 1989, IEEE Software.

[9]  Beat Kleiner,et al.  Graphical Methods for Data Analysis , 1983 .

[10]  S. Siegel,et al.  Nonparametric Statistics for the Behavioral Sciences , 2022, The SAGE Encyclopedia of Research Design.

[11]  James R. Lyle,et al.  A Two-Person Inspection Method to Improve Prog ramming Productivity , 1989, IEEE Transactions on Software Engineering.

[12]  Glen W. Russell,et al.  Experience with inspection in ultralarge-scale development , 1991, IEEE Software.

[13]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[14]  A. R. Ilersic,et al.  Research methods in social relations , 1961 .

[15]  Wei-Tek Tsai,et al.  An experimental study of fault detection in user requirements documents , 1992, TSEM.

[16]  John C. Kelly,et al.  An analysis of defect densities found during software inspections , 1992, J. Syst. Softw..

[17]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[18]  L. G. Votta,et al.  Organizational congestion in large-scale software development , 1994, Proceedings of the Third International Conference on the Software Process. Applying the Software Process.

[19]  John C. Knight,et al.  An improved inspection technique , 1993, CACM.

[20]  Stephen G. Eick,et al.  Estimating software fault content before coding , 1992, International Conference on Software Engineering.

[21]  Eliot R. Smith,et al.  Research methods in social relations , 1962 .

[22]  Michael Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[23]  B BisantDavid,et al.  A Two-Person Inspection Method to Improve Programming Productivity , 1989 .

[24]  David S. Rosenblum,et al.  A study in software process data capture and analysis , 1993, [1993] Proceedings of the Second International Conference on the Software Process-Continuous Software Process Improvement.

[25]  Priscilla J. Fowler In-process inspections of workproducts at AT&T , 1986, AT&T Technical Journal.

[26]  Lawrence G. Votta,et al.  Does every inspection need a meeting? , 1993, SIGSOFT '93.

[27]  Harvey P. Siy,et al.  An Experiment ot Assess the Cost-Benefits of Code Inspections in Large Scale Software Development , 1997, IEEE Trans. Software Eng..

[28]  Edward Yourdon,et al.  Structured walkthroughs , 1978 .

[29]  Adam A. Porter,et al.  An experiment to assess different defect detection methods for software requirements inspections , 1994, Proceedings of 16th International Conference on Software Engineering.