CMM), was first described by Watts Humphrey in his book Managing the Software
Process. The CMM is a process model based on software best-practices effective in
large-scale, multi-person projects.
The CMM has been retired and not been updated in over 10 years. CMM has been
superseded by CMMI (Capability Maturity Model Integrated).
The CMM has been used to assess the maturity levels of organization areas as diverse as
software engineering, system engineering, project management, risk management, system
acquisition, information technology (IT) or personnel management, against a scale of
five key processes, namely: Initial, Repeatable, Defined, Managed and Optimized.
CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon
University in Pittsburgh. It has been used extensively for avionics software and
government projects around the world.
What is the Capability Maturity Model?
There are many different applications of the Capability Maturity Models. Some of
these models target software development, staffing, etc. In this series I will focus on
the Systems Engineering Capability Maturity Model (CMM). The CMM is service
marked by the Software Engineering Institute (SEI) of Carnegie Mellon University
and was developed by the SEI, the Department of Defense and a host of other
entities.
2- Second, as you view the model it is intuitive that a company cannot currently
be ranked at a level 2 and directly jump to level 4. Instead, an organization
must first develop a strategy to elevate themselves to level 3.
3- Many large companies and government institutions are actively using this
model to compare themselves with other entities. In fact, many corporations
have goals centered on the CMM levels. Fourth, the model gives companies a
mechanism to compare themselves with other companies within their
industry.
What is CMM?
• Framework that describes five (5) levels of maturity within the
software process
• Each maturity level within CMM is divided into Key Process Areas
(KPAs)
• Evolutionary improvement path from an ad hoc, immature
organization to a mature, disciplined organization
• CMM provides the framework. Each organization determines how to
meet the criteria of the framework
CMM Benefits
• Creates a shared vision of software process improvement within an
organization
• Establishes a common language for the software process
• Defines a set of priorities for addressing software issues
• Supports measurement of the process by providing a framework for
reliable, consistent assessments
CMM Focus
• Capability of organizations to produce high-quality products
consistently and predictably
• Inherent ability of process to produce planned results
• Process as a means to empower the people doing the work
The CMM model defines five levels of organizational maturity:
1. Initial level is a basis for comparison with the next levels. In an organization at
the initial level, conditions are not stable for the development of quality software.
The results of any project depend totally on the manager’s personal approach and
the programmers’ experience, meaning the success of a particular project can be
repeated only if the same managers and programmers are assigned to the next
project. In addition, if managers or programmers leave the company, the quality
of produced software will sharply decrease. In many cases, the development
process comes down to writing code with minimal testing.
3. Defined level. Here, standards for the processes of software development and
maintenance are introduced and documented (including project management).
During the introduction of standards, a transition to more effective technologies
occurs. There is a special quality management department for building and
maintaining these standards. A program of constant, advanced training of staff is
required for achievement of this level. Starting with this level, the degree of
organizational dependence on the qualities of particular developers decreases and
the process does not tend to roll back to the previous level in critical situations.
4. Managed level. There are quantitative indices (for both software and process as a
whole) established in the organization. Better project management is achieved due
to the decrease of digression in different project indices. However, sensible
variations in process efficiency may be different from random variations (noise),
especially in mastered areas.
5. Optimizing level. Improvement procedures are carried out not only for existing
processes, but also for evaluation of the efficiency of newly introduced innovative
technologies. The main goal of an organization on this level is permanent
improvement of existing processes. This should anticipate possible errors and
defects and decrease the costs of software development, by creating reusable
components for example.