Practical Applications of Statistical Process Control

Similar documents
THE PENNSYLVANIA STATE UNIVERSITY SCHREYER HONORS COLLEGE DEPARTMENT OF MATHEMATICS ASSESSING THE EFFECTIVENESS OF MULTIPLE CHOICE MATH TESTS

Measurement & Analysis in the Real World

Physics 270: Experimental Physics

Grade 6: Correlated to AGS Basic Math Skills

Green Belt Curriculum (This workshop can also be conducted on-site, subject to price change and number of participants)

SAP EDUCATION SAMPLE QUESTIONS: C_TPLM40_65. Questions. In the audit structure, what can link an audit and a quality notification?

University of Waterloo School of Accountancy. AFM 102: Introductory Management Accounting. Fall Term 2004: Section 4

APPENDIX A: Process Sigma Table (I)

Lecture 1: Machine Learning Basics

The Talent Development High School Model Context, Components, and Initial Impacts on Ninth-Grade Students Engagement and Performance

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Towards a Collaboration Framework for Selection of ICT Tools

Circuit Simulators: A Revolutionary E-Learning Platform

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

NATIONAL CENTER FOR EDUCATION STATISTICS RESPONSE TO RECOMMENDATIONS OF THE NATIONAL ASSESSMENT GOVERNING BOARD AD HOC COMMITTEE ON.

School Size and the Quality of Teaching and Learning

MMOG Subscription Business Models: Table of Contents

Should a business have the right to ban teenagers?

The Good Judgment Project: A large scale test of different methods of combining expert predictions

Coding II: Server side web development, databases and analytics ACAD 276 (4 Units)

Reduce the Failure Rate of the Screwing Process with Six Sigma Approach

AGS THE GREAT REVIEW GAME FOR PRE-ALGEBRA (CD) CORRELATED TO CALIFORNIA CONTENT STANDARDS

Probability and Statistics Curriculum Pacing Guide

Citrine Informatics. The Latest from Citrine. Citrine Informatics. The data analytics platform for the physical world

ENVR 205 Engineering Tools for Environmental Problem Solving Spring 2017

STUDENT MOODLE ORIENTATION

Software Maintenance

Certified Six Sigma Professionals International Certification Courses in Six Sigma Green Belt

ADDIE: A systematic methodology for instructional design that includes five phases: Analysis, Design, Development, Implementation, and Evaluation.

New Venture Financing

Statewide Framework Document for:

Edexcel GCSE. Statistics 1389 Paper 1H. June Mark Scheme. Statistics Edexcel GCSE

Probabilistic Latent Semantic Analysis

M55205-Mastering Microsoft Project 2016

Mathematics Program Assessment Plan

How to Judge the Quality of an Objective Classroom Test

PEDAGOGICAL LEARNING WALKS: MAKING THE THEORY; PRACTICE

Modeling user preferences and norms in context-aware systems

Fragment Analysis and Test Case Generation using F- Measure for Adaptive Random Testing and Partitioned Block based Adaptive Random Testing

Rule Learning With Negation: Issues Regarding Effectiveness

Visit us at:

OCR for Arabic using SIFT Descriptors With Online Failure Prediction

Algebra 1, Quarter 3, Unit 3.1. Line of Best Fit. Overview

Assessing Functional Relations: The Utility of the Standard Celeration Chart

Major Milestones, Team Activities, and Individual Deliverables

Linking Libraries and Academic Achievement

Customised Software Tools for Quality Measurement Application of Open Source Software in Education

Susan K. Woodruff. instructional coaching scale: measuring the impact of coaching interactions

Two Futures of Software Testing

learning collegiate assessment]

Learning Methods in Multilingual Speech Recognition

Word Segmentation of Off-line Handwritten Documents

Measures of the Location of the Data

Execution Plan for Software Engineering Education in Taiwan

SETTING STANDARDS FOR CRITERION- REFERENCED MEASUREMENT

BENCHMARK TREND COMPARISON REPORT:

On-Line Data Analytics

Early Warning System Implementation Guide

The open source development model has unique characteristics that make it in some

Shockwheat. Statistics 1, Activity 1

DegreeWorks Advisor Reference Guide

