Вы находитесь на странице: 1из 11

CAPABILITY MATURITY MODEL

(CMM)
by Macasyraf
The Capability Maturity Model, known as CMM is a methodology used to develop and
refine an organization’s software development process. The model describes a five-
level evolutionary path of increasing organized and systematically more mature
processes. CMM was developed and is promoted by the Software Engineering
Institute, known as SEI; a research and development center sponsored by the U.S.
Department of Defense, known as DoD. SEI was founded in 1984 to address software
engineering issues and, in a broad sense, to advance software engineering
methodologies. More specifically, SEI was established to optimize the process of
developing, acquiring, and maintaining heavily software-reliant systems for the DoD.
Because the processes involved are equally application to the software industry as a
whole, SEI advocates industry-wide adoption of the CMM.

According to the Search Software Quality website, written by Margaret Rouse


(2007), the CMM is similar to ISO 9001, one of the ISO 9000 series of standards specified
by the International Organization for Standardization, known as ISO. The ISO 9000
standards specify an effective quality system for manufacturing and service industries;
ISO 9001 deals specifically with software development and maintenance. The main
difference between the two systems lies in their respective purposes: ISO 9001 specifies
a minimal acceptable quality level for software processes, while the CMM establishes
a framework for continuous process improvement and is more explicit that the ISO
standard in defining the means to be employed to that end.

According to the Capability Maturity Model, version 1.1, written by Paulk et al.
(1993), the CMM guides developers on how to gain control of their development and
maintenance process and ow to evolve toward a culture of software engineering
and management excellence. It was designed to help developers select process
improvement strategies by determining their current process maturity and identifying
the most critical issues to improving their software quality and process. The mean of
Maturity based on the text provided; a mature organization possesses an organization
wide ability to manage development and maintenance. Managers can accurately
communicate the software process to staff and new employees, and work activities
are carried out according to the planned process.
In essence, the Capability Maturity Model (CMM) is a standardised framework
to evaluate the IT development, management processes or products in an
organization. Five levels are distinguished:

1. Initial
There is a lot of uncertainty in the initial phase of process development in an
organisation. It is unknown how processes work and how they need to be
improved. Success is determined by individual input and results due to a lack
of procedures or other formal process descriptions and goals. These structures
can’t be repeated because there simply is no documentation on how they
were reached. The uncertainty on this level is often the cause of chaotic
situations, budgets to be exceeded and deadlines to be missed.

From this first level, the defining of the process is set in motion. With this, a set of
process elements are determined up to the third level. Example of possible
process definition criteria are:

1.1 Goal
What ae use of the process? Is the process a crucial part of the business
strategy and is this process sufficiently customer oriented?
1.2 Input
Which tools need to be accessible to execute this process? What does
it cost?
1.3 Output
Which tools are produced by this process? What does it yield?
1.4 Role Distribution
Who does which activities? Who has the best competences for that?
1.5 Entry Criteria
When exactly and under which circumstances can these processes be
enacted?
1.6 End Criteria
When exactly and under which circumstances can this process be
ended?
1.7 Procedures
How is the process documented so it can be repeated later?
1.8 Evaluation
How is the implementation of the process monitored? How can
evaluation help to optimise?
1.9 Tools
Which tools are needed to implement the process even more
efficiently?

2. Repeatable
On this level, several of the criteria above are evaluated and recorded. The
information or knowledge that is recorded comes from experiences. On this
second level, the process is already clearly in development and under normal
circumstances this process is predictable in terms of money and time. Because
of the predictability and accuracy, the process can be repeated. The business
process is repeatable from here, but when entering new methods, procedures
or technologies, the development falls back to the first level. Setbacks and
inconsistencies may also be detrimental for the development of the process.

3. Defined
The process in development is completely defined and under control on this
level. The procedures are accurate enough, so inconsistencies occur less often.
The different (additional) processes are also well-integrated in the entire
organization so a well-oiled machine is created. Setbacks and inconsistencies
are anticipated so the process can always remain operational. Despite the
smooth progression, we still speak of development; the process is not yet
mature. However, this is more aimed at optimisation that shaping. Most
organisations stop development of the process here because the next steps
require additional investment. And the process is already effective enough.

4. Managed
On this level, the process is completely controlled. The quality of the process is
systematically assessed to determine deviations an improved if necessary. The
process can be assessed by implementing quantitative analyses. The data
produced by this is used in the optimisation of the process. An example of a
model that can be used for this purpose is the SERVQUAL model.

5. Optimising
On this level, the systematic improvement of the processes has been added to
the operational management. By receiving qualitative feedback, the
processes are protectively amended. Even when new technologies need to
be implemented, this can also be controlled without the process losing
effectiveness. This also includes preventive research into possible defects or
inconsistencies that may occur.

The CMM framework represents a path of improvements to increased software


process capability. The operational elaboration of the CMM is designed to support
the many ways it will be used, four of which are:
1. Assessment team will use it to identify strength and weaknesses in an
organization.
2. Evaluation teams will use it to identify the risks of selecting among contractors
and to monitor contract.
3. Upper management will use it to understand the activities necessary to launch
a process improvement program in their organization.
4. Technical staff and process improvement group will use it as a guide to help
them define and improve their organization’s process.

Because these uses are diverse, the CMM must be decomposed in sufficient
detail so that actual recommendations can be derived from it. This decomposition
indicates the key processes and their structure that characterize software process
maturity and software process capability.

Key process area indicates where an organization should be focussed to


improve its software process. They identify the issues that must be addressed to
achieve a maturity level, as Figure 2 illustrates.

