Actions

Capability Maturity Model (CMM)

Definition - What is the Capability Maturity Model (CMM)?

Capability Maturity Model is a benchmark for measuring the maturity of an organization’s software process. It is a methodology used to develop and refine an organization’s software development process. CMM can be used to assess an organization against a scale of five process maturity levels based on certain Key Process Areas (KPA). It describes the maturity of the company based upon the project the company is dealing with and the clients. Each level ranks the organization according to its standardization of processes in the subject area being assessed.[1]

Components of Capability Maturity Model (CMM)

The components of the CMM include:[2]

  • Maturity levels: A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. The five maturity levels provide the top-level structure of the CMM.
  • Process capability: Software process capability describes the range of expected results that can be achieved by following a software process. The software process capability of an organization provides one means of predicting the most likely outcomes to be expected from the next software project the organization undertakes.
  • Key Process Areas (KPA): Each maturity level is composed of key process areas. Each key process area identifies a cluster of related activities that, when performed collectively, achieve a set of goals considered important for establishing process capability at that maturity level. The key process areas have been defined to reside at a single maturity level. For example, one of the key process areas for Level 2 is Software Project Planning.
  • Goals: The goals summarize the key practices of a key process area and can be used to determine whether an organization or project has effectively implemented the key process area. The goals signify the scope, boundaries, and intent of each key process area. An example of a goal from the Software Project Planning key process area is "Software estimates are documented for use in planning and tracking the software project." See "Capability Maturity Model for Software, Version 1.1" [Paulk93a] and Section 4.5, Applying Professional Judgment, of this document for more information on interpreting the goals. (kp PP.GO.1)
  • Common Features: The key practices are divided among five common features sections:
    • Commitment to Perform,
    • Ability to Perform,
    • Activities Performed,
    • Measurement and Analysis, and
    • Verifying Implementation.
      The common features are attributes that indicate whether the implementation and institutionalization of a key process area is effective, repeatable, and lasting. The Activities Performed common feature describes implementation activities. The other four common features describe the institutionalization factors, which make a process part of the organizational culture.
  • Key practices: Each key process area is described in terms of key practices that, when implemented, help to satisfy the goals of that key process area. The key practices describe the infrastructure and activities that contribute most to the effective implementation and institutionalization of the key process area. For example, one of the practices from the Software Project Planning key process area is "The project's software development plan is developed according to a documented procedure." (kp PP.AC.6)


The Five Levels of Capability Maturity Model (CMM)

Capability Maturity Model (CMM) Levels[3]

In CMMI models there are five maturity levels with a staged representation 1-5:

Maturity Level 1. Initial - Company has no standard process for software development. Nor does it have a project-tracking system that enables developers to predict costs or finish dates with any accuracy.

Maturity Level 2. Managed- Company has installed basic software management processes and controls. But there is no consistency or coordination among different groups.

Maturity Level 3. Defined - Company has pulled together a standard set of processes and controls for the entire organization so that developers can move between projects more easily and customers can begin to get consistency from different groups.

Maturity Level 4. Quantitatively Managed - In addition to implementing standard processes, company has installed systems to measure the quality of those processes across all projects.

Maturity Level 5. Optimizing - Company has accomplished all of the above and can now begin to see patterns in performance over time, so it can tweak its processes in order to improve productivity and reduce defects in software development across the entire organization.


CMM Levels
source: ISTBQ


History of Capability Maturity Model (CMM)

Historical Background of the Capability Maturity Model[4]

The Capability Maturity Model (CMM) is a development model created after study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. In the 1980s, several US military projects involving software subcontractors ran over-budget and were completed far later than planned, if at all. In an effort to determine why this was occurring, the United States Air Force funded a study at the Software Engineering Institute (SEI).

The first application of a staged maturity model to IT was not by CMU/SEI, but rather by Richard L. Nolan, who, in 1973 published the stages of growth model for IT organizations. Watts Humphrey began developing his process maturity concepts during the later stages of his 27-year career at IBM

Active development of the model by the US Department of Defense Software Engineering Institute (SEI) began in 1986 when Humphrey joined the Software Engineering Institute located at Carnegie Mellon University in Pittsburgh, Pennsylvania after retiring from IBM. At the request of the U.S. Air Force he began formalizing his Process Maturity Framework to aid the U.S. Department of Defense in evaluating the capability of software contractors as part of awarding contracts.

