1. Introduction

In this tutorial, we’ll discuss the capability maturity model (CMM) and the range of concepts underpinning it. In addition, we’ll examine the logic and structure of the CMM.

2. What Is Capability Maturity Model (CMM)?

CMM is a process-based model that helps assess an organization’s maturity across various domains. The Software Engineering Institute (SEI) in the United States was the first to introduce the concept of the CMM. The CMM method employs an outstanding practical tool, created as part of the process approach, for describing the activities of a project organization.

3. Capability Maturity Model Levels in Software Engineering

The software maturity levels provide a scale for describing development capability and maturity and assist in estimating the amount of work necessary to enhance a software development process. To prioritize process improvements for software development, we use CMM tools.

3.1. What Are Capability Maturity Model Levels?

Based on the process model, the CMM was developed to assess an organization on a five-point maturity level.

The five levels of the CMM software development process are:

  • Initial Level
  • Repeatable Level
  • Defined Level
  • Managed Level
  • Optimizing Level

Each level denotes a stage in the development of organizational process maturity:

Capability Maturity levels

3.2. Level 1: Initial

At the first level, the software development process is ad hoc and occasionally chaotic. Success depends on individual effort, as few processes are clearly defined.

When an organization encounters difficulties, it often turns to ad hoc coding and testing instead of following predetermined steps. Project success depends on having a good manager and a skilled development team. The success of the development process depends on the managers, who are often able to withstand the pressure to speed up the process.

The development process is constantly changing, which means the initial capabilities of an organization’s software development process are uncertain. Particularly, this is determined by the abilities and motivation of individual employees, as well as their inbuilt skills and expertise.

3.3. Level 2: Repeatable

At the repeatable level, project management processes include cost, schedule, and functionality tracking. For projects with similar applications, the procedure is already in place to build on prior successes.

For managing a software project, the organization sets up specific guidelines and processes. To plan and oversee new projects, the organization makes use of this experience. Mainly, the goal is to create repeatable project management strategies that will help organizations achieve successful results with similar projects in the past.

In other words, project management becomes effective based on prior successes and replicating the practices that lead to successful project completion.

3.4. Level 3: Defined

At the defined level, the software development process is standardized, integrated into all organizational processes, and managed by management and software engineering teams. Each project follows an approved version of the organization’s standard software development and maintenance process.

With the cooperation of well-coordinated software engineering and management processes, developing and managing software is standardized at a high level.

In conclusion, a shared understanding of the duties, responsibilities, and roles within a particular software process is the foundation for the defined level of process capability across the entire organization. Therefore, this process capability is stable and repeatable, which means that costs, schedules, and functionality are all under control for established product lines. Additionally, tracking and monitoring the software’s quality enables the early detection and resolution of problems.

3.5. Level 4: Managed

At the managed level, software development is checked and controlled in great detail to ensure high-quality products.

Accordingly, the company has set quality objectives for software processes and products at the managed level. It uses organizational measurement programs to evaluate productivity and quality for key software process activities across all projects.

Generally, the managed level refers to a process capability where an organization can predict how its quality will change and take appropriate action when necessary. We achieve this by staying within measurable parameters and employing dependable software.

3.6. Level 5: Optimizing

At the optimizing level, the quantitative feedback from the process and experimenting with innovative ideas and technologies help continuous improvement.

To avoid defects, the organization focuses on continuously improving its software development process. We can achieve this by proactively identifying flaws and putting best practices into action. In addition, the organization uses data on the effectiveness of the current software process to make informed decisions about how to change it. Furthermore, the organization shares innovative ideas that leverage best practices throughout the organization.

Particularly, an organization at the optimizing level is constantly striving to improve its process capability to improve the process performance of its projects. The overall improvement can come through smaller incremental improvements to the current process and innovations that use new technologies and approaches.

4. Comparison of Levels

CMM process area by maturity level:

Levels

Focus Area

Key Process

Benefits

1.

Initial

Individual effort

Progress is not being tracked. Individuals define a capability. Significant differences in the schedule, cost, functionality, and quality.

None. The project is chaotic.

2.

Repeatable

Project management

Developing plans and processes. Requirement management. Estimating project parameters such as cost, timeline, and functionality. Measuring actual progress. Software project standards are defined.

Processes become more understandable. Projects are better estimated, planned, and flexible. Projects incorporate quality.

3.

Defined

Engineering process

Clarification of requirements. Addressing design issues and creating an implementation strategy. Systematizing decision analysis. Fixing and managing potential issues.

Process optimization becomes the norm. Risks are mitigated.

4.

Managed

Product and process quality

Statistical overseeing of the project’s processes and sub-processes. Quantitative analysis

Improved process performance throughout the organization. Quantitative project management.

5.

Optimizing

Continuous improvement

Using new tools and process improvements. Early defect detection and elimination.

Encourages the use of innovation. Gives causal analysis and resolution a boost.

5. Conclusion

In this article, we discussed the capability maturity model (CMM), one of the most widely used software engineering tools for improving software development processes.

CMM is a model that shows an organization’s progress in developing and improving its capabilities. At each level, the model provides a path for improvement with specific goals.