Capability Maturity Model
• CMM designed to determine capacity of contractors.
• Based on the idea that the software development process (SDP) used by contractors is the critical factor.
• Assumes that to the extent that the SDP has certain properties to that extent the contractor has superior capacity.
Methodological Questions
• What properties should a SDP have?• How is it determined that a SDP should
have these properties?• How is it determined that a process with
these properties results in a greater capacity?
Answer: Articulation, measurement, control, feedback.
Perspectives on CMM
• As a model of the capability maturity of SDOs.
• As a methodology for determining the maturity level of SDOs.
• As a model of software development process improvement.
• As a methodology for determining whether a software development process has improved.
CMM as a model of the capability maturityof software development organizations
Five Levels of MaturityOptimizing
Process controlManaged
Process measurement
Defined
Process DefinitionRepeatable
Basic management control
Initial
Initial Level
• Initial: Ad hoc, chaotic, no formalized commitment mechanisms, lax change control, little senior management involvement, project management mechanisms not enforced, most of the emphasis is on technical issues; heroes needed.
Repeatable Level
• Emphasis on managerial and organizational issues as well as technical issues.
• Considerable commitment control.• SDP articulated in terms of specific
experiences.• Lacks a general SDP independent of
specific people, tools, experiences, etc.
Defined Level
• The SDP is articulated independent of specific projects, persons, tools, etc.
• Provides a foundation for continuing progress by determining the effectiveness of the process.
• No mechanisms for gathering quantitative data.
Managed Level
• Focus shifts from managing and defining the process and producing the product to gathering quantitative data.
• Sub-processes are identified and their inter-relationships studied and managed as they change.
• Greater understanding of the effects of changes in the process.
Optimizing Level
• Emphasis on tuning the process using quantitative measures.
• Continuos process improvement using quantitative feedbacks and testing new ideas and technologies.
• Organization moves from process improvement to process management.
Initial to Repeatable
KPA Purpose of KPAReq. Mgmt. Establish common understanding
of req.sProject Planning Establish plans for executing and
managing projectProject trackingand oversight
Provide management insight intoproject progress
Subcontract mgmt. Select and manage subcontractorsQuality assurance Provide management insight into
the process and the productConfigurationmgmt.
Establish and maintain integrity ofthe product throughout the cycle
Repeatable to DefinedOrg. processfocus
Establish org. responsibilities forSPI activities
Org. processdefinition
Develop, maintain soft. processassets usable across projects
Training program Develop skills, knowledge ofindividuals usable across projects
Integrated softwaremgmt.
Integrate eng. & mgmt. activitiesinto a coherent, defined process
Product eng. Consistently perform theintegrated process
Intergroupcoordination
Establish a means for the soft.Eng. Group to meet with othereng. groups
Peer reviews Remove defects early, efficiently
Defined to Managed
KPA Purpose of KPA
Quantitativeprocess mgmt.
Control the process performance ofthe project quantitatively
Soft. Qualitymgmt.
Develop a quant. understanding ofthe products and achieve specificquality goals.
Managed to Optimizing
KPA Purpose of KPA
Defect Prevention To identify and prevent the causesof defects.
Tech. changemgmt.
Identify & incorporate beneficialnew technologies.
Process changemgmt.
Continually improve the process
KPA and KPsAssociated with each KPA are some key practices whichsupport the KPA. 150-360 KPs.
Example:
KPA KPsRequirements mgmt. 1. Allocate requirements
2. Design system based on requirements
3. Manage requirements change
Common features of KPAs
Each KPA has five common features
• Goals (Example from req. mgmt.) • Commitment to perform• Ability to perform• Activities performed• Measurement and analysis• Verification of Implementation
CMM as a methodology for determiningthe maturity level of a
software development organization
Evaluation Process
• Software Process Assessment (SPA) initiated by SDO to help improve its practices.
• Software Capability Evaluation (SCE) typically conducted by an outside organization.
• Both use a yes/no questionnaire.
Software Process Assessment• Selection phase: exec. level briefing.• Commitment phase: Organization commits to
the assessment process• Preparation phase: planning, training,
questionnaire• Report phase: final report, including
recommendations, is presented • Follow-up phase: Action plan formulated
with reassessment after 18 months
Software Capability Evaluations
• Done entirely by an outside organization• First, maturity questionnaire completed• Second, eval. team selects representative
practices for further examination • Org. personnel interviewed and related
documents examined.• Each practice is scored and the average
determines org.’s capability level
SPA and SCESCESPA
• Used by for selection & contract monitoring
• Results to org. & acquirer• Substantiate current practice• Used to determine contract
performance potential• Independent evaluation• Applies to performance for
particular contract
• Used by org. to improve process
• Results to org. only• Assess current practice• Used for process
improvement• Collaborative• Applies to overall org.
SCA, SCE Details
• Both are done from bottom-up level.• Which KPs are examined depends on the
maturity level assessed or evaluated.• No other KPs are used in the maturity level
determination. • 4 if KP’s performance is at least 80% satisfied,
3 if less than 80% satisfied.• Scores averaged and must be > 80% to pass
that level.
CMM as a model of SPI and a methodology fordetermining improvements in a software
development process.
Software Process Improvement
Typically, this means
• A methodology for assessing the SDP of an organization
• Identification of areas of improvement• Recommendation of an action plan• Re-assessment after a specified period of
time
Modeling SPI• Process improvement is a transition from
one type of process to another type of process.
• The transition is itself a type of process--a meta-process.
• Only some transitions are improvements. How is it determined which transitions are improvements? (Improvement determination methodology--IDM)
CMM as a SPI model
• Each level classifies a type of SDP. ---Coarse grain vs. fine grain
• Transitions between process types are given by KPAs, KPs, and action plans.
• IDM--uses best practices, risk management, and quality measurement feedback loops.
Modeling Processes with Improvements
How should software processes be modeled so thatthey can include management, measuring, and monitoring activities?
Graph Model of Process Improvement Process
• Process types can be modeled as nodes in an implicit directed graph
• A (directed) edge between a node P1 to P2 if some process changing activities can transform P1 into P2
• Only some paths in the graph will be process improvements path.
• What counts as a process improvement path?
Improvement Determination Methodologies
• Types of practices known to improve SDP (e.g., requirements change management, configuration management)
• Risk mitigation practices (making process independent of specific tools, personnel, etc.)
• Empirical measurement, feedback, and adjustment practices
IDM in CMM
• Leve l to Level 2: Uses “best practices” to justify it as an improvement.
• Level 2 to Level 3: Uses risk mitigation to justify it as an improvement.
• Level 3 to Level 5 (via Level 4): Uses empirical justifications.