Glossary

CMMI

Term Definition CMMI stands for Capability Maturity Model Integration and consists of best practices that address product development and maintenance. It addresses practices that cover the product’s life cycle from conception through delivery and maintenance. There is an emphasis on both systems engineering and software engineering and the integration necessary to build and maintain the […]

Term Definition

CMMI stands for Capability Maturity Model Integration and consists of best practices that address product development and maintenance. It addresses practices that cover the product’s life cycle from conception through delivery and maintenance. There is an emphasis on both systems engineering and software engineering and the integration necessary to build and maintain the total product.

CMMI is a collection of instructions an organization can follow with the purpose to gain better control over its software development process. The CMMI ranks software development organizations into a hierarchy of five levels. Each level has a progressively greater capability of producing quality software.

The levels are described as levels of maturity, and each is equipped with a different number of instructions to follow. The CMMI was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University in Pittsburgh. It has been used extensively for avionics software and for government projects since it was created in the mid-1980s.

Two of the main components of CMMI are Process and Process Improvement. The improvement information in CMMI models includes the creation of a viable, improvable process infrastructure.

Processes need to be planned just like projects, and it helps if the organization has given some weight and validity to it through policy. You need to make sure that resources are available for trained, empowered people to perform the process. Those with an interest in a process need to be identified and involved. Work products and the process documentation should be controlled, and the progress against the process plan tracked, as well. There should be someone responsible for objectively evaluating that the process is being followed, and management should be briefed periodically on the process performance.

Processes become more capable when they are standardized across the organization and their performance is monitored against historical data. This way you can detect variation in performance early enough to address it less expensively. And ultimately, the process should be continuously improving through identifying the root causes of variability and innovative ways to fulfill its objectives.