Professor Christina Romer. LECTURE 24 INFLATION AND THE RETURN OF OUTPUT TO POTENTIAL April 20, 2017

ABET Criteria for Accrediting Computer Science Programs

Introduction to the Practice of Statistics

Alberta Police Cognitive Ability Test (APCAT) General Information

Unit 7 Data analysis and design

CAAP. Content Analysis Report. Sample College. Institution Code: 9011 Institution Type: 4-Year Subgroup: none Test Date: Spring 2011

Miami-Dade County Public Schools

Implementing a tool to Support KAOS-Beta Process Model Using EPF

George Mason University Graduate School of Education Education Leadership Program. Course Syllabus Spring 2006

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

Full text of O L O W Science As Inquiry conference. Science as Inquiry

A cognitive perspective on pair programming

Unit 3. Design Activity. Overview. Purpose. Profile

University of Groningen. Systemen, planning, netwerken Bosman, Aart

CLASSROOM USE AND UTILIZATION by Ira Fink, Ph.D., FAIA

Study Board Guidelines Western Kentucky University Department of Psychological Sciences and Department of Psychology

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

Notes on The Sciences of the Artificial Adapted from a shorter document written for course (Deciding What to Design) 1

Developing an Assessment Plan to Learn About Student Learning

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Interpreting Graphs Middle School Science

Crestron BB-9L Pre-Construction Wall Mount Back Box Installation Guide

Certified Six Sigma - Black Belt VS-1104

USC MARSHALL SCHOOL OF BUSINESS

Chris George Dean of Admissions and Financial Aid St. Olaf College

Why Did My Detector Do That?!

Evidence for Reliability, Validity and Learning Effectiveness

NATIONAL SURVEY OF STUDENT ENGAGEMENT (NSSE)

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

SAT MATH PREP:

Local Artists in Yuma, AZ

Mathematics Scoring Guide for Sample Test 2005

STABILISATION AND PROCESS IMPROVEMENT IN NAB

S T A T 251 C o u r s e S y l l a b u s I n t r o d u c t i o n t o p r o b a b i l i t y

Proficiency Illusion

A Coding System for Dynamic Topic Analysis: A Computer-Mediated Discourse Analysis Technique

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

MGMT 3362 Human Resource Management Course Syllabus Spring 2016 (Interactive Video) Business Administration 222D (Edinburg Campus)

For Portfolio, Programme, Project, Risk and Service Management. Integrating Six Sigma and PRINCE Mike Ward, Outperfom

Transcription:

feature measurement Practical Applications of Statistical Process Control Applying quantitative methods such as statistical process control to software development projects can provide a positive cost benefit return. The authors used SPC on inspection and test data to assess product quality during testing and to predict postship product quality for a major software release. Edward F. Weller, Bull HN Information Systems You are in a ship readiness review. One goal for the software release is a two-to-one improvement in quality as measured by post-ship defect density. The system test group finds 5% fewer defects compared to the previous release of equal size. A review board member challenges the release quality, asking, Why didn t you find as many defects in the system test phase as in the last release? How do you respond? Quantitative methods such as statistical process control can provide the information needed to answer this question. For a major release of Bull HN Information Systems GCOS 8, a mainframe operating system for enterprise computing, we used SPC to analyze inspection and test data. We found that this helped us understand and predict the release quality and the development processes controlling that quality. It also gave us the hard data we needed to justify our results. Prediction: Controlled vs. Uncontrolled Processes A process s behavior is predictable only if the process is stable, or under control. Statistical methods can help us evaluate whether an underlying process is under control. We can use control charts to calculate upper control limits (UCL) and lower control limits (LCL). (For background on UCL and LCL, see the related sidebar.) If a process stays within limits and does not exhibit other indications of lack of control, we assume that it is a controlled process. This implies that we can use its past performance to predict its future performance within these limits and can determine its capability relative to a customer specification. Using SPC Our goal in this release of GCOS 8 was to use defect density to predict the post-ship product quality with reasonable assurance. 48 IEEE SOFTWARE May/June 2 74-7459//$1. 2 IEEE

