Using Function Point Metrics to Measure Software Process Improvements

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:

What does it cost to improve software processes?

How long does it take to see tangible improvements if processes do improve?

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).