The CMM describes the principles and practices underlying software process maturity. It is intended to help software organizations improve the maturity of their software processes in terms of an evolutionary path from ad hoc, chaotic processes to mature, disciplined software processes. The focus is on identifying key process areas and the exemplary practices that may comprise a disciplined software process. The maturity framework provided by CMM establishes a context in which:
- Practices can be repeated, if you don't repeat an activity there is no reason to improve it. There are policies, procedures, and practices that commit the organization to implementing and performing consistently.
- Best practices can be rapidly transferred across groups. Practices are defined sufficiently to allow for transfer across project boundaries, thus providing some standardization for the organization.
- Variations in performing best practices are reduced. Quantitative objectives are established for tasks; and measures are established, taken, and maintained to form a base-line from which an assessment is possible.
- Practices are continuously improved to enhance capability (optimizing).
Structure of CMM
- Maturity Levels
- A layered framework providing a progression to the discipline needed to engage in continuous improvement (It is important to state here that an organization develops the ability to assess the impact of a new practice, technology, or tool on their activity. Hence it is not a matter of adopting these, rather it is a matter of determining how innovative efforts influence existing practices. This really empowers projects, teams, and organizations by giving them the foundation to support reasoned choice.)
- Key Process Areas
- Key process area (KPA) identifies a cluster of related activities that, when performed collectively, achieve a set of goals considered important.
- Goals
- The goals of a key process area summarize the states that must exist for that key process area to have been implemented in an effective and lasting way. The extent to which the goals have been accomplished is an indicator of how much capability the organization has established at that maturity level. The goals signify the scope, boundaries, and intent of each key process area.
- Common Features
- Common features include practices that implement and institutionalize a key process area. These five types of common features include:
Commitment to Perform, Ability to Perform, Activities Performed, Measurement and Analysis, and Verifying Implementation.
- Key Practices
- The key practices describe the elements of infrastructure and practice that contribute most effectively to the implementation and institutionalization of the key process areas.
Framework for CMM
Process Definition Criteria are the set of information that must be included in a software process description for it to be usable by the people performing the process. To establish the criteria you are asking the question - "What software process information do I need to document?"
| Process Element | Answers
| | Purpose | Why is a process performed?
|
| Input | What work products are used?
|
| Output | What work products are produced?
|
| Role | Who (or what) performs the activities?
|
| Activity | What is done?
|
| Entry criteria | When (under what circumstances) can processes begin?
|
| Exit criteria | When (under what circumstances) can processes be considered complete?
|
| Procedure | How are activities implemented?
|
Other process elements:
- Reviews and audits performed.
- Work products that are to be managed and controlled (or placed under configuration management).
- Measurements to be made.
- Training.
- Tools.
Operational Framework
| Information Type | Description
|
| Policy | The laws and regulations that govern or constrain operations
|
| Standards | The operational definitions or acceptance criteria for final and interim products.
|
| Process | Describe what happens within the organization to build products that conform to standards in accord with policies.
|
| Procedures | Describes how-to or step-by-step instructions that implement a process.
|
| Training | Knowledge and/or skills required to use a procedure.
|
| Tools | Automated support needed to implement the procedures.
|
Software Process Framework
for SEI's
Capability Maturity Model
The software process framework documented is intended to guide those wishing to assess an organization/projects consistency with the CMM. For each maturity level there are five checklist types:
| Type | Description
| | Policy | Describes the policy contents and KPA goals recommended by the CMM.
|
| Standard | Describes the recommended content of select work products described in the CMM.
|
| Process | Describes the process information content recommended by the CMM. The process checklists are further refined into checklists for:
- roles
- entry criteria
- inputs
- activities
- outputs
- exit criteria
- reviews and audits
- work products managed and controlled
- measurements
- documented procedures
- training
- tools
|
| Procedure | Describes the recommended content of documented procedures described in the CMM.
|
| Level Overview | Provides an overview of an entire maturity level. The level overview checklists are further refined into checklists for:
- KPA purposes (Key Process Areas)
- KPA goals
- policies
- standards
- process descriptions
- procedures
- training
- tools
- reviews and audits
- work products managed and controlled
- measurements
|
See also the People Capability Maturity Model.
References
Bemberger, J. (June 1997) Essence of the Capability Maturity Model. IEEE Computer, p. 112-114.
Olson, T. G., N. R. Reizer, & J. W. Over (1994) A Software Process Framework for the SEI Capability Maturity Model. Documents and Checklists for a Software Process Framework for CMM.
The Capability Maturity Model: A Tutorial. A set of slides from SEI describing CMM and the underlying structure.
[PCMM]
[Bootstrap]
[TRILLIUM]
[Quality Improvement Paradigm]
[SPICE]
[Kaizen]