From: darryl@infonode.ingr.com (Darryl Davis)
Subject: Software Process Maturity Presentation
Keywords: SEI, CMM, Software Process, Software Engineering
Organization: Intergraph Corporation, Huntsville, AL.
Date: Sat, 21 Nov 1992 20:27:31 GMT

    The Huntsville ACM SIGAda is hosting a special evening presentation on
the Carnegie Mellon University Software Engineering Institute's (SEI's)
Capability Maturity Model (CMM) for Software, featuring Mark Paulk of the
SEI, project leader of the CMM Project.  This will be held on Tuesday,
November 24th at 7:30 p.m. at BDM International, 950 Explorer Blvd., in
Huntsville.

    On overview of the CMM is provided below.  This is mostly condensed from
the SEI writings.


Huntsville ACM SIGAda officers:

        Chairperson:        Jerry Mungle
                            Nichols Research Corp.
                            883-1170, ext. 1273

        Vice-Chairperson:   Kevin J. Weise
                            COLSA Corp.
                            922-1512, ext. 1864    

        Secretary:          Gunde Siripuram
                            COLSA Corp.
                            922-1512, ext. 1864

        Treasurer:          Anna Sherwood
                            BDM International
                            922-5226

        Past Chairperson:   John Wiley
                            Intergraph Corp.
                            730-4376

---

AN EXECUTIVE OVERVIEW OF
THE CAPABILITY MATURITY MODEL FOR SOFTWARE

Prepared by
Darryl Davis and Dana Wallace

Intergraph Corporation

November 21, 1992


The software process is the set of activities, methods, and practices people
use to develop and maintain software and the associated products.

It has been proven that process improvement greatly contributes to improved
profitability, with very significant returns on the investment.  The
quality, cost, and schedule of a software product is greatly affected by the
quality of the process used to create it. After failing to realize promised
productivity and quality gains from new methods and technologies,
organizations have come to realize that the fundamental problem is the
inability to manage the overall software process. Improving the process, and
improving our understanding of the process, will have the direct result of
improved software at less cost and in less time.

