Capability Maturity Model (CMM) in Software Engineering
โก Smart Summary
Capability Maturity Model (CMM) is a benchmark used to measure how mature an organization’s software process is. Developed at the Software Engineering Institute, it defines five levels that guide teams from chaotic, ad-hoc work toward continuous, optimized improvement.

What is CMM?
Capability Maturity Model is used as a benchmark to measure the maturity of an organization’s software process.
CMM was developed at the Software Engineering Institute in the late 80’s. It was developed as a result of a study financed by the U.S. Air Force as a way to evaluate the work of subcontractors. Later, based on the CMM-SW model created in 1991 to assess the maturity of software development, multiple other models were integrated with CMM-I.
What is Capability Maturity Model (CMM) Levels?
The model defines five progressive maturity levels:
- Initial
- Repeatable/Managed
- Defined
- Quantitatively Managed
- Optimizing
What happens at different levels of CMM?
The table below breaks down the activities and benefits at each level.
| Levels | Activities | Benefits |
|---|---|---|
| Level 1 Initial |
|
None. A project is Total Chaos. |
| Level 2 Managed |
|
|
| Level-3 Defined |
|
|
| Level-4 Quantitatively Managed |
|
|
| Level-5 Optimizing |
|
|
The following diagram gives a pictorial representation of what happens at different CMM levels:
How long does it Take to Implement CMM?
CMM is the most desirable process to maintain the quality of the product for any software development company, but its implementation takes a little longer than what is expected.
- CMM implementation does not occur overnight.
- It is not merely “paperwork.”
- Typical times for implementation are:
- 3-6 months -> for preparation
- 6-12 months -> for implementation
- 3 months -> for assessment preparation
- 12 months -> for each new level
Internal Structure of CMM
Each level in CMM is defined into a key process area or KPA, except for level-1. Each KPA defines a cluster of related activities, which when performed collectively achieve a set of goals considered vital for improving software capability.
For different CMM levels, there are sets of KPAs. For instance, for CMM model-2, the KPAs are:
- REQM – Requirement Management
- PP – Project Planning
- PMC – Project Monitoring and Control
- SAM – Supplier Agreement Management
- PPQA – Process and Quality Assurance
- CM – Configuration Management
Likewise, for other CMM models, you have specific KPAs. To know whether the implementation of a KPA is effective, lasting, and repeatable, it is mapped on the following basis:
- Commitment to perform
- Ability to perform
- Activities performed
- Measurement and Analysis
- Verifying implementation
Limitations of CMM Models
The model also has several limitations:
- CMM determines what a process should address instead of how it should be implemented.
- It does not explain every possibility of software process improvement.
- It concentrates on software issues but does not consider strategic business planning, adopting technologies, establishing a product line, and managing human resources.
- It does not tell what kind of business an organization should be in.
- CMM will not be useful in a project having a crisis right now.
Why Use CMM?
Today CMM acts as a “seal of approval” in the software industry. It helps in various ways to improve software quality.
- It guides towards a repeatable standard process and hence reduces the learning time on how to get things done.
- Practicing CMM means practicing a standard protocol for development, which means it not only helps the team save time but also gives a clear view of what to do and what to expect.
- The quality activities gel well with the project rather than being thought of as a separate event.
- It acts as a communicator between the project and the team.
- CMM efforts are always towards the improvement of the process.



