|
1 Introducing the Key Practices Document
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 organiz fcb ation'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:
- software process improvement, in which an organization plans, develops,
and implements changes to its software process;
- software process assessments, in which a trained team of software
professionals determines the state of an organization's current software
process, determines the high-priority software process-related issues
facing an organization, and obtains the organizational support for software
process improvement; and
- software capability evaluations, in which a trained team of professionals
identifies contractors who are qualified to perform the software work
or monitors the state of the software process used on an existing software
effort.
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:
- by anyone wanting to understand the key practices that are part
of effective processes for developing or maintaining software,
- by anyone wanting to identify the key practices that are needed
to achieve the next maturity level in the CMM,
- by organizations wanting to understand and improve their capability
to develop software effectively,
- by acquisition organizations or prime contractors wanting to
identify the risks of having a particular organization perform
the work of a contract,
- by the SEI as the basis for developing process products, such
as the maturity questionnaire, and
- by instructors preparing teams to perform software process assessments
or software capability evaluations.
The two documents that provided the initial foundation for the CMM
are:
- "Characterizing the Software Process" [Humphrey88], and
- "Managing the Software Process" [Humphrey89].
Version 1.0 of the CMM was released in August of 1991 in two technical
reports:
- "Capability 199 Maturity Model for Software" [Paulk91], and
- "Key Practices of the Capability Maturity Model" [Weber91].
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" [Paulk93a],
and
- this document, "Key Practices of the Capability Maturit fdd
y Model, Version 1.1" [Paulk93b].
"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.
This first chapter gives an overview of the CMM and of this document.
In the next three chapters of the overview are:
- an overview of the CMM and its constituent parts,
- a description of how to use the format of the key practices,
and
- a description of ways to use and interpret the key practices.
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.
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.
|
|