Upper and Lower Control Limit Basics We gather and analyze data as a basis for taking action. We use data feedback to improve processes in the next cycle, and data feed-forward to predict future events or values. Unless we understand the data s characteristics, we might take incorrect action. Statistical process control is one analytical method for evaluating the data s value for decision making. SPC lets us separate signals from noise in a data set. One way we can express this is as We used this method to compute the data in Figure 1 in the main article. We use the same method for inspection preparation and inspection rates, where the attributes data are the rates for each inspection meeting. An example of variables data is the defect density for a series of inspection meetings, which we can evaluate with u-charts. When we evaluate data from varying sample sizes, the plot looks like Figure 6 in the main text and the equations are total variation = common-cause variation + assignable-cause variation. 1 The common-cause variation is the normal variation in a process, the result of normal interactions of people, machines, environment, and methods. These variations are the noise in the process. Assignable-cause variations arise from events that are not part of the normal process. An example would be a low problem-report input for one week followed by a high value the next week, caused by a failure in the problemreporting system. These variations are the signals. Upper and lower control limits (UCL and LCL) are two measures that help filter signals from the noise. Based on the Walter Shewhart s work, UCL and LCL can be derived for two kinds of data: individuals or attributes and variables. Individuals or attributes data are counts related to occurrences of events or sets of characteristics. Variables data are observations of continuous phenomena or counts that describe size or status. 1 Each data type requires a different technique for computing the UCL and LCL. For individuals or attributes data, the XmR (individuals moving range) chart is appropriate. This requires a time-ordered sequence of data, such as the number of problem reports opened per week. The formulas for the UCL and LCL are UCL = Xbar + 2.66 * mrbar LCL = Xbar - 2.66 * mrbar where Xbar is the average of the values and mrbar is the average of the absolute differences of successive pairs of data. Table A shows data for building an XmR chart. Ubar = Su i /Sa I, or the total number of defects divided by the total size UCL = Ubar + 3 Ubar a U UCL = Ubar 3 Ubar a L i i (A) (B) (C) where a i is the sample size in lines of code. Now that we have the control limits, what do they mean? The variation of data points inside the control limits is due to noise in the process. When points fall outside the control limits, we assume that this has an assignable cause a reason outside the process s normal execution. When assignable causes for out-of-control data points exist, we say that the process is out of control. The bottom line is that we cannot use the data to predict the process s future behavior. We gather data, compute the UCL and LCL where applicable, and evaluate the process behavior. If it is out of control, we look at the data points outside the control limits, find assignable causes for these points, and attempt to eliminate them in future execution of the process. If the process is in control, we can use the UCL and LCL to predict the process s future behavior. Reference 1. W.A. Florac, R.E. Park, and A.D. Carleton, Practical Software Measurement: Measuring for Process Management and Improvement, Tech Report CMU/SEI-97-HB-3, Software Eng. Inst., Carnegie Mellon Univ., Pittsburgh, 1997. Table A Building XmR Charts Week 1 2 3 4 5 7 8 9 1 11 Incidents 5 3 6 9 3 7 7 4 8 15 Xbar is 6.9 Movement range 2 3 3 6 6 3 4 7 mrbar is 3.6 X-bar is the average of the values, and mr-bar is the average of the absolute differences of successive pairs of data. We are aware of the problems with using defects to predict failures, 1,2 but in the absence of other data or usage-based testing results, this was our primary means to evaluate release quality. We also expected to find fewer defects in the system test due to several process changes and needed to substantiate the presumed better quality quantitatively. Development phases Our first tasks were to determine that the inspection process was under control and then estimate the remaining defects. This sets the target for defect removal in the test phases. May/June 2 IEEE SOFTWARE 49

