1993 CapabilityMaturityModelforSoftw

From GM-RKB
Jump to navigation Jump to search

Subject Headings: Software Development Capability Maturity Model, Capability Maturity Model.

Notes

Cited By

Quotes

In November 1986, the Software Engineering Institute (SEI) with assistance from the Mitre began developing a process maturity framework that would assist organizations in improving their software process. This effort was initiated in response to a request to provide the federal government with a method for assessing the capability of their software contractors. In September 1987, the SEI released a brief description of the process maturity framework and a maturity questionnaire (CMU / SEI-87-TR-023). The SEI intended the maturity questionnaire to provide a simple tool for identifying areas where an organization's software process needed improvement. Unfortunately, the questionnaire was too often regarded as "the model" rather than as a vehicle for exploring process maturity issues. After four years of experience with the software process maturity framework and the preliminary version of the maturity questionnaire, the SEI has evolved the software process maturity framework into a fully defined model.

This model will be used in a systematic, principled way to derive a maturity questionnaire. By fully elaborating the maturity framework, a model has emerged that provides organizations with more effective guidance for establishing process improvement programs than was offered by the maturity questionnaire. Using knowledge acquired from software process assessments and extensive feedback from both industry and government, an improved version of the process maturity framework has been produced called the Capability Maturity Model for Software (CMM). This paper is an introduction to the revised model.

1.3 Overview of the Capability Maturity Model

Although software engineers and managers often know their problems in great detail, they may disagree on which improvements are most important. Without an organized strategy for improvement, it is difficult to achieve consensus between management and the professional staff on what improvement activities to undertake first. To achieve lasting results from process improvement efforts, it is necessary to design an evolutionary path that increases an organization's software process maturity in stages. The software process maturity framework [Humphrey 87a] orders these stages so that improvements at each stage provide the foundation on which to build improvements undertaken at the next stage. Thus, an improvement strategy drawn from a software process maturity framework provides a roadmap for continuous process improvement. It guides advancement and identifies deficiencies in the organization; it is not intended to provide a quick fix for projects in trouble.

The Capability Maturity Model for Software provides software organizations with guidance on how to gain control of their processes for developing and maintaining software and how to evolve toward a culture of software engineering and management excellence. The CMM was designed to guide software organizations in selecting process improvement strategies by determining current process maturity and identifying the few issues most critical to software quality and process improvement. By focusing on a limited set of activities and working aggressively to achieve them, an organization can steadily improve its organization-wide software process to enable continuous and lasting gains in software process capability.

The staged structure of the CMM is based on principles of product quality that have existed for the last sixty years. In the 1930s, Walter Shewart, promulgated the principles of statistical quality control. His principles were further developed and successfully demonstrated in the work of W. Edwards Deming [Deming86] and Joseph Juran [Juran88, Juran89]. These principles have been adapted by the SEI into a maturity framework that establishes a project management and engineering foundation for quantitative control of the software process, which is the basis for continuous process improvement.

The maturity framework into which these quality principles have been adapted was first inspired by Philip Crosby of in his book Quality is Free [Crosby79]. Crosby's quality management maturity grid describes five evolutionary stages in adopting quality practices. This maturity framework was adapted to the software process by Ron Radice and his colleagues, working under the direction of Watts Humphrey at IBM [Radice85]. Humphrey brought this maturity framework to the Software Engineering Institute in 1986, added the concept of maturity levels, and developed the foundation for its current use throughout the software industry.

Early versions of Humphrey's maturity framework are described in SEI technical reports [Humphrey87a, Humphrey87b], papers [Humphrey88], and in his book, Managing the Software Process [Humphrey89]. A preliminary maturity questionnaire [Humphrey87b] was released in 1987 as a tool to provide organizations with a way to characterize the maturity of their software processes. Two methods, software process assessment and software capability evaluation, were developed to appraise software process maturity in 1987. Since 1990, the SEI, with the help of many people from government and industry, has further expanded and refined the model based on several years of experience in its application to software process improvement.

2 The Five Levels of Software Process Maturity

Continuous process improvement is based on many small, evolutionary steps rather than revolutionary innovations [Imai86]. The CMM provides a framework for organizing these evolutionary steps into five maturity levels that lay successive foundations for continuous process improvement. These five maturity levels define an ordinal scale for measuring the maturity of an organization's software process and for evaluating its software process capability. The levels also help an organization prioritize its improvement efforts.

A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level provides a layer in the foundation for continuous process improvement. Each level comprises a set of process goals that, when satisfied, stabilize an important component of the software process. Achieving each level of the maturity framework establishes a different component in the software process, resulting in an increase in the process capability of the organization.

Organizing the CMM into the five levels shown in Figure 2.1 prioritizes improvement actions for increasing software process maturity. The labeled arrows in Figure 2.1 indicate the type of process capability being institutionalized by the organization at each step of the maturity framework.

References

;

 AuthorvolumeDate ValuetitletypejournaltitleUrldoinoteyear
1993 CapabilityMaturityModelforSoftwMark C. Paulk
Charles V Weber
Bill Curtis
Mary Beth Chrissis
Capability Maturity Model for Software (Version 1.1)1993