Iso 15504 - Maturity Model For Software
Iso 15504 - Maturity Model For Software
Iso 15504 - Maturity Model For Software
Cambridge, MA
Abstract
The Capability Maturity Model for Software (Software CMM ) is probably the best known
and most widely used model world-wide for software process improvement. ISO/IEC 15504
is a suite of standards currently under development for software process assessment, which
can be expected to affect the continuing evolution of the Software CMM. This paper
discusses the similarities and differences between the two models and how they may influence
each other as they both continue to evolve.
Introduction
The Software Engineering Institute (SEI) has been evolving a process maturity framework
now known as the Capability Maturity Model for Software (Software CMM) since 1986
[Paulk95a, Paulk95c]. This model provides organizations with guidance for measuring
software process maturity and establishing process improvement programs. The Software
CMM is probably the best known and most widely used model world-wide for software
process improvement at this writing.
ISO/IEC1 15504 is a suite of standards for software process assessment currently under
development as an international standard . ISO/IEC 15504 has been published as a type 2
technical report, which is a stage in the development of a standard. Of the nine parts to
ISO/IEC 15504, the parts directly relevant to the Software CMM are ISO/IEC 15504-2, the
reference model, and ISO/IEC 15504-5, which provides an example model. As an
international standard, ISO/IEC 15504 can be expected to affect the continuing evolution of
CMM-related products.
Capability Maturity Model and CMM are registered in the U.S. Patent and Trademark Office.
The Software Engineering Institute is a federally funded research and development center sponsored by
the U.S. Department of Defense.
1 ISO/IEC 15504 is being developed by working group 10 (WG10) under the software engineering
subcommittee (SC7) of the information technology joint committee (JTC1) established by the
International Organization for Standardization (ISO) and the International Electrotechnical
Commission (IEC).
Cambridge, MA
This paper provides an overview of the Software CMM and ISO/IEC 15504, discusses the
similarities and differences between them, and speculates how they may influence each other
as they both continue to evolve.
4) Managed
5) Optimizing
Except for Level 1, each maturity level is decomposed into several key process areas that
indicate the areas an organization should focus on to improve its software process. The
key process areas in Version 1.1 of the Software CMM are listed in Table 2.
For convenience, the key process areas are internally organized by common features. The
common features are attributes that indicate whether the implementation and
institutionalization of a key process area is effective, repeatable, and lasting. The five
common features are Commitment to Perform, Ability to Perform, Activities Performed,
Measurement and Analysis, and Verifying Implementation. General practices that apply to
every key process area at every maturity level are categorized by the common features. For
example, establishing policies is a common practice in Commitment to Perform and providing
training is a common practice in Ability to Perform.
Each key process area is described in terms of the key practices that contribute to satisfying its
goals and that are allocated to the common features. The key practices describe the specific
infrastructure and activities that contribute most to the effective implementation and
institutionalization of the key process area.
Cambridge, MA
2
Repeatable
1
Initial
Focus
Continuous process
improvement
Product and process
quality
Engineering processes
and organizational
support
Project management
processes
Cambridge, MA
The process attributes are defined in ISO/IEC 15504-2 and elaborated in ISO/IEC 15504-5
by process indicators, called generic practices in earlier drafts of the evolving standard.
Cambridge, MA
12207 addresses the same set of concerns as the Software Product Engineering key
process area in the Software CMM). "Subprocesses" and activities in Table 4 are in italics
to emphasize that they are components of a larger construct. Where the relationship is
indirect, the Software CMM component is in parentheses to highlight the difference in
scope.
Table 4.
CUS.1 Acquisition
CUS.1.1 Acquisition preparation
CUS.2 Supply2
2 The Supply Process deals with providing software to the customer that meets the agreed requirements.
Establishing a contract, developing the software, and delivering it to the customer, which are the issues
for this process, are addressed in various key process areas, although the Supply Process itself is not
explicitly specified in the Software CMM.
3 Systems engineering issues, e.g., requirements elicitation, system analysis, and system testing, were not
considered within the scope of the Software CMM in version 1.1.
Cambridge, MA
SUP.4 Verification
SUP.5 Validation
SUP.7 Audit
MAN.1 Management5
4 SQA covers both quality assurance and audits. Audits are an independent QA function. The SQA key
process area can be implemented as an independent function or not; the requirement is objective
verification rather than independent verification. SQA may, or may not, therefore cover the Audit Process
in a particular environment.
5 This is a generic planning and management process that is to be applied to any process, rather than
project planning specifically.
6 The purpose of the Organizational Alignment Process is to ensure that individuals share a common
vision, culture, and understanding of business goals.
Cambridge, MA
ORG.2 Improvement
ORG.2.1 Process establishment
Training Program
ORG.4 Infrastructure
ORG.5 Measurement
ORG.6 Reuse
Requirements Management
Intergroup Coordination
Peer Reviews7
Quantitative Process Management8
Defect Prevention
Technology Change Management
Process Change Management
7
8
Cambridge, MA
A staged architecture focuses on software process improvement and, in the case of the
Software CMM, provides 500 pages of mostly informative material on software processes
that has been prioritized by being in key process areas. The rating components, i.e., the
key process areas and goals, are a comparatively small part of the document; there are 18
key process areas and 52 goals.
The term continuous is not a strictly accurate description since the ISO/IEC 15504
architecture is also based on (capability) levels. Other descriptive terms that could be used
include:
a process-focused model, since its target is process capability,
a terrain model, from the analogy to a description of the software process terrain, and
a reference model, since its primary use is in assessment as the reference for rating
processes.
One of the objectives of ISO/IEC 15504 is to create a way of measuring process capability,
while avoiding a specific approach to improvement such as the SEIs maturity levels, so that
the many different kinds of assessment, model, and their results, can be meaningfully
compared to one another. The approach selected is to measure the implementation and
institutionalization of specific processes; a process measure rather than an organization
measure. Maturity levels can be viewed as sets of process profiles using this approach
[Paulk94, Paulk95a, Paulk96]. This addresses one of the deficiencies in the staged approach:
lower maturity key process areas evolve with the organization's maturity. For example, there
are organizational standards and required training for Software Configuration Management in
a maturity level 3 organization, even though this is not explicitly stated in the Software CMM.
Organization
capability
Process evolution
Staged Architecture
(Software CMM)
Attention is focused on the
"vital few" issues in process
improvement that are
generally true for any
organization.
Organizational capability is
explicitly described in terms
of maturity levels.
Continuous Architecture
(ISO/IEC 15504)
Less important process issues
can drown out the vital few
issues when there are clashes
over improvement priorities.
Organizational capability is
implicit; it can be intuitively
understood by looking at the
organizational processes, the
process attributes, and their
dependencies.
The evolution of processes
Cambridge, MA
Characteristic
Staged Architecture
(Software CMM)
snapshot of the evolving
process.
Guidance
Extendibility
Continuous Architecture
(ISO/IEC 15504)
from ad hoc to continuously
improving is "fully"
described.
Abstract processes and
process attributes can be
difficult to interpret. No
particular organizational
improvement path is
prescribed.
Some processes are invisible in a staged model, until the point that focusing on their
improvement becomes critical to organizational maturity. Engineering processes, for example,
are not a focus of maturity level 2, so they suddenly appear at level 3. Level 1 organizations
perform engineering processes, but they are not represented in the Software CMM until level
3. This is intrinsic to the way the maturity levels are defined: the critical problems for level 1
organizations are managerial, not technical, so the improvement focus is not on the
engineering processes at level 2.
This focus on the "vital few" processes at each maturity level for building organizational
capability becomes a challenge when layering a staged model on top of a continuous
architecture. For example, should every process described in the continuous model be placed
under quantitative or statistical control if the organization is to be characterized as level 4 or
higher? The staged model lets the decision of what processes should be quantitatively or
statistically controlled be driven by business objectives. No rule, other than "all processes,"
has been articulated yet for aggregating process capability levels to achieve an organizational
maturity level when using a continuous model. Should all processes be standardized? Under
statistical control? Optimal?
This is both a strength and a weakness of the layering approach to integrating staged and
continuous models. It highlights standardizing and tailoring (capability level 3) as issues for
level 2 key process areas in a maturity level 3 organization, but flexibility in applying these
principles to all (versus critical) processes is desirable from a business objective perspective.
Conversely, the improvement priorities in the staged model describe an "80% solution" to
Cambridge, MA
effective process improvement; organizations have unique improvement needs driven by their
business needs and environment.
Key process areas are not processes. A process changes over time and hopefully matures.
A process is dynamic. A key process area is a static description of essential attributes
(i.e., key practices) of a process when that process is fully realized, and it does not tell
how the process is performed.
Usability was an issue in early drafts of ISO/IEC 15504 when 26 generic practices were
rated on the capability dimension rather than nine process attributes. This lead to over
1,000 rating decisions during an assessment, and early trials indicated that assessments
could be quite lengthy [Woodman96]. The solution to this problem was to "raise the level
of abstraction" in rating to process attributes.
The Systems Engineering CMM [Bate95] uses the 26 generic practices in its instantiation
of the continuous architecture (with a different rating philosophy). EIA Interim Standard
731 ("Systems Engineering Capability, Part 1: Model") defines 12 generic practices in its
variation of a continuous architecture.
For Software CMM v2, we proposed addressing this concern via a goal for each key
process area to capture the institutionalization of the process. The institutionalization goal
would have captured the topics addressed by ISO/IEC 15504 process attributes via key
practice templates for planning, training, tailoring, etc., as appropriate for the maturity
level. Practices in the institutionalization common features Commitment to Perform,
Ability to Perform, Measurement and Analysis, and Verifying Implementation would
have mapped to this goal. This would have clarified that institutionalization is a critical
part of satisfying a key process area and separated institutionalization and implementation
for purposes of rating key process areas.
The difference in focus organization versus process thus leads to some subtle
challenges in integrating the staged and continuous architectures. The similarities between
capability and maturity levels make the relationships conceptually straightforward; the
philosophical difference makes the operational details tricky.
Conclusions
The SEI is continuing to evolve the CMM concepts, primarily in its current work on
CMM integration, which addresses software, systems engineering, and integrated process
and product development. ISO/IEC JTC1/SC7/WG10 is continuing to refine ISO/IEC
15504 and is currently targeting 2001 for release of the international standard.
One of the challenges in harmonizing the CMM and ISO/IEC 15504 is defining the rating
components for the process capability dimension. Mapping between one "goal" per level
and two "process attributes" per level may lead to unacceptable granularity problems. The
other major challenge is developing an acceptable operational mapping between
organizational and process capability. Both SEI and WG10 continue to discuss these and
other issues.
10
Cambridge, MA
References
Bate95
Roger Bate, Dorothy Kuhn, Curt Wells, et al, "A Systems Engineering
Capability Maturity Model, Version 1.1," Software Engineering Institute,
Carnegie Mellon University, CMU/SEI-95-MM-003, November 1995.
Paulk94
Paulk95a
Paulk95b
Paulk95c
Mark C. Paulk, The Evolution of the SEIs Capability Maturity Model for
Software, Software Process: Improvement and Practice, Vol. 1, Pilot
Issue, Spring 1995, pp. 3-15.
Paulk96
11