Title: Introduction to the Capability Maturity Model
1Introduction to the Capability Maturity Model
2SEI Software Process
- Mission Provide leadership in assisting
software organizations to develop and
continuously improve their capability to
identify, adopt, and use sound management and
technical practices. - Capability Maturity Model (CMM) A project
started by SEIs Software Process Program to
achieve its mission.
3What is the CMM?
- The CMM is a framework that described the key
elements of an effective software process. - The CMM guides software organizations striving to
gain control of their processes for developing
and maintaining software, evolve toward a
software engineering culture, and management
excellence. - The CMM describes an evolutionary improvement
path for software organizations from an ad hoc,
immature process to a mature, disciplined one.
4Immature vs. Mature Software Organizations
- Immature
- No objective basis for judging product quality
- Activities that enhance qualities are curtailed
when the project falls behind on schedule - Mature
- Well-planned and communicated process of managing
and maintaining software - Mandated processes are documented, usable,
updated and consistent - Realistic estimates (cost and time) and active
involvement by everyone
5Process Holding the pieces together
B
A
D
C
Procedures and methods defining the relationship
of tasks
Process
Tools and Equipment
People with skills, training and motivation
6TQM and CMM
Organization
Project A
Project B
Project C
TQM
Project X System
Hardware
CMM
Software
7Software Process Maturity CMM Levels of
Maturity
OPTIMIZING 5
Continuously improving process
MANAGED 4
Predictable process
DEFINED 3
Standard, consistent process
REPEATABLE 2
Disciplined process
INITIAL 1
8CMM Levels of Maturity
- Initial
- The Software process is characterized as ad hoc,
and occasionally even chaotic. Few processes are
defined, and success depends on individual effort
and heroics. - Repeatable
- 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 - Defined
- The software process for both management and
engineering activities is documented,
standardized, and integrated into a standard
software process for the organization. All
projects use an approved, tailored version of the
organizations standard software process for
developing and maintaining software
9CMM Levels of Maturity(contd.)
- Managed
- Detailed measures of the software process and
product quality are collected. Both the software
process and products are qualitatively understood
and controlled - Optimizing
- Continuous process improvement is enabled by
quantitative feedback from the process and from
piloting innovative ideas and technologies
10CMM Prediction of performance
PROCESS
11CMM Prediction of performance (contd.)
PEOPLE
12CMM Prediction of performance (contd.)
TECHNOLOGY
MEASUREMENT
13CMM Prediction of performance (contd.)
MEASUREMENT
14Why CMM?
- Assessment teams will use CMM to identify
strengths and weaknesses in the organization. - Evaluation teams will use the CMM to identify the
risks of selecting among different contractors
for awarding business and to monitor contracts. - Appraisal method developers will use CMM to
develop other CMM-based appraisal that meet
appraisal methods that meet specific needs - Upper Management will use the CMM to understand
the activities necessary to launch a software
process improvement program in their
organization. - Technical Staff and process improvement groups,
such as an SEPG, will use the CMM as a guide to
help them define and improve the software process
in their organization.
15The CMM Structure
Maturity Levels
Contain
Indicate
Key process areas
Process capability
Achieve
Organized by
Common features
Goals
Contain
Address
Key practices
Implementation or institutionalization
Describe
Activities or infrastructure
16Benefits and Risks of a Model-based Framework
- Benefits
- It establishes a common language for talking
about the software process and defines a set of
priorities for attacking software problems. - A Measurement framework provides an objective
means of industry-wide comparisons. - This builds on a a set of practices that have
been developed in collaboration with a wide range
of practitioners Common Sense Engineering - It is a conceptual structure for improving the
management and development of software products. - Risks
- Models are simplifications of the real world they
represent, and not an exhaustive description. - Not a silver bullet.
17Summary
- The CMM is expressed in terms of a highly
structured environment of a large, complex
software project. - The CMM is not a checklist that can be used in
the same way in all environments. - Both maturity and effectiveness should be
interpreted in the context of the business
environment and the specific circumstances of the
project and the organization.
18Summary (contd.)
- The CMM emphasizes the process of making an
informed, reasoned decision about what the
appropriate technologies are for a specific need
(not what). - The CMM focuses on process management rather than
people issues, but this does not imply that HR is
not important. - The CMM directly addresses the people dimension
only in training.
19A High Maturity Example Space Shuttle Onboard
Software
- To satisfy NASAs requirement for software that
meets the highest safety and reliability
standards, the project evolved a software process
that yields a highly predictable quality result. - Result NASA recently awarded the 10-year
follow-on contract to the project without
competitive bidding.
20References
- The SEI website
- http//www.sei.cmu.edu/publications/documents/94.r
eports/94.tr.012.html - http//www.sei.cmu.edu/cmm/cmm.articles.html
- The Capability Maturity Model
- Guidelines for improving the Software Process
- Carnegie Mellon University, SEI