15 No. of inspections 1 5 5 1 15 2 25 3 35 4 More Figure 1. Preparation rates for 3 code inspections. No. of inspections 8 6 4 2 5 1 15 2 25 3 35 4 More Figure 2. Inspection rates for 3 code inspections. No. of inspections (a) No. of inspections (b) 6 4 2 6 4 2 5 1 15 5 1 15 2 25 3 35 4 More 2 25 3 35 4 More Figure 3. for (a) new and (b) revised code. Estimating defect injection. With enough data, you can use SPC to establish ranges for defect injection rates, accuracy of estimates of the size of the project s source code, and defect removal rates (Defect injection is the inadvertent or involuntary injection of defects during development. It is different from fault injection, a technique for evaluating test case effectiveness. The defect removal rate, or inspection effectiveness, is the percentage of major defects that are removed in each inspection phase or the percentage of defects that are removed during all inspections.) However, for two projects that were major contributors to this release, we did not have enough data to establish defect injection rates using SPC. So, basing our defect injection estimates on specific product and project history, we used SPC to evaluate the defect removal rates and estimate the number of remaining defects entering the unit test phase. Inspection data analysis. We have used source code inspections in GCOS 8 development since 199. 3 The process is stable and provides data used by project management. 4 These inspections provided our first opportunity to apply SPC on these two projects, which I will call projects one and two. The work on project one fell into two parts: revising existing code and creating a product feature. Figure 1 shows a histogram of preparation rates for 3 code inspections. (Lower preparation rates that is, more time spent in preparation are generally believed to lead to higher defect detection rates.) Most inspections fell into the 15- to 3-linesper-hour range, with a few outliers. The low rates of the three inspections that were below 15 lph were due to small amounts of code. Of the inspections that were above 4 lph, two had high rates due to small size, and one was very large. After investigating these three inspections, I concluded that only the very large one was problematic. This inspection occurred near the end of the coding phase, when familiarity with the product and time pressure typically cause higher preparation rates. I then compared the preparation-rate distribution with the inspection-rate distribution (see Figure 2). When analyzing data, I generally look for patterns. Figure 2 appears to have a bimodal distribution. Because the data included inspections of new code and modifications to the existing base, I divided the preparation rates into two classes. Figure 3 shows the results. New-code inspections should behave better than those of revised code. Many inspections of revised code are small (23 to 5 IEEE SOFTWARE May/June 2

15 lines), causing a larger variance in preparation and inspection rates. Knowledge of the inspected revised code also might have a wider variance than that of the new code. Figure 3 is typical of much of the inspection data that I investigate. The newcode inspection rates in Figure 3a approximate a normal distribution as closely as you are likely to see with actual data. Because we wanted to predict defect densities entering the test phases, understanding the inspection process s effectiveness was critical. The X chart and moving-range chart in Figure 4 indicate that the inspection process was not in control for the new code. Inspection 13 caused an out-of-control point on both charts. In addition, the first seven points in Figure 4a are below the mean. An investigation of inspection 13 revealed that its high preparation rate was due to an inspector s lack of preparation. When we remove inspection 13 from the dataset, inspection 8 falls outside the recalculated UCL for the X chart, as well as being above the UCL in the mr chart. Inspection 8 had a high preparation rate due to sections of cut and paste code. So, treating inspections 8 and 13 as assignable causes of variation (see the sidebar on control limits for more on assignable causes), we obtained a recalculated X chart that shows a controlled process (see Figure 5). When performing such an analysis, consider these three points: First, the variation in rates might be due to either a process violation or an unusual work product (in this case, no preparation by one inspector or a work product with repeated code). Second, when you decide to remove a data point from the analysis, it must have an identifiable special cause. Look at the remaining data critically to see if poor preparation is a problem, even if the data is within the control limits. As we ll see, the remaining data from the analysis I just described is well behaved, suggesting that the removal of the two data points is justified. Third, if the inspection or preparation rates are out of control, the product not lack of time might be a cause. For example, the cause could be a poorly written document or cut-and-paste code. Product analysis. If the inspection process is under control, defect density is an indicator (a) (b) 1,2 1, 8 6 4 2 8 6 4 2 1 3 5 1 3 5 Preparation rate Xbar Moving preparation Rbar of product quality, not process quality. The control chart in Figure 6 shows the defect density for all 3 inspections of new and revised code. (Although the chart does not 7 9 11 13 15 17 Inspection number 7 9 11 13 15 17 Inspection number Figure 4. An (a) X chart 5 and a (b) moving-range chart of the new-code preparation rate indicate out-of-control points at inspections 8 and 13. 5 4 3 2 1 Preparation rate Xbar 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 Inspection number Figure 5. An X chart of the new-code preparation rate, with the outliers removed. Defects per lines of code.2.15.1.5. Defects per line of code 1 4 7 1 13 16 19 22 25 28 Inspection number Figure 6. A defect density control chart. May/June 2 IEEE SOFTWARE 51

7 Defects 6 5 4 3 2 1 Phase injection estimate Phase expected removal Phase actual removal Cumulative actual removal Cumulative expected removal Cumulative injection estimate Analysis High-level design Low-level design Development phase Coding Figure 7. Defect removal with the new size estimate for the development stages of project one. show this, the data for the new-code inspections behaved better than the data for revised-code inspections because the sample sizes for the new code were more uniform and larger.) I used a u-chart for Figure 6 because the sample size (area of opportunity in this case, lines of source code) varied considerably (see the sidebar on control limits for more on u-charts). Inspections 1 and 8, which exceeded the UCL, were for revised code. Looking back at the preparation rates (see Figure 3), we can reasonably assume that the data for these inspections comes from a different process and thus remove it from this set. Project two in the system release involved analyzing data for 51 inspections. The results of analyzing the inspection process were basically the same as those for project one. For project two, the defect data was in control on all but inspection 51, the last inspection in the set. Feedback to the development team. We discussed the data with the project teams at their weekly meetings for three main reasons. First, it sent a message that the data was being used to make decisions on the project. Second, keeping the estimates and data in front of the teams made them aware of the progress toward the quality targets. Third, we wanted to avoid the metrics are going into a black hole problem that causes metrics programs to fail. We now had two sets of data showing inspections were performed reasonably well. We then used the inspection data to refine the prediction for the number of defects remaining to be found for projects one and two in the release. Based on the differences in inspection process data for new and revised code from project one, we increased the inspection effectiveness estimates for the new code and lowered them for the revised code. In the absence of data, this would seem the likely thing to do. However, basing the revised estimates on data rather than assumptions adds credibility to the prediction process and provides a baseline for future predictions. At the end of the coding phase, we found more defects than we had estimated; however, we now had the actual product size in source lines of code. So, we replotted the estimate (see Figure 7). Revising and verifying the defect predictions. We can now verify the defect predictions, using the inspection effectiveness estimate to verify the size and defect injection estimates. The inspection process data is important in determining which of the estimates to believe if discrepancies exist between them. If the inspection process is under control, we look to the size or injection estimates for correction. If the data suggests the inspection process was out of control, we should lower the effectiveness estimate by an amount based on an understanding of that process. Tying it together. In project one, the size reestimate caused a 13% increase in estimated defects not a large number, but significant as we enter the later test stages. Our adjustment might look as if we did it to make the estimates look better; however, we make the pretest data fit the actual data as much as possible to better estimate the number of defects remaining in the product. The reason for changing the estimates should be documented for assessing the lessons learned during the project and for using as input to future project estimates. I cannot offer a hard-and-fast rule for reestimating. I look to the data that has the most substance and evaluate the inspection data first, using the statistical methods discussed in this article. I also poll the inspection team members for their assessment of the inspections. In addition, I consider the data s source, the accuracy of previous estimates, what s most likely to be suspect, and estimator s instinct. Test phases During the unit, integration, and system 52 IEEE SOFTWARE May/June 2