The Carnegie Mellon University (CMU) Software Engineering Institute's
(SEI's) Capability Maturity Model (CMM) for Software [Paulk91, Weber91]
provides an evolutionary strategy for software organizations to use in
developing a mature, disciplined, software process.  It covers practices for
planning, engineering, and managing software development and maintenance. 
The CMM helps answer the questions:

     o How good is our current software process?

     o What must we do to improve it?

     o Where do we start?

The CMM is based on time-proven quality principles.  It applies Total
Quality Management to software.  Its roots are in statistical quality
control, which was developed by Shewart in the 1930s and further developed
and successfully demonstrated (primarily in Japan) by Deming [Deming86] and
Juran [Juran88, Juran89].

The CMM casts these principles into a maturity framework (first inspired by
Crosby [Crosby79]).  The framework consists of five maturity levels that
describe the progression from a chaotic process to a well controlled,
optimizing process.   The levels lay successive foundations for continuous
process improvement.  By determining their position in this framework,
organizations can readily identify the most fruitful areas for improvement
actions.  [Humphrey91]  Each level establishes an intermediate set of goals
toward higher levels of process maturity.

Level 5, the "optimizing" level, is the highest level of maturity
represented in the model.  At level 5, the process is self-optimizing based
on the feedback of process measurements.  But before an organization can
attempt to achieve this level, these process measurements must be in place.

At level 4, the "managed" level, a quantitatively measured process has been
established.  But before a process can be measured, it must first be well
defined.

At level 3, the "defined" level, the process is well defined and
institutionalized.  "At this point advanced technology can usefully be
introduced." [Humphrey89]  But an organization cannot devote the attention
needed to successfully establish such a process unless they are out of
"crisis mode."

At level 2, the "repeatable" level, the organization is not tied up battling
crisis situations.  Basic project management, requirements management,
subcontract management, configuration management, and software quality
assurance are in place.  "Planning and managing new projects is based on
experience with similar projects." [Paulk91]  The commitments are realistic.
"Project managers track software costs, schedules, and functionality; and
problems in meeting commitments are identified when they arise.  Software
requirements and the artifacts developed to satisfy them are baselined, and
their integrity is controlled." [Paulk91]  Project standards are defined and
followed.  Project teams work with their customers and subcontractors to
establish an effective working environment.  The organization is able to
repeat successful practices developed on earlier projects.  At this stage,
basic software engineering methods and technologies can be introduced if
great care is used to keep the risk down.

Level 1, the "initial" level, is the lowest level of maturity.  The process
is ad hoc and maybe even chaotic.  Sound management practices are lacking. 
Quality, cost, and schedule are generally unpredictable.  It is an unstable
environment for software development and maintenance.  Poor planning and
reaction-driven commitments undermine the benefits of software engineering
practices.  It is "difficult or even impossible to introduce advanced
methods and technology." [Humphrey89]  The projects are frequently in
crisis, driving them to abandon any planned procedures and revert to coding
and testing.  A project's success depends completely on its having an
exceptional manager and software team.  These very rare managers can
sometimes withstand the pressures to take shortcuts in the process, but when
they leave the project their stabilizing influence leaves with them.

Experience has shown that it typically takes an organization committed to
process improvement anywhere from a year and a half (by some small
organizations) to three years to progress by one complete level of maturity;
but the progression from level 1 to level 2 may require more on the order of
three to five years.  However, there are many factors that may cause the
time to vary more widely.

The CMM is:

    o Cutting edge:  The CMM is the product of the most up-to-date research
      by the nation's foremost software engineering organization.  Extensive
      testing continues in order to improve and evolve the CMM.

    o Evolutionary:  It is based on many small, evolutionary steps each
      providing the foundation for the next step.

    o Focused:  Organizations can use the CMM to identify deficiencies and
      work aggressively on the few issues most critical to improving the
      software process.

    o Low risk:  The SEI performs extensive research to identify, experiment
      with, scale up, and prove the practices in the CMM.  Risk is minimized
      for managers who must meet commitments and cannot afford to experiment
      with their process.

    o Flexible:  The CMM does not require any specific software technology,
      organizational structure, life-cycle model, or set of documents.  Care
      has been taken to provide a complete set of valid principles that
      apply to a wide range of situations, not a rigid set of rules and
      regulations.

    o Specific:  The CMM consists of clear-cut goals, and specific practices
      that can be used to achieve those goals.

    o Supported:  The SEI supports the CMM with comprehensive documentation,
      training, and certified vendors.


FURTHER READING

The SEI technical report "Capability Maturity Model for Software" [Paulk91]
gives an overview of the CMM.  Specifically, it includes a brief history and
rationale, describes the framework and structure of the CMM, and explains
how organizations can use the CMM to improve their process.

The SEI technical report "Key Practices of the Capability Maturity Model"
[Weber91] describes the practices that correspond to each maturity level of
the CMM.  "It is an elaboration of what is meant by maturity at each level of
the CMM and a guide that can be used for software process assessments,
software capability evaluations, and process improvements." [Weber91]

The book Managing the Software Process [Humphrey89] covers the essentials of
software management.  It, together with the paper "Characterizing the
Software Process," [Humphrey88] provided the initial foundation for the CMM.
This book is the place to turn to for more comprehensive and detailed
guidance for improving the process.

The paper "Software Process Improvement at Hughes Aircraft" [Humphrey91]
presents how Hughes' Software Engineering Division progressed from level 2
to level 3 of the model in just two years, and discusses how much it cost
and the benefits gained.


REFERENCES

[Crosby79]  P. B. Crosby, Quality is Free, McGraw-Hill, New York, NY, 1979.

[Deming86]  W. Edwards Deming, Out of the Crisis, MIT Center for Advanced
Engineering Study, Cambridge, MA, 1986.

[Humphrey88]  Watts S. Humphrey, "Characterizing the Software Process," IEEE
Software, March 1988.

[Humphrey89]  Watts S. Humphrey, Managing the Software Process,
Addison-Wesley, Reading, Mass., 1989.

[Humphrey91]  Watts S. Humphrey, Terry R. Snyder, and Ronald R. Willis,
"Software Process Improvement at Hughes Aircraft," IEEE Software, July 1991.

[Juran88]  Joseph M. Juran, Juran on Planning for Quality, Macmillan, New
York, NY, 1988.

[Juran89]  Joseph M. Juran, Juran on Leadership for Quality, The Free Press,
New York, NY, 1989.

[Paulk91]  Mark C. Paulk, et. al., "Capability Maturity Model for Software,"
Tech. Report CMU/SEI-91-TR-24, SEI, CMU, Pittsburgh, Pennsylvania, August
1991.

[Weber91]  Charles V. Weber, et. al., "Key Practices of the Capability
Maturity Model," Tech. Report CMU/SEI-91-TR-25, SEI, CMU, Pittsburgh,
Pennsylvania, August 1991. 


--                                                                         --
Darryl L. Davis                                 Phone:  (205) 730-8554
Senior Technical Manager                        Fax.:  (205) 730-8344
Custom Services Group                           Internet:  darryl@ingr.com
Intergraph Electronics Design Automation
Mail Stop LR23B2                                   
Intergraph Corporation            
Huntsville, AL  35894-0001  USA
--                                                                         --