Each key process area identifies a cluster of related activities that, when
performed collectively, achieve a set of goals considered important for enhancing
process capability. The path to achieving these goals may differ across projects,
depending on the application domain or environment. Nevertheless, all the goals of
a key process area must be achieved for an organization to satisfy it.

The use of the adjective “key” implies that there are process areas (and
processes) that not key to achieving a maturity level. The CMM does not describe in
detail all the process areas involved with developing and maintaining software, only
those that have been identified as key determiners of process capability.

Key process areas may be viewed as requirements for achieving a maturity


level: To achieve a maturity level, the key process areas for that level must be satisfied.
(Level 1 has no key process areas)

The specific practices to be executed in each key process are will evolve as
an organization achieves higher levels. For example, many of the project estimating
capabilities described in the project planning key process are at level 2 must evolve
to handle the additional project data available at level 3.

Level 2. The key process areas at level 2 focus on establishing basic project
management controls.

1. Requirements Management
Establishing a common understanding between a customer and a project
team of the customer’s requirements. This agreement is the basis for planning
and managing a project.
2. Software Project Planning
Establishing reasonable plans for engineering and managing a project. These
plans are the foundation project management.

3. Software Project Tracking and Oversight


Establish adequate visibility into actual progress so that management can take
effective action when a project’s performance deviates significantly from the
plans.
4. Software Subcontract Management
Select a qualified subcontractor and manage them effectively.
5. Software Quality Assurance
Provide a management with appropriate visibility into the process being used
and the products being built.
6. Software Configuration Management
Establish and maintain the integrity of a project’s products throughout its life
cycle.

Level 3. The key process areas at level 3 address both project and
organizational issues, as an organization establishes an infrastructure that
institutionalizes effective software engineering and management processes across all
projects.

1. Organization Process Focus


Establish an organizational responsibility for activities that improve an
organization’s overall software process capability.
2. Organization Process Definition
Develop and maintain a usable set of process assets that improve processes
across projects and provide a basis for defining meaningful data for
quantitative process management. These assets are a foundation that can be
institutionalized through mechanisms like training.
3. Training Program
Develop the skills and knowledge of individuals so that they can be effective
and efficient. Training is an organizational responsibility, but projects should
identify necessary skills and provide training when their needs are unique.
4. Integrated Software Management
Integrate software engineering and management activities into a coherent,
defined process that is tailored from an organization’s standard software
process and related process assets. Tailoring is based on the business
environment and technical needs of a project.
5. Software Product Engineering
Consistently perform a well-defined process that integrates all technical
activities – requirements analysis, design, code, and test, among others – to
produce correct, consistent software products effectively and efficiently.
6. Intergroup Coordination
Establish a way for a software engineering group to participate actively with
other engineering groups so that a project team can better satisfy the
customer’s needs.
7. Peer Reviews
Remove defects from work products early and efficiently. An important
corollary effect is to develop a better understanding of the work products and
preventable defects. Peer review is an important and effective method that
can be implemented through inspections or structured walkthroughs, for
example.

Level 4. The key process areas at level 4 focus on establishing a quantitative


understanding of both the software process and the software work products being
built.

1. Quantitative Process Management


Control a project’s process performance quantitatively. A project’s process
performance comprises the actual results achieved from following a software
process. The focus is on identifying special causes of variation within a
measurably stable process and correcting, as appropriate, the circumstances
that created them.
2. Software Quality Management
Develop a quantitative understanding of the quality of a project’s products to
achieve specific quality goals.

Level 5. The key process areas at level 5 focus on issues that both organizations
and projects must address to implement continuous and measurable process
improvement.
1. Defect Prevention
Identify the causes of defects and prevent them from recurring by analysing
them and changing the defined process.
2. Technology Change Management
Identify beneficial new technologies (such as tools, methods, and processes)
and transfer them into an organization in an orderly manner. The focus here is
on efficient innovation in an everchanging world.
3. Process Change Management
Continually improve an organization’s processes with the intent of improving
quality, increasing productivity, and decreasing development time.

Research at the University of Missouri has shown that organizations make a lot
of progress on several Key Performance Indicators, known as KPIs after implementing
a CMM framework. Example of improvements are:

1. Consistency
The CMM ensures that the organization has more control over the predictability
and consistency of procedures and other processes. By focusing on the
customer, it is possible to make better predictions and prognoses about the
need for a product or service, for example.
2. Market Share
In the competitive market, both within the information technology and outside
it, development and innovation are of great importance. The use of CMM
facilitates faster response to new customer needs, for example, to stay ahead
of the competition.
3. Cost Saving
By using CMM, mistakes in the existing and new procedures are noticed, after
which measures can be taken if necessary. The more quickly mistakes are
resolved, the lest costs accompany them. Moreover, analysis of the process
may uncover unnecessary steps or actions, and this allow people to work more
efficiently. This may increase the productivity.
4. Development
The CMM describes different phases in the development of process. The speed
at which development takes place depends on the capacities of the
organization to develop. By continuously developing processes, an
organization can stay ahead of the competition. However, the financial tools
do need to be available for this.
References

Paulk, M. C., Curtis, B., Chrissis, M. B., & Weber, C. V. (1993). Capability maturity model,
version 1.1. IEEE Software, 10(4), 18–27. doi:10.1109/52.219617.

Rouse, M., Jayaram, M. N., Rouse, M., & Rouse, M. (n.d.). What is Capability Maturity
Model (CMM)? - Definition from WhatIs.com. Retrieved from
https://searchsoftwarequality.techtarget.com/definition/Capability-Maturity-Model.

Janse, B. (2019, November 12). What is the Capability Maturity Model Integration
(CMMI). Retrieved from https://www.toolshero.com/information-
technology/capability-maturity-model-integration/.