Capability Maturity Model
Download
Report
Transcript Capability Maturity Model
Capability Maturity Model (CMM)
For Software
Prologue
Capability Maturity Models® (CMMs®) assist
organizations in maturing their people, process,
and technology assets to improve long-term
business performance
CMMs developed by the Software Engineering
Institute (SEI)
–
–
–
–
–
7/16/2015
Software CMM
People CMM
Software acquisition CMM
Systems Engineering CMM
Integrated Product Development CMM
CRISP
2
CMM for Software
The Capability Maturity Model for Software (SWCMM) - a model for
– judging the maturity of the software processes of an
organization
– identifying the key practices that are required to
increase the maturity of these processes
– assessing and improving software processes
7/16/2015
CRISP
3
Let us understand –
A Process
A Software Process
Software Process Capability
Software Process Performance
Software Process Maturity and
Maturity Level
7/16/2015
CRISP
4
Process & Software Process - Defined
A process is – "a system of operations in producing something ... a
series of actions, changes, or functions that achieve an
end or result”
– "a sequence of steps performed for a given purpose"
[IEEE-STD-610]
A software process is – a set of activities, methods, practices, and
transformations that people use to develop and maintain
software and the associated products (e.g., project
plans, design documents, code, test cases, and user
manuals)
7/16/2015
CRISP
5
Software Process Capability - Defined
Software process capability
– describes the range of expected results that can be
achieved by following a software process
– provides one means of predicting the most likely
outcomes to be expected from the next software project
the organization undertakes
7/16/2015
CRISP
6
Software Process Performance Defined
Software process performance
– represents the actual results achieved by following a
software process
– focuses on the results achieved, while software process
capability focuses on results expected
– Based on the attributes of a specific project and the
context within which it is conducted, the actual
performance of the project may not reflect the full
process capability of the organization; i.e., the
capability of the project is constrained by its
environment
7/16/2015
CRISP
7
Software Process Maturity - Defined
Software process maturity is the extent to which a
specific process is explicitly defined, managed,
measured, controlled and effective
Maturity implies a potential for growth in
capability and indicates both the richness of an
organization's software process and the
consistency with which it is applied in projects
throughout the organization
7/16/2015
CRISP
8
Maturity Level - Defined
A maturity level – is a well-defined evolutionary plateau towards
achieving a mature software process
– provides a layer in the foundation for continuous
process improvement
– comprises a set of process goals that, when satisfied,
stabilize an important component of the software
process
– When achieved establishes a different component in the
software process, resulting in an increase in the process
capability of the organization
7/16/2015
CRISP
9
Organizing CMM into Five Maturity
Levels
Initial
– Software process characterized as ad hoc and
occasionally even chaotic
– Few processes defined and success depends on
individual effort and heroics
Repeatable
– Basic project management processes established to
track cost, schedule, and functionality
– The necessary process discipline in place to repeat
earlier successes on projects with similar applications
7/16/2015
CRISP
10
Five Maturity Levels
Defined
– The software process for both management and
engineering activities documented, standardized, and
integrated into a standard software process for the
organization
– All projects use an approved, tailored version of the
organization's standard software process for developing
and maintaining software
7/16/2015
CRISP
11
Five Maturity Levels
Managed
– Detailed measures of the software process and product
quality collected
– Both the software process and products are
quantitatively understood and controlled
Optimizing
– Continuous process improvement enabled by
quantitative feedback from the process and from
piloting innovative ideas and technologies
7/16/2015
CRISP
12
SW-CMM Levels
7/16/2015
CRISP
13
Behavioral Characteristics – Level 1
(Initial)
Organization
Does not provide a stable
environment for developing
and maintaining software
Has ineffective planning
Lacks sound management
practices
Has
reaction
driven
commitment system
7/16/2015
Project
Typically
abandons
planned procedures & revert
to coding and testing
Success entirely depends
on having an exceptional
manager & an effective team
CRISP
Process Capability
Is
unpredictable
as
software process undergoes
constant change (ad hoc)
Schedules,
budgets,
functionality & product
quality
generally
unpredictable
Software
process
performance dependent on
individual
rather
than
organizational capability
14
Behavioral Characteristics – Level 2
(Repeatable)
Organization
Has established policies for
managing software projects &
procedures to implement those
policies
Planning & managing new
projects based on experience
with similar projects
7/16/2015
Project
Has
basic
software
management controls installed
Realistic commitments based
on the results observed in
previous projects & requirements
of the current project
Project cost, schedule &
functionality properly tracked
Software
requirements &
products base lined
Project Standards defined &
followed
CRISP
Process Capability
Disciplined, due to stable
planning & tracking of
software project & earlier
successes can be repeated
Project’s
process under
effective control of Project
Management
System,
following realistic plans based
on the performance of
previous projects
15
Behavioral Characteristics – Level 3
(Defined)
Organization
Standard
process
for
developing and maintaining
software across the organization
documented
This
standard
process
referred to throughout the CMM
as the organization's standard
software process
A Group made responsible
for the organization’s software
process activities
training
program
implemented, thru’ out the
organization to ensure that the
staff and managers have the
knowledge and skills required to
fulfill their assigned roles
7/16/2015
Project
Process Capability
Tailors the organization's
standard software process to
develop its own defined software
process, which accounts for the
unique characteristics of the
project
The tailored process referred
to in the CMM as the project's
defined software process that
contains a coherent, integrated
set of well-defined software
engineering and management
processes
CRISP
based on a common,
organization
wide
understanding of the activities,
roles, and responsibilities
in a defined software process
Standard & consistent, as
both software engineering &
project management activities
consistent and stable
Within established product
lines, cost, schedule &
functionality under control and
software quality properly
tracked
16
Behavioral Characteristics – Level 4
(Managed)
Organization
Quantitative quality goals for
both software products and
processes established
Productivity and quality
measured
for
important
software
process
activities
across all projects as part
of
an
organizational
measurement program
Software process database
used to collect and analyze the
data available from the projects'
defined software processes
7/16/2015
Project
Process Capability
Achieve control over their
products and processes by
narrowing the variation in their
process performance to fall
within acceptable quantitative
Boundaries
Risks involved in moving up
the learning curve of a new
application domain known and
carefully managed
CRISP
Predictable because the
process is measured and
operates within measurable
limits
Allows an organization to
predict trends in process and
product quality within the
quantitative bounds of these
limits
When
these
limits
exceeded, action is taken to
correct the situation
Software
products
of
predictably high quality
17
Behavioral Characteristics – Level 5
(Optimizing)
Organization
Focused on continuous
process improvement
Has the means to identify
weaknesses and strengthen the
process proactively, with the
goal
of
preventing
the
occurrence of defects
Data on the effectiveness of
the software process used to
perform cost benefit analyses of
new technologies and proposed
changes to the organization's
software process
7/16/2015
Project
Process Capability
Defects
in
software
processes analyzed for their
causes
Software
processes
evaluated to prevent known
types
of
defects
from
recurring, and lessons learned
disseminated to other
projects
CRISP
characterized
as
continuously
improving
because
Level
5
organizations continuously
strive to improve the range
of their process capability,
thereby improving
the process performance of
their projects
Improvement
occurs
both
by
incremental
advancements
in
the
existing process and by
innovations
using
new
technologies and methods.
18
Key Process Areas
Each maturity level, except for Level
decomposed into several key process areas
1,
– that indicate the areas an organization should focus on
to improve its software process
– identify the issues that must be addressed to achieve a
maturity level
– identify a cluster of related activities that, when
performed collectively, achieve a set of goals
considered important for enhancing process capability
7/16/2015
CRISP
19
Key Process Areas – Level 2
(Repeatable)
Requirements management
Software project planning
Software project tracking and oversight
Software subcontract management
Software quality assurance
Software configuration management
7/16/2015
CRISP
20
Key Process Areas – Level 3 (Defined)
Organization process focus
Organization process definition
Training program
Integrated software management
Software product engineering
Inter group coordination
Peer reviews
7/16/2015
CRISP
21
Key Process Areas – Level 4
(Managed)
Quantitative process management
Software quality management
7/16/2015
CRISP
22
Key Process Areas – Level 5
(Optimizing)
Defect prevention
Technology change management
Process change management
7/16/2015
CRISP
23
Common Features
For convenience, the key process areas organized
by common features
Common features are –
– attributes that indicate whether the implementation and
institutionalization of a key process area is effective,
repeatable, and lasting
7/16/2015
CRISP
24
Five Common Features
Commitment to Perform
– describes the actions the organization must take to ensure that the
process is established and will endure
– typically involves establishing organizational policies and senior
management sponsorship
Ability to Perform
– describes the preconditions that must exist in the project or
organization to implement the software process competently
– typically involves resources, organizational structures and training
7/16/2015
CRISP
25
Five Common Features
Activities Performed
– describes the roles and procedures necessary to
implement a key process area
– typically involve establishing plans and procedures,
performing the work, tracking it, and taking corrective
actions as necessary
Measurement and Analysis
– describes the need to measure the process and analyze
the measurements
– typically includes examples of the measurements that
could be taken to determine the status and effectiveness
of the activities performed
7/16/2015
CRISP
26
Five Common Features
Verifying Implementation
– describes the steps to ensure that the activities are
performed in compliance with the process that has been
established
– Typically encompasses reviews and audits by
management and software quality assurance
7/16/2015
CRISP
27
Key Practices
Key Practices
– describe the infrastructure and activities that contribute
most to the effective implementation and
institutionalization of a particular key process area
– state the fundamental policies, procedures, and
activities for the key process area
– describe "what" is to be done, but should not be
interpreted as mandating "how" the goals should
be achieved
7/16/2015
CRISP
28
Example Key Practice
For the Software Project Planning key process
area
– Estimate for the size of the software work products (or
changes to the size of software work products) to be
derived according to a documented procedure
7/16/2015
CRISP
29
Using the CMM
CMM
– establishes a set of criteria that can be used by
organizations to improve their processes for developing
and maintaining software, or by government or
commercial organizations to evaluate the risks of
contracting a software project to a particular company
– acts as a common foundation for both software
process assessments and software capability
evaluations - two SEI-developed methods for
appraising the maturity of an organization's
execution of the software process
7/16/2015
CRISP
30
Using the CMM
CMM
– has specific value in the areas of action planning,
implementing action plans, and defining processes
7/16/2015
CRISP
31
What CMM does not cover
Describes an organization at each maturity level
without prescribing the specific means for getting
there
Does not tell an organization how to improve
Does not currently address expertise in particular
application domains, advocate specific software
technologies, or suggest how to select, hire,
motivate, and retain competent people
7/16/2015
CRISP
32
Summary
Maturity Levels
indicate
contain
Process Capability
Key Process Areas
achieve
Organized by
Goals
Common Features
address
contain
Institutionalization
describe
Key Practices
Activities
7/16/2015
CRISP
33