Capability Maturity Model

The Capability Maturity Model (CMM) is a method for evaluating and measuring the maturity of the software development process of organizations on a scale of 1 to 5. The CMM 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. The Software Engineering Institute has subsequently released a revised version known as the Capability Maturity Model Integration (CMMI).

Contents

Levels of the CMM

(See chapter 2 of (March 2002 edition of CMMISM from SEI), page 11.)

There are 5 levels of the CMM. According to the SEI, "Predictability, effectiveness, and control of an organization's software processes are believed to improve as the organization moves up these five levels. While not rigorous, the empirical evidence to date supports this belief."

1 - Initial 
2 - Repeatable 
3 - Defined 
4 - Managed 
5 - Optimizing 

Recent versions of CMMI from SEI indicate a "level 0", characterized as "Incomplete". Many observers leave this level out as redundant or unimportant, but Pressman and others make note of it. See page 18 of the August 2002 edition of CMMI from SEI (Note: PDF file).

Anthony Finkelstien extrapolated that negative levels, or the Capability Immaturity Model, are necessary to represent environments that are not only indifferent, but actively counterproductive, and this was refined by Tom Schorsch:

Some praise of the CMM

  1. The CMM was developed to give Defense organizations a yardstick to assess and describe the capability of software contractors to provide software on time, within budget, and to acceptable standards. It has arguably been successful in this role, even reputedly causing some software salespeople to clamour for their organizations' software engineers/developers to "implement CMM."
  2. The CMM is intended to enable an assessment of an organization's maturity for software development. It is an important tool for outsourcing and exporting software development work. Economic development agencies in India, Ireland, Egypt, and elsewhere have praised the CMM for enabling them to be able to compete for US outsourcing contracts on an even footing. Whilst this may have been very positive for the employment of software engineers in emerging or Third World economies - notably in India during the early 2000s - it is regarded as having adversely affected the potential employment opportunities for software engineers in the developed economies - notably the USA and Europe. This outsourcing is a form of labor arbitrage which is similar to the movement of manufacturing of (for example) fashion clothing or Nike shoes to Third World economies with relatively cheap labor rates.
  3. It is reputed that IBM, Motorola, Logica, BT, and others have discovered the following:

Some criticism of the CMM

  1. The CMM does not describe how to create an effective software development organization. The traits it measures are, in practice, very hard to develop in an organization, even though they are very easy to recognize.
  2. The CMM can seem to be overly bureaucratic, promoting process over substance. For example, for emphasizing predictability over service provided to end users. More commercially successful methodologies (for example, The Unified Development Process) have focused not on the capability of the organization to produce software to satisfy some other organization or a collectively-produced specification, but on the capability of organizations to satisfy specific end user "use cases" as per the Object Management Group's UML (Unified Modelling Language) approach.
  3. The CMM's division into levels could ignore the possibility that a single group may exhibit all of the behaviors and may change from behavior to behavior over time. There is also the rule that a group must move from step to step along the continuum of the CMM, and that it is not "allowed" by the CMM for a group to move from one to five without going through the intermediate steps.

External links

See also: Capability Maturity Model, Avionics software, Carnegie Mellon University, Pittsburgh, Project management, Six Sigma, Software Engineering Institute, Unified Modelling Language, Use cases, W. Edwards Deming