You are on page 1of 42

Capability Maturity Model

for Software (CMM), Version 1.1

Technical Overview
Raj Kishore
Software Process Consultant
Candidate - Doctor of Professional Studies in
Computing (PhD) at Pace University
Capability Maturity Model
for Software (CMM)

Achieving functionality and quality


on schedule and within budget.

Capability Maturity Model for Software 2


CMM Timeline

 1986
Software Engineering Institute at Carnegie Mellon
University developed software process maturity
framework.
 1987
Software Engineering Institute releases brief
description of the maturity framework.
 1991
CMM, Version 1.0
 1992
CMM, Version 1.1

Capability Maturity Model for Software 3


Process Maturity Framework

 In the area of software engineering, until the early


90s, there has been little improvement in productivity
and quality gains.
 Even undisciplined organisations sometimes produce
excellent results.
 Capability Maturity Framework describes an
evolutionary path from ad hoc, chaotic processes to
mature, disciplined software processes.
 Capability Maturity Framework integrates the concepts
of software process, software process capability,
software process performance, and software process
maturity.

Capability Maturity Model for Software 4


Immature Software Organisations

 Software processes are generally improvised


by practitioners and their management during
the course of the project.
 Schedules and budgets are routinely
exceeded.
 Lack of objective basis for judging product
quality and for solving product or process
problems.

Capability Maturity Model for Software 5


Mature Software Organisations

 Possess an organisation-wide ability for


managing software development and
maintenance processes.
 Software processes are accurately
communicated to existing and new staff.
 Work activities are carried out according to
planned processes.
 Roles and responsibilities within the defined
processes are clear throughout the project
and across the organisation.

Capability Maturity Model for Software 6


Mature Software Organisations

 Managers constantly monitor software quality


and customer satisfaction.
 Schedules and budgets are based on historical
performance and therefore realistic.
 Expected results for cost, schedule,
functionality, and quality of the products are
usually achieved.

Capability Maturity Model for Software 7


Concepts of Process Maturity

 A software process is a set of activities,


methods, practices, and transformations that
people use to develop and maintain software
and the associated products (such as plans,
design documents, code, test plans, manuals
etc.).
 As the organisation matures, the software
process becomes better defined and more
consistently implemented throughout the
organisation.

Capability Maturity Model for Software 8


Software Process Capability

 The range of expected results that can be


achieved by following a mature software
process.
 The software process capability of an
organisation provides one means of predicting
the most likely outcomes to be expected from
the next software project the organisation
undertakes.

Capability Maturity Model for Software 9


Software Process Performance

 Represents the actual results achieved by


following a software process.
 Actual performance of the project may not
reflect the full process capability.
 Software process performance focuses on the
results achieved while software process
capability focuses on results expected.

Capability Maturity Model for Software 10


Software Process Maturity

 Extent to which a specific process is explicitly


defined, managed, measured, controlled, and
effective.
 Software process is well-understood
throughout a mature organisation.
 Capability of a mature organisation is known
as it can be measured.

Capability Maturity Model for Software 11


CMM Overview

 Software engineers and managers often know


their problems, but disagree on which
improvements are most important.
 To achieve sustainable results from process
improvement efforts, an evolutionary path
must be designed that increases an
organisation‘s software process maturity in
stages.

Capability Maturity Model for Software 12


The 5 Levels of
Software Process Maturity

 Initial
 Repeatable
 Defined
 Managed
 Optimised

Capability Maturity Model for Software 13


Level 1 – The Initial Level

 Software process capability of level 1


organisations is unpredictable.
 Organisation does not provide stable
environment for developing and maintaining
software.
 Projects abandon planned procedures during
crisis and revert to coding and testing.
 Success depends entirely on having an
exceptional manager and a good team.

Capability Maturity Model for Software 14


Understanding Level 1

 Level 1 organisations do develop products


that work.
 Success solely depends on specific
individuals.

Capability Maturity Model for Software 15


Level 2 – The Repeatable Level

 The software process capability of level 2


organisations is disciplined.
 Policies for managing a software project exist
and procedures to implement those policies
are established.
 Effective management processes for software
projects are institutionalised.

Capability Maturity Model for Software 16


Level 3 – The Defined Level

 The software process capability of level 3


organisations is standard and consistent.
 The standard engineering and management
process for developing and maintaining
software across the organisation is defined
and documented.
 Organisation-wide training program is
implemented to ensure that the staff and
managers have the qualification required to
fulfil their roles.

Capability Maturity Model for Software 17


Understanding Levels 2 & 3

 When projects grow, attention shifts from


technical issues to organisational and managerial
issues—the focus of process maturity.
 For level 2, management must focus on its own
processes to achieve a disciplined software
process.
 Level 2 must have policies that guide the projects
in establishing the appropriate management
processes.
 Level 3 defines, integrates, and documents the
entire software process.

Capability Maturity Model for Software 18


