Software cost overruns, schedule delays, and poor quality have been endemic in the software industry for more than 50 years .
Since the incorporation of the Software Engineering Institute (SEI) in 1984, it has often been asserted that companies or projects that use state-of-the-art development processes and advanced tool suites can create software applications faster and with fewer risks of failure than traditional methods .
Are these assertions true? For software process improvement, there has been comparatively little solid, empirical data published on four important topics:
From Using Function Point Metrics to Measure Software Process Improvements , by Capers Jones. Reprinted by permission of Capers Jones, Chief Scientist Emeritus, Software Productivity Research, Inc. (an Artemis Company) ”http://www.spr.com. Copyright 1997 “2002 by Capers Jones. All rights reserved.
Colleagues at Software Productivity Research (SPR) and I have examined data from more than 10,000 software projects between 1984 and today. Our methodology includes standardized questionnaires for gathering both qualitative and quantitative information. A discussion of this methodology is outside the scope of this chapter. For information on how the data were collected, refer to Jones (1996, 2000).
We have examined software projects at all five levels of the SEI capability maturity model (CMM). We have also examined many projects that do not use the SEI CMM. (Refer to Paulk et al., 1995 for a discussion of the CMM.) Some of our findings have been published in a number of books that address the economic and quality aspects of software process improvement. (Jones 1994, 1996, 1997, 1998, and 2000). The examined data come primarily from our clients , which consist of about 600 companies and government agencies.
Among our clients, software process improvements do not occur in random patterns. When the patterns used by the best overall companies are examined, it can be seen that the initial activity is a formal process assessment and a baseline, followed by a six-stage improvement program in a specific order:
Stage 0: Software Process Assessment, Baseline, and Benchmark
Stage 1: Focus on Management Technologies
Stage 2: Focus on Software Processes and Methodologies
Stage 3: Focus on New Tools and Approaches
Stage 4: Focus on Infrastructure and Specialization
Stage 5: Focus on Reusability
Stage 6: Focus on Industry Leadership
Note that the assessment itself does not improve anything, so it is outside the six numbered improvement stages. A software process assessment is analogous to a medical diagnostic study. A diagnostic study does not cure any illness , but provides physicians with the information necessary to plan effective therapies.
These six stages provide a structure for software improvement strategies. However, each company is different and therefore the specifics of each company's improvement strategy must match its local culture and particular needs. Other authors also discuss various strategies for software process improvement (Grady 1997).
What Is Software Quality?
Software Development Process Models
Fundamentals of Measurement Theory
Software Quality Metrics Overview
Applying the Seven Basic Quality Tools in Software Development
Defect Removal Effectiveness
The Rayleigh Model
Exponential Distribution and Reliability Growth Models
Quality Management Models
In-Process Metrics for Software Testing
Complexity Metrics and Models
Metrics and Lessons Learned for Object-Oriented Projects
Measuring and Analyzing Customer Satisfaction
Conducting In-Process Quality Assessments
Conducting Software Project Assessments
Dos and Donts of Software Process Improvement
Using Function Point Metrics to Measure Software Process Improvements
A Project Assessment Questionnaire