Origins of CMM
The capability maturity model (CMM) is an assessment model developed by the Software Engineering Institute at Carnegie Mellon University in 1990, to ascertain the process maturity levels in the software.
The model describes five levels of best engineering and management practices based on data collected from various industries. Organizations looking for solutions to manage projects aim to attain CMM certification by compliance with the CMM level closest to their level of process maturity.
Challenged Faced During CMM Implementation
CMM became popular as it allowed software companies attain process consistency, predictability, and reliability. However, the implementation of CMM led to many hurdles.
- Lack of Integration: CMM has separate models for each function. Such models often overlap, contradict, and display different levels of maturity. This lack of standardization leads to confusion and conflict during the implementation phase and increase training and appraisal costs.
- Limitations of KPA: The “Key Performance Areas (KPA),” that define CMM levels focus on “policing” activities such as specifications, documentation, audits, and inspections, and do not reveal architecturally significant flaws.
- Activity-based Approach: CMM is an activity-based approach that considers only the completion of a specific activity, and not whether the completed activity achieved the desired results.
- Paperwork: CMM places great importance on paperwork and meetings that take management’s time and effort away from actual work processes. CMM traps the organization in recording and complying with processes, often at the cost of strategic goals.
CMMI: An Integrated Approach
The Software Engineering Institute at Carnegie Mellon University developed Capability Maturity Model Integration (CMMI) in 2006 to integrate and standardize the separate models of CMM, and to eradicate other drawbacks of CMM.
CMMI documents industry best practices categorized on separate areas of interests rather than separate functions. Organizations choose from any of the 22 available models depending on the business objectives, and each model covers all the functional areas.
CMMI vs CMM KPA
Both CMM and CMMI define five distinct levels of process maturity based on Key Performance Areas (KPA’s). The KPA’s of CMMI levels overcome the inefficiency of CMM levels to unearth significant architectural flaws.
- Level 1 (Initial): The first level of both CMM and CMMI describes an immature organization without any defined processes, run in an ad hoc, uncontrolled, and reactive manner.
- Level 2 (Repeat): Organizations that repeat some processes attain Level 2 CMM. Level 2 of CMMI however requires management of organizational requirements through planned, performed, measured, and controlled processes.
- Level 3 (Defined): CMM Level 3 mandates a set of documented standard processes to establish consistency across the organization. CMMI Level 3 is an improvement of CMMI Level 2 and describes the organizational processes in standards, procedures, tools, and methods.
- Level 4 (Manage): CMM Level 4 requires organizations to attain control over processes by using quantitative statistical techniques. CMMI Level 4 demands likewise, but also identifies sub processes that significantly contribute to overall process efficiency.
- Level 5 (Optimized): CMM Level 5 mandates use of quantitative tools and objectives to manage process improvement. CMMI Level 5 on the other hand focuses on continuously improving process performance through incremental and innovative technological improvements.
While CMM is a certification tool, CMMI is not. An organization is appraised and awarded a CMMI Rating from 1 to 5 depending on the extent to which the organization adopts the selected CMMI model.
Differences in Approach
CMM measures the maturity level of an organization by determining if an organization completes the specific activities listed in the Key Performance Areas (KPA), oblivious to whether the completion of such activity leads to the desired result. CMMI is also an activity based approach but the major difference is that CMMI takes a more result-oriented approach when defining and measuring Key Performance Areas.
CMM KPA concentrates on the completion of specific tasks or processes and does not motivate the organization to focus on process architecture. CMMI, on the other hand has an iterative lifecycle that integrates the latest best practices from the industry and attacks risks in process architecture at an early stage.
CMMI supersedes CMM in software development processes, but CMM is still relevant and appropriate for sequential, activity-based management paradigm.
Both CMM and CMMI give importance to paperwork and meetings that distract management’s time and effort from actual work process. CMM is however concerned at recording processes whereas CMMI documentation and meetings focus on strategic goals of the organizations.
CMM has focused attention on processes, but the new CMMI goes a step further and focus attention on result-oriented processes.
Software Engineering Institute. Carnegie Mellon.
Royce, Walker. CMM vs. CMMI: From Conventional to Modern Software Management. Retrieved from https://w3.nada.kth.se/~karlm/CMMI.pdf. Retrieved on 19 April 2010.
Image source: NASA/Wikimedia Commons