CMM- Capability Maturity Model
CMM (Capability
Maturity Model) is a model of process maturity for software development - an
evolutionary model of the progress of a company‘s abilities to develop
software. In November 1986, the American Software Engineering Institute (SEI)
in cooperation with Mitre Corporation created the Capability Maturity Model for
Software.
Development
of this model was necessary so that the U.S. federal government could
objectively evaluate software providers and their abilities to manage large
projects.
Many
companies had been completing their projects with significant overruns in
schedule and budget. The development and application of CMM helps to solve this
problem. The key concept of the standard is organizational maturity.
A mature
organization has clearly defined procedures for software development and
project management. These procedures are adjusted and perfected as required.
In any
software development company there are standards for processes of development,
testing, and software application; and rules for appearance of final program
code, components, interfaces, etc.
The CMM
model defines five levels of organizational maturity
Initial level is a basis for comparison with the
next levels. In an organization at the initial level, conditions are not stable
for the development of quality software. The results of any project depend
totally on the manager‘s personal approach and the programmers‘ experience,
meaning the success of a particular project can be repeated only if the same
managers and programmers are assigned to the next project. In addition, if
managers or programmers leave the company, the quality of produced software
will sharply decrease. In many cases, the development process comes down to
writing code with minimal testing.
Repeatable level. At this level, project management
technologies have been introduced in a company. That project planning and
management is based on accumulated experience and there are standards for
produced software (these standards are documented) and there is a special
quality management group. At critical times, the process tends to roll back to
the initial level.
Defined level. Here, standards for the processes of
software development and maintenance are introduced and documented (including
project management). During the introduction of standards, a transition to more
effective technologies occurs. There is a special quality management department
for building and maintaining these standards. A program of constant, advanced
training of staff is required for achievement of this level. Starting with this
level, the degree of organizational dependence on the qualities of particular
developer‘s decreases and the process does not tend to roll back to the
previous level in critical situations.
Managed
level. There are quantitative indices (for both software and process as a
whole) established in the organization. Better project management is achieved
due to the decrease of digression in different project indices. However,
sensible variations in process efficiency may be different from random
variations (noise), especially in mastered areas.
Optimizing
level. Improvement procedures are carried out not only for existing processes,
but also for evaluation of the efficiency of newly introduced innovative technologies.
The main goal of an organization on this level is permanent improvement of
existing processes. This should anticipate possible errors and defects and
decrease the costs of software development, by creating reusable components for
example.
The Software
Engineering Institute (SEI) constantly analyzes the results of CMM usage by
different companies and perfects the model taking into account accumulated
experience.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.