Software Testing Standards-CMM Levels
CMM Levels
1.Capability Maturity Model (CMM) has found it is
way from Carnegie Melon University (CMU) software engineering Institute (SEI)
to major Software developers all over the world. Some consider it as an
answer to Software Industry�s chaotic problems, and some consider it
just another exhaustive framework that requires too much to do and too
little to show for it. This article is not intended to be a
comprehensive introduction to CMM, the interested readers should read
official CMM documentation available from SEI�s web site to get a
comprehensive discussion of CMM. This article is intended to show that
CMM is not a framework that advocates magical and revolutionary new
ideas, but it is in fact a tailored compilation of the best practices
in Software engineering.
COMPONENTS OF CMM
a)Maturity levels:A maturity level
is a well-defined evolutionary plateau toward achieving a mature
software process. The five maturity levels provide the top-level
structure of the CMM.
b)Process capability:Software process
capability describes the range of expected results that can be achieved
by following a software process. The software process capability of an
organization provides one means of predicting the most likely outcomes
to be expected from the next software project the organization
undertakes.
c)Key process area:Each maturity level is
composed of key process areas. Each key process area identifies a
cluster of related activities that, when performed collectively,
achieve a set of goals considered important for establishing process
capability at that maturity level. The key process areas have been
defined to reside at a single maturity level. For example, one of the
key process areas for Level 2 is Software Project Planning.
The following is the Architecture of the CMM levels
d)Goals: The
goals summarize the key practices of a key process area and can be used
to determine whether an organization or project has effectively
implemented the key process area. The goals signify the scope,
boundaries, and intent of each key process area. An example of a goal
from the Software Project Planning key process area is "Software
estimates are documented for use in planning and tracking the software
project".
e)Common features:The key practices are divided among five Common Features sections:
1. Commitment to Perform
2. Ability to Perform
3. Activities Performed
4.Measurement and Analysis
5. Verifying Implementation.
The common features are attributes that indicate whether the
implementation and institutionalization of a key process area is
effective, repeatable, and lasting. The Activities Performed common
feature describes implementation activities. The other four common
features describe the institutionalization factors, which make a
process part of the organizational culture.
f)Key practices:Each
key process area is described in terms of key practices that, when
implemented, help to satisfy the goals of that key process area. The
key practices describe the infrastructure and activities that
contribute most to the effective implementation and
institutionalization of the key process area. For example, one of the
practices from the Software Project Planning key process area is "The
project's software development plan is developed according to a
documented procedure."
CMM FRAMEWORK
MATURITY LEVELS: CMM defines five levels of maturity:
Level 1: Initial Level
This is the lowest of the maturity levels; you may consider it as the
immature level. At this level the software process is not documented
and is not fixed. Everything in these companies is done on an ad-hoc
basis. The projects are usually late, over budgeted and have quality
issues. This does not mean that a company at this level cannot do
successful projects. As a matter of fact the author himself works for a
company that is somewhere between Level 1 and Level 2 and despite this
it has a very impressive track record for producing quality software,
with in budget and with in time. Companies at Level 1 do manage to
produce good software mainly because of their personnel immense
competency. These companies are characterized by heroes - individuals
with good programming, communications and peoples skills. It is for
these individual heroes that the companies at Level 1 manage to
complete successful projects. Most of the companies around the world
are at Level 1. These companies make their decisions on the spur of the
moment, rather than anticipating problems and fixing them before they
occur. Software developers in these companies are usually over-worked,
over-burdened and spend major portion of their time in re-working, or
fixing bugs. The success of a project depend totally on the team
working on the project and on the project manager's abilities rather
than on the company's processes. As the team changes or some key
individuals of the team leave - the project usually fall flat on its
face.
Level 2: Repeatable Level:
At this level basic software project management practices are in place.
A project planning, monitoring and measurements are properly done
according to certain well-defined processes. Typical measurements
include tracking of costs and schedule. The results of these
measurements are used in future projects to make a better and realistic
project plan. Projects have a stronger chance of being successful, and
if unsuccessful the mistakes are recorded and thus are avoided in the
future projects. The key point is that without measurements it is
impossible to foresee and detect the problems before they get out of
hand.
Level 3: Defined Level:
At this level the process of software development is fully documented.
Both the managerial and technical aspects are fully defined and
continued efforts are made to better the process. At this level CASE
tools are used for development of software. If a Level 1company tries
to follow activities involved in Level 3, the result usually are
disastrous. This is because in CMM a preceding level lays the ground
work for the next level. In order to be able to achieve Level 3, one
must first achieve Level 2. An example of a documented process could be
"the process for identifying software defects/bugs". This process may
be documented by using checklist for identification of common defects;
the check list may contain entries like "All variables initialized, all
pointers initialized, all pointers deleted, all exceptions caught" etc.
The process of defect identification may also include the total count
of defects, and the categories of each software defects. A company may
use any method to documents its processes. CMM lays no compulsion on
how a process should be documented. The only compulsion is that the
process should be documented in such a manner that a new recruit to the
company can easily do his/her job by reading the documentation.
Level 4: Managed Level:
Level 3, provides a way to document the processes; Level 4 allows that
documentation to be used in a meaningful manner. Level 4, involves
software matrices, and statistical quality control techniques. In Level
3, I gave an example of documenting a Software Defects/bugs
identification process. Imagine that the total count of defects per
thousand lines of code turn out to be 500. Level 4 would have
activities aimed at identifying the root cause(s) of these bugs, and
would set goals to decrease the defect number to a reasonable level.
Level 5: Optimizing Level:
The software environment changes all the time. Technology changes and
so do the techniques. Level 5 deals with the ongoing changes and with
ways to improve the current processes to meet the changing environment.
In essence Level 5 provides a positive feedback loop. Level 5 is about
continuous improvement. A company at Level 5 uses statistical methods
to incorporate future changes and to be receptive to ideas and
technologies for continuous growth.
KEY PROCESS AREAS (KPAs):
Each level (Level 1,2, 3, 4, 5) have been divided into certain KPAs.
For a company to achieve a certain maturity level it must fulfill all
the KPAs of the desired maturity level. Since every company is at least
at Level 1, there is no Key Process Areas for Level 1 - meaning that a
Software Company does not need to do anything to be at level 1. You may
think of Key Process Areas as "TO DOs of a maturity level" or a Task
list that must be performed. A Key Process Area contains a group of
common activities that a company must perform to fully address that Key
process Area. Given below is the list of KPAs for each Maturity Level.
Level 1 - Initial
Level 2 - Repeatable
a. Requirements Management
b. Software Project Planning
c. Software Project Tracking & Oversight
d. Software Subcontract Management
e. Software Quality Assurance
f. Software Configuration Management
Level 3 - Defined
a. Organizational Process Focus
b. Organizational Process Definition
c. Training Program
d. Integrated Software Management
e. Software Product Engineering
f. Intergroup Coordination
g. Peer Reviews
Level 4 - Managed
a. Quantitative Process Management
b. Software Quality Management
Level 5 - Optimizing
a. Defect Prevention
b. Technology Change Management
c. Process Change Management
The following is the Key process Areas diagram