Level 4 – The Managed Level

 The software process capability of level 4


organisations is predictable.
 Quantitative quality goals for both software
products and processes are defined and set.
Outcome is measured.
 Software processes are instrumented with
well-defined and consistent measurements.
 Software products are of predictable high
quality.

Capability Maturity Model for Software 19


Level 5 – The Optimising Level

 The software process capability of Level 5


organisations is continuously improving.
 The entire organisation is focussed on
continuous process improvements.

Capability Maturity Model for Software 20


Understanding Levels 4 & 5

Many characteristics
of level 4 & 5 are
based on the
concepts of statistical
process control.

Juran Diagramme:
Quality Planning
Quality Control
Quality Improvement

Capability Maturity Model for Software 21


Capability Maturity Model for Software 22
Visibility into the Software Process

Each succeeding
maturity level incre-
mentally provides
better visibility into
the software process.

Capability Maturity Model for Software 23


Capability Maturity and Performance
Prediction

The maturity of an
organisation‘s
software process
helps to predict a
project‘s ability to
meet its goals.

Capability Maturity Model for Software 24


Using CMM

 Assessment teams use CMM to identify strengths


and weaknesses in the organisation.
 Evaluation teams use CMM to identify the risks of
selecting among different contractor and to
monitor contracts.
 Managers and technical staff use CMM to
understand the activities necessary to plan and
implement a software process improvement plan.
 Process improvement groups use CMM as a guide
to help them define and improve the software
process in their organisation.

Capability Maturity Model for Software 25


Internal Structure of Maturity Levels

 Each maturity level is


composed of several
key process areas.
 Each key process area is
organised into 5 sections
called common features.
 Common features specify
key practices that, when
collectively addressed,
accomplish the goals of
the key process area.

Capability Maturity Model for Software 26


Key Process Areas

 Each maturity level is decomposed into


several key process areas.
 The organisation must focus on these key
process areas to improve its software process.

Capability Maturity Model for Software 27


Key Process Areas

 All the goals of a key process


area must be achieved for the
organisation to satisfy that key
process area.
 When the goals of a key
process area are accom-
plished on a continuing
basis across projects, the
organisation has
institutionalised the
process capability
characterised by the
key process area.

Capability Maturity Model for Software 28


Level 2 Key Process Areas

 Requirements management
 Software project planning
 Software project tracking and oversight
 Software subcontract management
 Software quality assurance
 Software configuration management

Capability Maturity Model for Software 29


Level 3 Key Process Areas

 Organisation process focus


 Organisation process definition
 Training programme
 Integrated software management
 Software product engineering
 Intergroup co-ordination
 Peer reviews

Capability Maturity Model for Software 30


Level 4 Key Process Areas

 Quantitative process management


 Software quality management

Capability Maturity Model for Software 31


Level 5 Key Process Areas

 Defect prevention
 Technology change management
 Process change management

Capability Maturity Model for Software 32


Capability Maturity Model for Software 33
Common Features

 Commitment to perform
 Ability to perform
 Activities performed
 Measurement and analysis
 Verifying implementation

Capability Maturity Model for Software 34


Key Practices

 Each key process area


is described in terms
of the key practices
that contribute to
satisfying its goals.
 Key practices describe
the infrastructure and
activities that contribute
most to the implementation
and institutionalisation of
the key process area.

Capability Maturity Model for Software 35


Using CMM

 Software Process Assessments


 Software Capability Evaluations

Capability Maturity Model for Software 36


Software Process Assessment and
Software Capability Evaluation Methods

 SPA focus on identi-


fying improvement
priorities within an
organisation‘s own
software process and
plan an improvement
strategy.
 SCE focus on identi-
fying the risks asso-
ciated with a particular
project or contract.

Capability Maturity Model for Software 37


More Information

Software Engineering Institute


Carnegie Mellon University
Pittsburgh, PA 15213-3890
Tel: +1-412-2685800
www.sei.cmu.edu
customer-relations@sei.cmu.edu

Capability Maturity Model for Software 38


PRojects IN Controlled Environments (PRINCE)
Project Management Method

Technical Overview
Raj Kishore
Software Process Consultant
Candidate - Doctor of Professional Studies in
Computing (PhD) at Pace University
PRojects IN Controlled Environments (PRINCE)
Project Management Method

Benfits of using a project management method:


 Method is repeatable.
 Method is teachable.
 Method builds on experience.
 Everyone knows what to expect.
 If one takes over a project in the middle,
status can be easily obtained.
 Early warnings of problems.
 Proactive, not reactive.

Capability Maturity Model for Software 40


PRINCE – Key Principles

 Distinguishes between management of the


development process and techniques involved
in the development process.
 Project must be driven by its business case.
 PRINCE is product based.

Capability Maturity Model for Software 41


PRINCE – Structure

 Processes
 Components
 Techniques

Capability Maturity Model for Software 42

You might also like