What is the Capability Maturity Model?
(CMM)
Capability Maturity Model (CMM) broadly refers to a process
improvement approach that is based on a process model. CMM also
refers specifically to the first such model, developed by the
Software Engineering Institute (SEI) in the mid-1980s, as well as
the family of process models that followed. A process model is a
structured collection of practices that describe the
characteristics of effective processes; the practices included are
those proven by experience to be effective.
CMM can be used to assess an organization against a scale of
five process maturity levels. Each level ranks the organization
according to its standardization of processes in the subject area
being assessed. The subject areas can be as diverse as software
engineering, systems engineering, project management, risk
management, system acquisition, information technology (IT)
services and personnel management.
CMM was developed by the SEI at Carnegie Mellon University in
Pittsburgh. It has been used extensively for avionics software and
government projects, in North America, Europe, Asia, Australia,
South America, and Africa.Currently, some government departments
require software development contract organization to achieve and
operate at a level 3 standard.
Maturity Model
The Capability Maturity Model (CMM) is a way to develop and
refine an organization's processes. The first CMM was for the
purpose of developing and refining software development processes.
A maturity model is a structured collection of elements that
describe characteristics of effective processes. A maturity model
provides:
|
|
|
|
- a place to start
- the benefit of a community’s prior experiences
- a common language and a shared vision
- a framework for prioritizing actions
- a way to define what improvement means for your
organization
|
|
|
|
|
A maturity model can be used as a benchmark for assessing
different organizations for equivalent comparison. It describes the
maturity of the company based upon the project the company is
dealing with and the clients.
Levels of the CMM
There are five levels of the CMM:
|
|
|
|
- Level 1 - Initial
- Processes are usually ad hoc and the organization usually does
not provide a stable environment. Success in these organizations
depends on the competence and heroics of the people in the
organization and not on the use of proven processes. In spite of
this ad hoc, chaotic environment, maturity level 1 organizations
often produce products and services that work; however, they
frequently exceed the budget and schedule of their projects.
- Organizations are characterized by a tendency to over commit,
abandon processes in the time of crisis, and not be able to repeat
their past successes again.
- Software project success depends on having quality people.
- Level 2 - Repeatable
- Software development successes are repeatable. The processes
may not repeat for all the projects in the organization. The
organization may use some basic project management to track cost
and schedule.
- Process discipline helps ensure that existing practices are
retained during times of stress. When these practices are in place,
projects are performed and managed according to their documented
plans.
- Project status and the delivery of services are visible to
management at defined points (for example, at major
milestones and at the completion of major tasks).
- Basic project management processes are established to track
cost, schedule, and functionality. The minimum process discipline
is in place to repeat earlier successes on projects with similar
applications and scope. There is still a significant risk of
exceeding cost and time estimate.
- Level 3 - Defined
- The organization’s set of standard processes, which is the
basis for level 3, is established and improved over time. These
standard processes are used to establish consistency across the
organization. Projects establish their defined processes by the
organization’s set of standard processes according to tailoring
guidelines.
- The organization’s management establishes process objectives
based on the organization’s set of standard processes and ensures
that these objectives are appropriately addressed.
- A critical distinction between level 2 and level 3 is the scope
of standards, process descriptions, and procedures. At level 2, the
standards, process descriptions, and procedures may be quite
different in each specific instance of the process (for example, on
a particular project). At level 3, the standards, process
descriptions, and procedures for a project are tailored from the
organization’s set of standard processes to suit a particular
project or organizational unit.
- Level 4 - Managed
- Using precise measurements, management can effectively control
the software development effort. In particular, management can
identify ways to adjust and adapt the process to particular
projects without measurable losses of quality or deviations from
specifications. At this level organization set a quantitative
quality goal for both software process and software
maintenance.
- Subprocesses are selected that significantly contribute to
overall process performance. These selected subprocesses are
controlled using statistical and other quantitative
techniques.
- A critical distinction between maturity level 3 and maturity
level 4 is the predictability of process performance. At maturity
level 4, the performance of processes is controlled using
statistical and other quantitative techniques, and is
quantitatively predictable. At maturity level 3, processes are only
qualitatively predictable.
- Level 5 - Optimizing
- Focusing on continually improving process performance through
both incremental and innovative technological improvements.
Quantitative process-improvement objectives for the organization
are established, continually revised to reflect changing business
objectives, and used as criteria in managing process improvement.
The effects of deployed process improvements are measured and
evaluated against the quantitative process-improvement objectives.
Both the defined processes and the organization’s set of standard
processes are targets of measurable improvement activities.
- Process improvements to address common causes of process
variation and measurably improve the organization’s processes are
identified, evaluated, and deployed.
- A critical distinction between maturity level 4 and maturity
level 5 is the type of process variation addressed. At maturity
level 4, processes are concerned with addressing special causes of
process variation and providing statistical predictability of the
results. Though processes may produce predictable results, the
results may be insufficient to achieve the established objectives.
At maturity level 5, processes are concerned with addressing common
causes of process variation and changing the process (that is,
shifting the mean of the process performance) to improve process
performance (while maintaining statistical probability) to achieve
the established quantitative process-improvement objectives.
|
|
|
BIBLICAL ANALYSIS
|
|
|
|
- Creation of Software Specifications, stating what is going to
be developed, combined with formal sign off, an executive sponsor
and approval mechanism. This is NOT a living document, but
additions are placed in a deferred or out of scope section for
later incorporation into the next cycle of software
development.
- A Technical Specification, stating how precisely the thing
specified in the Software Specifications is to be developed will be
used. This is a living document.
- Peer Review of Code (Code Review) with metrics that allow
developers to walk through an implementation, and to suggest
improvements or changes. Note - This is problematic because the
code has already been developed and a bad design can not be fixed
by "tweaking", the Code Review gives complete code a formal
approval mechanism.
- Version Control - a very large number of organizations have no
formal revision control mechanism or release mechanism in
place.
- The idea that there is a "right way" to build software, that it
is a scientific process involving engineering design and that
groups of developers are not there to simply work on the problem du
jour.
|