test phases we monitored the defects removed against the estimates developed at the end of coding. The integration and system test phases gave us another opportunity to apply SPC. Defects 8 7 6 5 4 3 2 1 Unit and integration test. Both project teams kept accurate records of defects found during the unit test and integration test phases. They also developed unit test objective matrices and unit test plans and specifications. So, we expected defect removal to be more effective than the 3% to 5% industry norm. (As it turned out, defect removal for both our projects was approximately 75%.) Figure 8 shows the defect removal data for project two. (We use a chart such as this in our monthly project review and at weekly team meetings.) The vertical line on the right indicates the furthest stage where defect removal is happening, which is just before the beta ship phase. The chart incorporates the reestimate for the number of defects injected because of a size reestimate. Project reviews focus on the gap between the estimated injected defects and the actual removed defects. Because defect removal in the unit test phase was higher than estimated, a small number of defects were removed in the integration test and system test phases. Without accurate defect removal data from the unit test phase, these low numbers would be of more concern with respect to product quality. System test. In this phase, we used SPC to answer the popular question, When will we be finished with testing? We can use the estimate of remaining defects in the product and the removal rate to estimate the end date. An XmR (individuals and moving range see the sidebar on control limits for more on XmR charts) chart is useful for evaluating defect removal during system test. We began data collection as we entered release integration testing, the second part of the integration test phase. Figure 9 shows the weekly problem arrival rate is under the UCL through week 1, for both projects. (Problems are potential defects.) The LCL is negative and therefore set to zero. (Up to Cumulative actual removal Cumulative injection estimate Analysis High-level Low-level design design Coding Figure 8. Project two defect removal. Problems per week 35 3 25 15 1 5 Cumulative expected removal Cumulative injection reestimate Size reestimate Phase injection estimate Phase expected removal Phase actual removal Unit test Project integration testing Development phase Release integration testing this point, the figures have shown actual data; however, I ve altered the data in Figures 9 and 1 to avoid disclosing proprietary information.) Normally, you would want 16 to 2 samples from which to develop control charts, but the real world doesn t always cooperate. With fewer samples, you should temper the conclusions drawn from data outside the control limits with the realization that you need more samples to establish the true process limits. With fewer than 15 data points, those points that are close to the limit might give you incorrect signals of out-ofcontrol (or in-control) processes. 6,7 In week 11, the problem rate hit 33, which was above the UCL. If you allow for establishing the control limits with 1 samples, this outof-control data point suggests we look for a special cause. In this case, the system test phase started in week 11, using a more robust set of test cases and larger test configurations. Because a new test phase had begun, we recalculated the control chart starting from that week. Without SPC, how would you reply to the project manager s observation, based on the System test Beta Problem rate Current timeline 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 Week General ship Figure 9. Problem arrival rate. Problems are potential defects. May/June 2 IEEE SOFTWARE 53