The result of the Air Force study was a model for the military to use as an objective evaluation of software subcontractors' process capability maturity. Humphrey based this framework on the earlier Quality Management Maturity Grid (QMMG) developed by Philip B. Crosby in his book "Quality is Free". Humphrey's approach differed because of his unique insight that organizations mature their processes in stages based on solving process problems in a specific order. Humphrey based his approach on the staged evolution of a system of software development practices within an organization, rather than measuring the maturity of each separate development process independently. The CMM has thus been used by different organizations as a general and powerful tool for understanding and then improving general business process performance. Watts Humphrey's Capability Maturity Model (CMM) was published in 1988 and as a book in 1989, in Managing the Software Process.

Organizations were originally assessed using a process maturity questionnaire and a Software Capability Evaluation method devised by Humphrey and his colleagues at the Software Engineering Institute.

The full representation of the Capability Maturity Model as a set of defined process areas and practices at each of the five maturity levels was initiated in 1991, with Version 1.1 being completed in January 1993. The CMM was published as a book in 1995 by its primary authors, Mark C. Paulk, Charles V. Weber, Bill Curtis, and Mary Beth Chrissis. United States of America New York, USA.

The CMM model's application in software development has sometimes been problematic. Applying multiple models that are not integrated within and across an organization could be costly in training, appraisals, and improvement activities. The Capability Maturity Model Integration (CMMI) project was formed to sort out the problem of using multiple models for software development processes, thus the CMMI model has superseded the CMM model, though the CMM model continues to be a general theoretical process capability model used in the public domain.

The CMM was originally intended as a tool to evaluate the ability of government contractors to perform a contracted software project. Though it comes from the area of software development, it can be, has been, and continues to be widely applied as a general model of the maturity of process (e.g., IT service management processes) in IS/IT (and other) organizations.


Understanding the Capability Maturity Model (CMM)

What Does the Capability Maturity Model (CMM) Do?[5]
The Capability Maturity Model (CMM) is a way to develop and refine an organization's processes. The first CMM was for the purpose of developing and refining software development processes. A maturity model is a structured collection of elements that describe characteristics of effective processes. A maturity model provides:

  • a place to start
  • the benefit of a community’s prior experiences
  • a common language and a shared vision
  • a framework for prioritizing actions
  • a way to define what improvement means for your organization

A maturity model can be used as a benchmark for assessing different organizations for equivalent comparison. It describes the maturity of the company based upon the project the company is dealing with and the clients.


More on The Capability Maturity Model (CMM)

  • It is not a software process model. It is a framework which is used to analyze the approach and techniques followed by any organization to develop a software product.
  • It also provides guidelines to further enhance the maturity of those software products.
  • It is based on profound feedback and development practices adopted by the most successful organizations worldwide.
  • This model describes a strategy that should be followed by moving through 5 different levels.
  • Each level of maturity shows a process capability level. All the levels except level-1 are further described by Key Process Areas (KPA’s).[6]


Operational Uses Of The CMM

Operational Uses Of The CMM[7]
The CMM as a framework represents a path of improvement recommended for application development organizations that want to increase their software process capability. It is designed to support at least one of the following four operational uses:

  • Assessment teams can identify strengths and weaknesses in the organization
  • Evaluation teams can identify the risks of selecting from among different contractors for awarding business and to monitor contracts
  • Managers and staff can understand the activities necessary to plan and implement software process improvement for their organization (most software organizations fall here)
  • Process improvement groups can use it as a guide to help them define and improve the software process in their organization


Existing Maturity Models[8]

