Characterizing The Software Process: A Maturity Framework

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 27

Characterizing the Software

Process: A Maturity Framework


• Watts S. Humphrey
• March 1988, Software Engineering Institute

Presented by: Maryam Ebrahimi


Cs5391 Spring 2003
Overview

• Introduction
• Characteristic of Ideal Software Process
Predictability
statistical control
Measurement
• Development-process improvement
1- understanding the current status of development process
2- developing a vision of the desired process.
3- establishing a list of prioritized required actions.
4- producing a plan to accomplish these actions
5- commit the resources to execute the plan.
Overview
• Five levels of Process Maturity Framework by SEI:
1- Initial Process
1-1 Project management
1-2 Management oversight
1-3 Quality assurance group
1-4 Change control
2- Repeatable Process
2-1 Establish a process group
2-2 Establish a software-development process architecture
2-3 introduce a family of software-engineering methods and
technologies
Overview

3- Defined Process
3-1 Establish a minimum, basic set of process measurements
3-2 Establish a process database
3-3 provide sufficient process resources to gather and maintain this
data
3-4 Assess the relative quality of each product
4- Managed Process
4-1 Support automatic gathering of process data
4-2 Analyze and modify the process
5- Optimizing Process
• How to use this framework
• Conclusion
Introduction
This article presents a maturity framework
that can be used by any software organization to:
1- Identify its highest priority problems
2- Assess its own capabilities
3- Start making improvements.
Characteristic of Ideal
Software Process
Predictable: Cost estimates and schedule commitments
are met with reasonable consistency and the quality of the
resulting products generally meet user needs.
Statistical Control To achieve better result, the
development process must be under statistical control.when a
process is under statistical control, repeating the work in
roughly the same way will produce roughly the same result.
While there are some important differences, the concepts of
statistical control applied to industry are applicable to software as well.
Characteristics of Ideal
Software Process
Measurement The basic principle behind statistical control is
measurement. If our knowledge can not be expressed in numbers, it is of a
meager and unsatisfactory kind.
There are several factors to consider in measuring the programming
process.Perhaps the most important is that the mere act of measuring
human processes changes them. Since people’s fears and motivations are
involved, the results must be viewed in a different light than data on
natural phenomena.
Development-process
improvement
• First important step in addressing software problems is to treat the entire
development task as a process that can be controlled, measured, and
improved.
• To improve their software capabilities, organizations must take five steps:
• 1- understand the current status of their development process
• 2- develop a vision of the desired process.
• 3- establish a list of required process improvement actions in
order of priority.
• 4- produce a plan to accomplish these actions
• 5- commit the resources to execute the plan.
A Maturity Framework
• The maturity framework, developed at the SEI,
addresses these five steps by characterizing a
software process into one of the five maturity
levels.
• By establishing their organization’s position in
this maturity structure, software professionals and
management can more readily identify those areas
where improvement actions are most likely to
produce results.
Process evolution
Optimizing

Process
Managed control

Process
Defined measurement

Process
Repeatable Definition

Basic
management
Initial control
Process Maturity levels

• 1- Initial Process: Is called ad hoc and often even chaotic. The