3. Problem rate Lower control limit Xbar Problem rate 25. 2. 15. 1. 5. 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 Week Figure 1. Problem arrival rate control chart. data in Figure 1 up to week 2, that There s a downward trend for four weeks; looks like there is light at the end of the tunnel? Week 2, of course, would dispel that conclusion. But what is more important, the data at week 2 doesn t support a conclusion that the test cycle is drawing to a close. Based on SPC analysis, the only thing we can say is that the process is under control, with a predicted weekly problem arrival rate of between 2.4 and 27. To draw a valid conclusion, the input would have to be below 2.4 or above 27, or have a downward trend for seven weeks, none of which occurred. Note the difference at week 24, when the same four-week trend drops below the LCL, indicating an assignable or special cause of variation. This might be the end of test indicator if analysis determines the cause was indeed product related (not, for instance, a short work week, lack of progress due to a blocking problem, and so on). Further Reading If you re interested in exploring SPC in more depth, I suggest the following sources, on which I relied when preparing this article: A. Burr and M. Owen, Statistical Methods for Software Quality, Int l Thompson Computer Press, London, 1996, pp.114 128. W.A. Florac, R.E. Park, and A.D. Carleton, Practical Software Measurement: Measuring for Process Management and Improvement, Tech. Report CMU/SEI-97-HB-3, Software Eng. Inst., Carnegie Mellon Univ., Pittsburgh, 1997. D.J. Wheeler, Advanced Topics in Statistical Process Control, SPC Press, Knoxville, Tenn., 1995. D.J. Wheeler and D.S. Chambers, Understanding Statistical Process Control, SPC Press, Knoxville, Tenn., 1992. Figures 9 and 1 illustrate what happens when data from two processes are mixed on one chart. It might be obvious, as in this example, or hidden, as in Figure 3. Results At this article s beginning, I posed the question, Why didn t you find as many defects in the system test phase as in the last release? For our product release, defect discovery was 48.2% of that for the previous release (normalized for size), and system test turns were halved. However, we could confidently defend our testing because we had sufficient process data from the inspections to be confident in their results, and sufficient data from the test phases to determine that the lower defect removal rate during system test resulted from better defect removal in earlier phases. Although some of our conclusions and inferences were similar to those achieved through intuition or sound engineering judgment, we gained a fact-based understanding of many of our release processes. We were able to set quality goals, measure the results, and predict a post-ship rate with confidence. Our pre-spc attempts to develop this information had limited success. Our focus on the process aspect of the release resulted in the identification of several improvements for the next release. And, to date, in limited customer use, only one defect has been found in these two products, and the release defect density is more than 1 times better than previous releases. What was the additional cost? It included analysis of inspection data, collection of unit test data, and analysis of integration and system test data. Our inspection data is in a database, which lets us immediately extract the data necessary for the inspection SPC charts. We can insert the data into a spreadsheet template, which plots preparation rate and inspection rate X charts and defect density u- charts. The process takes less than five minutes. Unit test data collection is not free, but the savings in later problem analysis and tracking offset the cost. On a per-project basis, the initial data analysis cost is less than one to two hours per week. Of course, additional costs will be incurred as part of specific investigations initiated by the data analysis. 54 IEEE SOFTWARE May/June 2