Ludden (2004) opines that CMM has been reused for the development of many other maturity models in many fields including project management. According to Cooke, Schlichter and Bredillet (2001), to date there are estimated to be over 30 maturity models currently serving the market place. Rosenstock, Johnson and Anderson (2000) listed 23 capability maturity model resources that covered quality and project management. Currently there are approximately 40 different Maturity Models in circulation and each address a specific aspect of the organization. The list below has been taken from Copeland (2003) and have since been updated to specially highlight nine maturity models related to project management. It follows:

  • Capability Maturity Model Integration (CMMI)
  • Capability Maturity Model for Software (SW-CMM)
  • People Capability Maturity Model (P-CMM)
  • Software Acquisition Capability Maturity Model (SA-CMM)
  • Software Engineering Capability Maturity Model (SE-CMM)
  • Integrated Product Development Capability Maturity Model (IPD-CMM)
  • IT Service Capability Maturity Model (IT Service CMM)
  • Organizational Project Management Maturity Model (OPM3®®)
  • Project Management Maturity Model (PMMM) by Harold Kerzner
  • Project Management Maturity Model (PMMM) by Jim K. Crawford
  • Cultural Project Management Effectiveness Model (CPMEM) by PMGS
  • PM2 Maturity Model
  • Project Management Process Maturity Model (PM)2M
  • Programme Management Maturity Model
  • Project Risk Maturity Model (RMM)
  • Earned Value Management Maturity Model (EVM3)
  • Broccoli Maturity Model
  • Services Maturity Model
  • Self-Assessment Maturity Model (SAMM)
  • Testing Maturity Model (TMM)
  • Web Services Maturity Model
  • Security Maturity Model (SMM)
  • Operations Maturity Model
  • e-Learning Maturity Model
  • eGovernment Maturity Model
  • Outsourcing Management Maturity Model
  • Change Proficiency Maturity Model
  • Performance Engineering Maturity Model
  • IT Architecture Maturity Model
  • Information Process Maturity Model
  • Learning Management Maturity Model (LM3)
  • Automated Software Testing Maturity Model
  • Website Maturity Model
  • Internet Maturity Model
  • Usability Maturity Model
  • Software Reliability Engineering Maturity Model
  • System Security Engineering Capability Maturity Model
  • Configuration Management Maturity Model


Capability Maturity Model Benefits

The Advantages of Using Capability Maturity Model[9]

Benefits to using a process improvement framework such as the CMM have been identified by numerous researchers, both academic and professional, and would include:

  • More accurate identification of flaws in process development operations
  • Reduction in cost of software development or management of data as a resource
  • Increase in productivity from software development and / or data management professionals (staff and contractors)
  • Reduction in post-release defects and essential enhancements
  • Reduction in time-to-market for implementation

The CMM is intended to be a cohesive, coherent, ordered set of incremental improvements, all relating to experienced success in the field, and packaged into a framework that demonstrates how effective practices can be built on one another into a logical and repeatable progression. Far from a “quick fix,” successful use of the CMM requires attention to detail, support, and participation from senior management and a rational approach to all aspects of software development or data management, and implementation.


Limitations of Capability Maturity Model (CMM)

The Disadvantages of Capability Maturity Model[10]
The Capability Maturity Model does come with some drawbacks.

  • One of which is that when organizations use CMM, they look at each level as a target. They make their goal to reach the next level up. This can be a dangerous thought because if you become fixated on reaching the next level, you begin to lose perspective and forget that the real goal is to actually improve the processes.
  • Similarly the CMM does not specify a particular way of achieving those goals. In order to achieve them one needs to think in a flexible way. The goals will only be achieved if the organizations processes are taken into account, as each organization is different so the steps needed for process improvement will be different. Just because one organization follows the rules set by the CMM it does not guarantee that it will be successful as there are other factors involved.
  • Another disadvantage is that CMM only helps if it is put into place early in the software development process. For example, if there is a process that is in a crisis then CMM will not help overnight. It cannot be used as an emergency method of recovering from a difficult position.
  • Finally, CMM is concerned with the improvement of management related activities. Whilst this is a big issue in the software development process it is not necessarily the most important thing to look at. Improved quality of code may be a vital issue in the context of software.


See Also


References

  1. Defining Capability Maturity Model (CMM) TryQA
  2. What are the components of the CMM? [1]
  3. The Capability Maturity Model (CMM) Levels ISTBQ
  4. Historical Background of Capability Maturity Model (CMM) Wikipedia
  5. An Explaining the Capability Maturity Model (CMM) SelectBS
  6. What is the The Capability Maturity Model (CMM)? Geeks for Geeks
  7. What are the Operational Uses Of The CMM? Codeweek
  8. What are the Various Existing Maturity Models? PMI.Org
  9. What are the Advantages of Using Capability Maturity Model? EW Solutions
  10. What are the Disadvantages of Capability Maturity Model Hardeep Atwal


Further Reading