organization operates without formalized procedures, cost estimates,
and project plans.
• If there is formal procedures for project control, there is no
management mechanism to ensure they are used. The best test to
observe how such an organization behaves in a crisis is:
• Abandoning established procedures and reverting to merely coding
and testing.
• Organizations at this level can improve their performance by
instituting basic project controls. The most important are:
Initial process(cont.)
• 1-1 Project management. The fundamental role of a p.m.
system is to ensure effective control of commitments which requires
adequate preparation, clear responsibility, a public declaration, and a
dedication to performance.
– In any projects, a plan must be developed to determine the best schedule
and the resources required. In the absence of such an orderly plan, no
commitment can be better than an educated guess.
• 1-2- Management oversight. A disciplined software
development organization must have senior management oversight
that review and approve all major plans before official commitment.
Initial process
• 1-3- Quality assurance. A quality assurance group is charged
with assuring management that the software development work is
actually done the way it is supposed to be done. To be effective, the
assurance organization must have an independent reporting line to
senior management and sufficient resources to monitor performance of
all key planning, implementation, and verification activities.
• 1-4- Change control. To develop quality software on a
predictable schedule, the requirements must be maintained with
reasonable stability throughout the development cycle. Changes will
have to be made, but must be managed and introduced in an orderly
way.
Repeatable Process(cont.)
• 2- Repeatable Process:
• The organization has achieved a stable process with a repeatable level
of statistical control by initiating rigorous project management of
commitments, cost, schedule, and changes.
• This process has one important strength over the initial process: it
provides commitment control.
• Organizations at this level face major risks when they are presented
with new challenges. Examples of the changes that represent the
highest risk are:
• It is possible for a new technology to do more harm than good, if there
is no defined process framework.
Repeatable Process(cont.)
• When the organization must develop a new kind of product, it is
entering new territory. For example, a software group that has
experience developing compilers will likely have design, scheduling,
and estimating problems if assigned to write a control program.
Similarly, a group that has developed small, self-contained programs
will not understand the interface and integration issues involved in
large scale projects. These changes can be disruptive.
• In this level, a new manager has no orderly basis for understanding
what is going on and new team members must learn the ropes through
word of mouth.
• The key actions required to advance from the Repeatable Process to
the Defined Process are:
Repeatable Process(cont.)
– 2-1- Establish a process group which is a technical group
that focuses exclusively on improving the software developing
process. In most software organizations, people are entirely devoted
to product work.. Until someone is given a full-time assignment to
work on the process, little orderly progress can be made in
improving it.
– The responsibilities of process groups include: defining the
development process, identifying technology needs and
opportunities, conducting quarterly management that reviews
process status and performance.
– Typically, the process group should be about 1 to 3 percent the size
of the organization, small organizations should address these issues
through specially formed committees of experienced professionals
or by retaining consultants.
Repeatable Process
• 2-2- Establish a software-development process
architecture that describes the technical and management activities
required for proper execution of the development process.
The architecture is a structural decomposition of the development
cycle into tasks, each of which has entry criteria, fundamental
descriptions, verification procedures, and exit criteria. The
decomposition continues until each defined task is performed by an
individual or single management unit.
• 2-3- If they are not already in place, introduce a family of software-
engineering methods and technologies. These include design and
code inspections, formal design methods, library-control systems, and
comprehensive testing methods, prototyping and adoption of modern
implementation languages..
Defined Process(cont.)
• 3- Defined process:To ensure consistent implementation and
provide a basis for better understanding of the process, the
organization has defined the process. At this point that the
organization achieved the foundation for major and continuing
progress, advanced technology can usefully be introduced. The
development group, when faced with a crisis, will likely continue to
use the Defined Process.
• The foundation has now been established for examining the process
and deciding how to improve it
• As powerful as this step is, it is still only qualitative: There is little
data to indicate what is going on or how effective the process really is.
There is considerable debate about the value of software process
measurements and the best ones to use.
Defined Process(cont.)
• This uncertainty stems from a lack of process definition and the
consequent confusion about the specific items to be measured.With a
defined process, we can focus the measurements on specific tasks.
• The key steps to advance to the Managed Process are:
3-1- Establish a minimum, basic set of process
measurements to identify the quality and cost parameters of
each process step. The objective is to quantify the relative costs
and benefits of each major process activity, such as the cost and
yield of error detection and correction methods.
3-2- Establish a process database with the resources to
manage and maintain it.Cost and yield data should be maintained
centrally to guard against loss, to make it available for all projects,
and to facilitate process quality and productivity analysis.
Defined Process
3-3- provide sufficient process resources to gather and
maintain this data and to advise project members on its use.
Assign skilled professionals to monitor the quality of the data
before entry in the database and to provide guidance on analysis
methods and interpretation.
3-4- Assess the relative quality of each product and
inform management where quality targets are not being met. An
independent quality-assurance group should assess the quality actions
of each project and track its progress against its quality plan.When this
progress is compared with the historical experience on similar
projects, an informed assessment generally can be made.
Managed Process(cont.)
• 4- Managed Process: The organization has initiated
comprehensive process measurements, beyond those of cost and
schedule performance. This is when the most significant quality
improvements begin.
• The greatest potential problem with the Managed Process is the cost of
gathering data. There are an enormous number of potentially valuable
measures of software development and support, but such data is
expensive to gather and maintain.
• Process data must not be used to compare projects or individuals. Its
purpose is to illuminate the product being developed and to provide an
informed basis for improving the process.
Managed Process
• The followings are two fundamental requirements to advance from the
Managed Process to the Optimizing Process:
• 4-1-Support automatic gathering of process data. Some data cannot
be gathered by hand, and all manually gathered data is subject to error
and omission.
• 4-2- Analyzing and modifying the process by using this data to
prevent problems and improve efficiency.
Optimizing Process(cont.)
• 5- Optimizing Process: In varying degrees, Process
Optimization goes on at all levels of process maturity. However, with
the step from the Managed to the Optimizing Process there is a
paradigm. Up to this point, software development managers have
largely focused on their products and will typically only gather and
analyze data that directly relates to product improvement. In the
Optimizing Process, the data is available to actually tune the process
itself.
• With a little experience, management will see that process
optimization can produce major quality and productivity
improvements.
Optimizing Process(cont.)
• For example, many errors can be identified and fixed far more
economically by code inspections than through testing. It takes about
one to four working hours to find and fix a bug through inspections
and about 15 to 20 working hours to find and fix a bug in a function or
system test. It is thus clear that testing is not a cost-effective way to
find and fix most bugs. But it would be unwise to eliminate testing
completely because it provides a useful check against human errors.
• In the optimizing process, the organization has the means to identify
the weakest elements of the process and fix them, the data is available
to justify the application of technology to various critical tasks.
Optimizing Process
• The Optimizing Process provides a disciplined environment for
professional work. Discipline is required in large software projects to
ensure, for example, that the people involved use the same
conventions, don’t damage each other’s products, and properly
synchronize their work.
• There is little data on how long it takes for software organizations to
advance through these maturity levels toward the Optimizing Process.
Based on author’s experience, transition from level 1 to level 2 or
from level 2 to level 3 takes from one to three years, even with a
dedicated management commitment to process improvement. To date,
no complete organizations have been observed at levels 4 or 5.
How to use this framework
• This process-maturity structure is intended to be
used with an assessment methodology and a
management system. Using this framework, the
SEI has developed an assessment questionnaire
and methodology.
• The questionnaire has been reviewed by more than
400 organizations. Also, it has been completed by
more than 50 programming professionals from
nearly as many software organizations.
Conclusion
– This software-development process maturity
model provides a framework for assessing
software organizations and identifying the
priority areas for immediate improvement.
– It also helps identify those places where
advanced technology can be most valuable in
improving the software development process.

You might also like