Software Capability Maturity Model (CMM)
The Capability Maturity Model (CMM)
It has long been accepted that continuous process improvement is based on many small evolutionary steps rather than larger revolutionary innovations. The Capability Maturity Model (CMM) provides a framework for organising these evolutionary steps into five maturity levels that lay successive foundations for continuous process improvement.
This methodology is at the heart of most management systems which are designed to improve the quality of the development and delivery of all products and services.
The Five Maturity Levels
The five maturity levels define a scale for measuring the maturity of an organisation’s software process and for evaluating the capability of these processes. They also help an organisation prioritise its improvement efforts.
A maturity level is a well-defined evolutionary plateau toward achieving a mature software process.
Each maturity level comprises a set of process goals that, when satisfied, stabilise an important component of the process. Achieving each level of maturity framework establishes a different component in the software process, resulting in an increase in the process capability of the organisation.
The five Software Capability Maturity levels have been defined as:
The software process is characterised as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics.
Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
The software process for both management and engineering activities is documented, standardised, and integrated into all processes for the organisation. All projects use an approved version of the organisation’s standard software process for developing and maintaining software.
Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
Capability Maturity Model Integrated (CMMI)
CMMI is the successor to CMM and combines a number of maturity models into one integrated capability maturity model. Developed by the Software Engineering Institute of Carnegie Mellon University, CMMI can be used to guide process improvement across a project, a division, or an entire organisation.
CMMI currently addresses three areas of interest:
- Product and service development — CMMI for Development (CMMI-DEV)
- Service establishment, management, and delivery — CMMI for Services (CMMI-SVC)
- Product and service acquisition — CMMI for Acquisition (CMMI-ACQ)
The Five Levels of the Capability Maturity Model Integrated (Carnegie Mellon 1999)
- Software Project Planning
- Software Planning & Oversight
- Software Subcontract Management
- Software Quality Management
- Software Configuration Management
- Requirements Management
- Organisation Process Focus
- Organisation Process Definition
- Peer Reviews
- Training Programme
- Intergroup Coordination
- Software Product Engineering
- Integrated Software Management
Product & process quality
- Software Quality Management
- Quantitative Process Management
- Process Change Management
- Technology Change Management
- Defect Prevention
What is the difference between CMMI and CMM?
The CMMI structure and the Software CMM structure are similar with respect to maturity levels, key process areas, goals (divided into specific and general goals in CMMI), and practices.
A big difference however is that CMMI offers two representations of the maturity of the processes. CMMI offers a staged representation with five maturity levels just like the Software CMM and a continuous model where each process area has its own maturity level.
An organisation cannot be certified in CMMI; instead, an organisation is appraised. Depending on the type of appraisal, the organisation can be awarded a maturity level rating (1 to 5) or a capability level achievement profile.
The traditional approach that organisations often adopt to achieve compliance with CMMI involves the establishment of an Engineering Process Group (EPG) and Process Action Teams (PATs). This approach requires that members of the EPG and PATs be trained in the CMMI, that an informal (SCAMPI C) appraisal is performed, and that process areas be prioritised for improvement.
Service Capability Maturity Model (CMM)
The original Capability Maturity Model (CMM) was originated to meet the needs of improving and managing the quality of the services in any organisation. Understanding the CMM model is fundamental to any long term service improvement strategy.
ISO 15504 - SPICE
The international standard ISO/IEC 15504, which is also known as SPICE (Software Process Improvement and Capability Determination), provides a framework for the assessment and improvement of software development processes. It is derived from the process lifecycle standard ISO12207 and from maturity models such as Bootstrap, Trillium and the Capability Maturity Model Integrated (CMMI). While SPICE and CMMI are very similar frameworks, SPICE has the advantage of being a published standard, publically available and fully supported by the international community. Over 4,000 assessments have been performed to date and the standard has been widely adopted in the automotive, space and medical industries.