Capability Maturity Model
Reflection Have you ever been a part of, or observed, a “difficult” software development effort? How did the difficulty surface? What made it difficult? How was the difficulty addressed? Was the difficulty addressed?
The “Typical” Development Problem The system is Late Over cost Lacking full functionality Doesn’t meet specifications
Characteristics of Immature Development No general understanding of the process or how a specific activity fits Not documented Not disseminated No faith in the process “I have to take care of everything” No measurement of efficiency or effectiveness No way to judge success No way to address problems No way to clearly identify needs e.g., infrastructure for development
Characteristics of Immature Development Grab the FIRE HOSE Reactionary A lack of control
Control Required Elements: A well-defined goal state A correct picture of the current state An ability to compare the two states An ability to draw a valid conclusion based upon the comparison An ability to design appropriate change An ability to implement the change Absence of any one element restricts control
Characteristics of Mature Development Processes are known Responsibilities are clear Players have confidence in the process framework They are disciplined
From Whence CMM Came? Carnegie Mellon University chosen by US government to head effort to improve software and systems development Note: CMM seeks to improve the development PROCESS not the product of the process
Software Engineering Institute Established by the US government (DoD) Housed at Carnegie Mellon University See “Its core purpose is to help organizations improve their software engineering capabilities and develop or acquire the right software, defect free, within budget and on time, every time.”
CMMI Institute Oversight of CMMI transferred to the CMMI Institute Still housed at CMU For more information, see
From Whence It Came? Watts Humphrey, formerly of IBM, at the forefront Deming’s Total Quality Management
TQM The application of quantitative methods and human resources to improve the materials and services provided as inputs to an organization and to improve all of the processes within the organization
Where Does the Customer Fit? CMM sees the client in a contractual relationship, a part of the process User satisfaction is not THE direct, stated goal of CMM IS that expectation reasonable?
Pillars of the CMM Model Based on actual practices Reflects the best state of the practices Reflects needs of individuals performing software process improvement and software process appraisals Documented Publicly available
Some Definitions Process Sequence of steps to accomplish a given purpose Software process Set of activities, methods, practices and transformations used to develop and maintain software
Some Definitions Software process capability Range of anticipated results from the process Software process performance Actual results achieved through applying the process Software process maturity Degree to which the process is Defined Managed Measured Controlled Effective
CMM Addresses... Processes How they exist and are changed People Attitudes toward and involvement in the process and its structure Technology Why and how technology is introduced to support the process Measurement How data about the process and product are obtained and used
CMM Models Continuous Model Focuses on individual process areas Reflected in “capability” levels Useful for internal improvement Staged Model Focuses on the entire model Reflected in “maturity” levels Applicable with external appraisals
Maturity Levels A specified stage in moving toward a “mature software process” An indicator of maturity, an organization’s capability to produce software in an organized and predictable manner allowing for improvements to the development process A status symbol?
The CMM for Software (SW-CMM) The Five Maturity Levels Initial Repeatable Defined Managed Optimizing
The CMM for Software (SW-CMM) From The Capability Maturity Model: Guidelines for Improving the Software Process
Initial Level One Software process is Ad hoc Chaotic Undefined Tied to individual standards
The CMM for Software (SW-CMM) From The Capability Maturity Model: Guidelines for Improving the Software Process
Repeatable Level Two Processes track cost, schedule and functionality Can repeat the process on a like development project
The CMM for Software (SW-CMM) From The Capability Maturity Model: Guidelines for Improving the Software Process
Defined Level Three Processes for engineering AND management are Documented Standardized Integrated ALL processes follow the standard, that has been tailored to the organization, for development and maintenance
The CMM for Software (SW-CMM) From The Capability Maturity Model: Guidelines for Improving the Software Process
Managed Level Four Detailed measures are collected for The development/maintenance process The quality of the software product Process and product control is based on quantitative analysis of measurement results For a survey of software assurance measurement, see 013_004_001_72891.pdf 013_004_001_72891.pdf
The CMM for Software (SW-CMM) From The Capability Maturity Model: Guidelines for Improving the Software Process
Optimizing Level Five Improvement is continuous through ongoing feedback and modification of the process New ideas and technologies are explored and evaluated through measurements
Management View Improves From The Capability Maturity Model: Guidelines for Improving the Software Process
Progress Through Levels Progress through levels should be linear Skipping a level is difficult e.g., it is difficult to measure and compare against a standard (level 4) unless the standards have been identified (level 3) Specific exploratory use of a higher level may give insight into the migration path through the levels, but it will be difficult without a firm underlying foundation
The Structure of CMM Maturity Levels Indicate process capability Contain Key Process Areas Achieve Goals Organized by Common Features Address implementation or institutionalization Contain Key Practices Describe activities of infrastructure
From Capability Maturity Model for Software, Version 1.1 – Fig 3.3 An example of the structure of CMM
Expected Results of CMM Improved predictability Time, cost, people, Improved control Improved effectiveness (quality)
Expected Results of CMM From The Capability Maturity Model: Guidelines for Improving the Software Process
CMMI(ntegrated) CMM, as a foundation, is now applied to different organizational processes: CMMI-Software Engineering (SW) Developing software systems Systems Engineering (SE) Systems which may or may not involve software
CMMI(ntegrated) CMM, as a foundation, is now applied to different organizational processes: Integrated Product and Process Development (IPPD) An extension of other selected approach(es) with emphasis on integration with other processes Supplier Sourcing (SS) When project development incorporates suppliers into the project
CMMI(ntegrated) These areas are now placed in three categories: CMMI-DEV engineering and development processes in an organization that develops products CMMI-SVC management and service delivery processes CMMI-ACQ supplier management processes
CMMI As different CMM models were developed for these areas, CMMI integrates the models into one common structure CMMI varies from CMM
Comparison of Levels CMM Initial Repeatable Defined Managed Optimizing CMMI Initial Managed Defined Quantitatively managed Optimizing
CMM / CMMI An extensive mapping of components between the models is availableextensive mapping
Assessing Your Level SCAMPI – Standard CMMI Appraisal Method for Process Improvement Assessments may be done internally or by an external SCAMPI Lead Appraiser SEI provides training to become a Lead Appraiser
Where Do Organizations Stand? See annual profiles of organizations seeking SCAMPI appraisals at maturity-profiles/ maturity-profiles/
Criticisms of CMM/CMMI CMM is not comprehensive enough Does not address reuse Does not completely describe the real development world High cost to progress through CMM There is a risk of failure (no ROI) May lead to bureaucratic rigidity Capable and Mature? By Gary H. Anthes, ComputerWorld, Dec 15, 1997
Support for CMM Establishes a common framework for addressing the software development process Provides an object assessment method of an organization’s development process Is based upon substantial experiences by a variety of organizations
The Complete Picture For the complete description of CMMI- DEV, see /10tr033.pdf /10tr033.pdf