1 Introducing the Key Practices Document

1.1 To the Reader

Developing reliable and usable software that is delivered on time and within budget is a difficult endeavor for many organizations. Products that are late, over budget, or that don't work as expected also cause problems for the organization's customers. As software projects continue to increase in size and importance, these problems become magnified. These problems can be overcome through a focused and sustained effort at building a process infrastructure of effective software engineering and management practices.

To build this process infrastructure, organizations producing software need ways to appraise their ability to perform their software process successfully. They also need guidance to improve their process capability. Customers, such as the Department of Defense (DoD), need ways to evaluate more effectively an organization's capability to perform successfully on software engineering contracts. Prime contractors need ways to evaluate the capability of potential subcontractors.

To help organizations and customers like the DoD and prime contractors, the Software Engineering Institute (SEI) has developed the Capability Maturity Model for Software (CMM), that delineates the characteristics of a mature, capable software process. The progression from an immature, unrepeatable software process to a mature, well-managed software process also is described in terms of maturity levels in the model.

The CMM can be used for:

This document describes the key practices that correspond to each maturity level in the CMM. It is an elaboration of what is meant by maturity at each level of the CMM and a guide that can be used for software process improvement, software process assessments, and software capability evaluations.

The key practices of the CMM are expressed in terms of what is expected to be the normal practices of organizations that work on large, government contracts. In any context in which the CMM is applied, a reasonable interpretation of how the practices would be applied should be used. Guidelines on interpreting the CMM are contained in Chapter 4 of this document. The CMM must be appropriately interpreted when the business environment of the organization differs significantly from that of a large contracting organization. The role of professional judgment in making informed use of the CMM must be recognized.

This document can be used in several ways:

1.2 Relationship of this Document to Other Documents

The two documents that provided the initial foundation for the CMM are:

Version 1.0 of the CMM was released in August of 1991 in two technical reports:

This initial release of the CMM was revised during 1992. To understand and use the current version of the CMM, two documents are needed:

"Capability Maturity Model for Software, Version 1.1" contains an introduction to the model, descriptions of the five maturity levels, an operational definition of the CMM and its structure, a discussion of how organizations can use the maturity model, and some remarks on the future directions of the CMM.

"Key Practices of the Capability Maturity Model, Version 1.1," contains the key practices that correspond to the key process areas at each maturity level of the CMM and information to help interpret the key practices.

The maturity questionnaire and other process products are derived from the key practices of the Capability Maturity Model. Other SEI process products that support software process improvement, software process assessment, and software capability evaluation include training courses, handbooks, and site visit guides.

1.3 Organization of this Document

This first chapter gives an overview of the CMM and of this document. In the next three chapters of the overview are:

Following the overview, the key practices for the key process areas of the CMM are described. For those who want to get a quick sense of the key practices, without the rigor that is needed in applying them, an abridgment of the key practices is provided in Appendix C.

In the appendices are a list of the references cited in this document, a glossary of terms used in this document, an abridgment of the key practices, the change history for this document, and an index of terms contained in this document.

1.4 Expected Use of this Document

If you are not familiar with the CMM, you should first read the paper, "Capability Maturity Model for Software, Version 1.1" [Paulk93a] and all four chapters in this overview before trying to use the key practices.

If you are already familiar with the CMM and how it is structured, you may want to go directly to the fourth chapter for advice on how to interpret the key practices.

[^^]Overview table of contents [->]Forward one chapter