You should ask these questions about any analysis technique: Is it useful? Does it provide information that helps make decisions? Is it usable? Can we reasonably collect the data and conduct the analysis? Our results show that SPC provides useful information to project managers, release managers, and development teams. The calculations are relatively easy, and spreadsheets make the process usable. Acknowledgments This article would not have been possible without the work of Phil Ishmael, Marilyn Sloan, Joe Wiechec, Eric Hardesty, George Mraz, Bill Brophy, Dave Edwards, Doug Withrow, Sid Andress, and other members of the development projects. Their willingness to collect the data made the data analysis possible. I also thank Dave Card, Mark Paulk, and Ron Radice for their reviews and suggestions. Advertiser / Product Index Abbott Laboratories 1 Corning 13 ParaSoft CV4 Southern Methodist University 9 UML World Conference 2 CV2-1 References 1. E. Adams, Optimizing Preventive Service of Software Products, IBM J. Research & Development, Vol. 1, Jan. 1984, pp. 2 14. 2. N. Fenton and S. Pfleeger, Software Metrics, PWS Publishing (Brooks/Cole Publishing), Pacific Grove, Calif., 1997, pp 344 348. 3. E.F. Weller, Lessons from Three Years of Inspection Data, IEEE Software, Vol. 1, No. 5, Sept. 1993, pp. 38 45. 4. E.F. Weller, Using Metrics to Manage Software Projects, Computer, Vol. 27, No. 9, Sept. 1994, pp. 27 33. 5. A. Burr and M. Owen, Statistical Methods for Software Quality, Int l Thompson Computer Press, London, 1996, pp.114 128. 6. D.J. Wheeler, Advanced Topics in Statistical Process Control, SPC Press, Knoxville, Tenn., 1995. 7. D.J. Wheeler, How Much Data Do I Need? Quality Digest, June 1997, www.qualitydigest.com/june97/html/ spctool.html (current Apr. 2). About the Author Edward F. Weller is a fellow at Bull HN Information Systems, where he is responsible for the software processes used by the GCOS 8 operating systems group. He received the IEEE Software Best Article of the Year award for his September 1993 article, Lessons from Three Years of Inspection Data. He was awarded the Best Track Presentation at the 1994 Applications of Software Measurement conference for Using Metrics to Manage Software Projects. He is a member of the SEI s Software Measurements Steering Committee. Mr. Weller has 28 years experience in hardware, test, software, and systems engineering of large-scale hardware and software projects and is a senior member of the IEEE. He received his BSE in electrical engineering from the University of Michigan and his MSEE from the Florida Institute of Technology. Contact him at Bull HN Information Systems, 1343 N. Black Canyon, Phoenix, AZ 8529; e.weller@bull.com. Classified Advertising 13 Advertising Sales Contacts Sales Representative Sandy Aijala saijala@computer.org Production information, conference and classified advertising Marian Anderson manderson@computer.org Debbie Sims dsims@computer.org IEEE Computer Society 1662 Los Vaqueros Circle Los Alamitos, California 972-1314 Phone: + 1 714 821 838 Fax: +1 714 821 41 computer.org advertising@computer.org May/June 2 IEEE SOFTWARE 55