The Capability Maturity Model (CMM) is a model that describes the evolution of a software development process. Introduced in 1991 by Software Engineering Institute (SEI), a federally funded research center. It has become maybe the most prestigious benchmark and tool for software companies, when it comes to those creating large-scale, idiot-proof systems. The model describes 5 levels of maturity of development processes according to well-defined criteria. 

It is a good model if you have developed a large system that you just keep on modifying and modifying. If you're building websites, well... it's probably way too expensive. I have seen estimates that about 75% of software companies are on level 1, and less than 1% on level 4. Level 5 companies are rare, and there are only a handful, on a global scale. Companies that go through the effort of reaching level 4 or even 5, usually make big fuss out off it, hoping it will generate more customers, which it probably does in their market. Defense contractors usually have to be on level 3 when bidding for large systems. 

There are many companies wanting to have your money in exchange for helping you reach the next level. Certified, of course. 

The five CMM levels and the how to reach them:

  1. Initial - Ad hoc process, occasionally chaotic. Usually highly dependent on a guru
    Level 1 companies must work on putting a development process in place, with project management for estimation and evaluation of the projects. Also required are configuration management, quality assurance practices, requirement management and subcontractor management. This done, one can reach
  2. Repeatable - The company have successfully implemented the above mentioned process but is still dependable on individuals in times of stress.
    This organization must establish practices for the above, applicable and specific to their needs. They must have and follow standards and procedures for these practices. The next level is
  3. Defined - The process is the organization, not individuals. The organization train itself on its practices. 
    The first three levels mostly works on improving Product quality. Now it is time to put emphasis on Process quality by establishing process measurement tools. These are used for correction of errors in the development process itself. Go to
  4. Managed -  The key is Continuous Process Improvement.
    To move from here, one must not only improve the existing process, but also exchange parts of it with new and better processes. To the top
  5. Optimizing - This company evaluate new process candidates continuously, trying to improve and optimize their process to its need.

 

source: SEI

The Capability Maturity Model (CMM) is a tool to guide an organization to improve the management of the processes of its business. It was developed to help implement industrial and scientific principles in the software industry and thereby grow the profession to a level of professional engineering. Achieving such a level of professionalism will reduce the massive failures and attendant financial losses currently experienced in the software development field.

First, I describe the purpose of the CMM and the underlying principles on which it was built. Second, is a brief description of the five levels of the Model. Third, I describe my personal experiences implementing the concepts of the CMM in the financial management industry.

CMM Purpose and Theoretical Foundation

The model helps meet software development improvement by providing descriptions of the behavior an organization must perform in order to monitor and control its business. The model describes the structures, methods, and management systems an organization must create and install in order to improve software development. Management's purpose is to understand a process and then learn to control the behavior of that process to maximize value to the company. The CMM provides a framework for management to gain such understanding.

The Software Engineering Institute's (SEI) goal for software development improvement is to bring scientific principles to the software development process and thereby upgrade the software development industry from a craft to scientific-based professionalism.

The CMM is founded on the concept of establishing professional engineering practices for the software industry. Such professionalism exists in other disciplines, notably chemical engineering. As Diagram 1 shows, engineering progresses from craft through industrialization/commercialization and on to the scientifically-based, professional engineering level. This progression is the Engineering Evolution Paradigm.1

Diagram 1 shows the initial development of a Craft. At a later time Production elements are introduced to the Craft and the combination produces a Commercialization Level of performance to the field. Then scientific principles are discovered and incorporated into the discipline and the result is Professional Engineering. Descriptive characteristics are listed at each stage of the developmental model.

Diagram 1
Engineering Evolution Paradigm



                                                   ------------------- SCIENCE ->
                                                                                 |
                                                 * skilled craftsmen             |
                                                 * established procedure         |
 ---------------------------- PRODUCTION ->      * training in mechanics          -------- PROFESSIONAL ENGINEERING --------->
                                           |     * concern for cost              |
  * virtuosos & talented amateurs          |     * manufacture for sale          |    * educated professionals
  * extravagant use of materials           |                                     |    * analysis & theory
  * design by intuition & brute force       ---------------- COMMERCIALIZATION ->     * progress relies on science
  * knowledge transmitted slowly, casually |                                          * analysis enables new applications
  * manufacture for use rather than sale   |                                          * market segmented by product variety
                                           |
 --------------------------------- CRAFT ->


Software engineering has progressed in the first 50 years of its existence, but not consistently nor sufficiently. Diagram 2 shows an approximation of the field in 1994. Commercialization has occurred but not broadly enough. In addition, scientific principles have not been incorporated sufficiently to bring the industry to a level a professional engineering.2

Diagram 2
Software Engineering Status (circa 1994)



                                              1956: IBM invents FORTRAN.
     1970s: structured programming methods       1968: Donald Knuth publishes theory of
            gain favor.                                algorithms and data structures.
        1980s: fourth-generation languages          1970s: Smalltalk OO language released.
               released.                               1980s: formal methods and
           1990s: re-use repositories founded.                notations refined.

                                                  ------------------- SCIENCE ->
 ---------------------------- PRODUCTION ->                                         ----- PROFESSIONAL ENGINEERING --------->
                                                 ---------- COMMERCIALIZATION ->
 --------------------------------- CRAFT ->                                                 1994: isolated examples only of
  1950s: programs small & intuitive                1980s: most gov't & mgmt info                  algorithms, data structures
     1970s: SABRE airline reservation                     systems use some production             and compilers
            system rare success.                          controls.  some safety
        1990s: most PC software still                     systems use rigorous
               hand-crafted                               controls.


CMM Description

The CMM is a model of how an organization may grow or mature in its ability to manage its software processes. The model describes five levels of maturity. The five stages are Initial, Repeatable, Defined, Managed, and Optimizing.

The Initial stage describes an organization that does not manage its software processes. Activities are performed ad hoc often depending heavily on the 'heroic' performance of one or a few individuals. There are no formal procedures or processes.

The Repeatable stage is the first level of managing processes. The basic elements of project management are set up and used to monitor projects. The elements of a project that are managed include the cost and schedule. At this stage the fundamental skills are established so that an organization may repeat these procedures on each project.

The Defined stage establishes a generic standardized process for the entire organization. Such a process is documented and established as the standard for both management and engineering activities in the software development process. Any one specific project may tailor the standard process to fit its unique circumstances, but all such modified processes are at their core the organization's standard process.

The fourth level in the CMM model is named the Managed stage. The organization collects and analyzes detailed quantitative metrics of the software development process and the quality of the resulting products. The data are used to monitor and manage the development process. At the Managed stage the organization quantitatively monitors the process to ensure it stays within established ranges of variation.

The final or fifth level is named Optimizing. At this stage the organization actively and continuously monitors its process(es). It looks for and corrects structural problems in the process(es) themselves. At the Optimizing stage the organization seeks out causes of process variation and then corrects the process to eliminate those causes. The organization performs continuous process improvement.3

CMM Applied to Financial Management Processes

A few years ago I generalized the concepts in the CMM to apply to my department in the financial asset management industry. The concepts in the CMM are stated in terms of software product development, but I saw their usefulness as a general model to be applied to any organization that has processes.

My purpose was to create structure where there was none. The mortgage servicing operation was entirely dependent upon me to accomplish tasks. My goal as servicing manager was to convert my intellectual assets into structural assets. That is to say create formal procedures, document them, and then to monitor to see that they are properly followed. In so doing, I could move the department from the CMM stage 1, Initial up to stage 2, Repeatable. The work could then be distributed among other employees and monitored.

Table 1 below shows the Key Components or "characteristics of Stage 2, Repeatable, of the Capability Maturity Model compared to the generalization of those concepts to the Commercial Mortgage Loan Servicing Industry. Among other structural assets I created the most important items were the Department Services Manual, the Annual Data Packages, and the Policy Manual. These three documents form the core of the department's repeatable processes.

The Department Services Manual shows how particular major processes are performed by the department. The Annual Data Package is the annual loan due diligence and credit scoring system used to monitor the quality of the portfolio. The final document is the Policy Manual which describes how our business partners should perform their services for my employer.

Table 1.
CMM Concepts Applied to Mortgage Asset Management


       CMM  Stage 2 Repeatable                      Mortgage Servicing Department
         "Characteristics"                                  Translation
       -----------------------                      -----------------------------

    1.  Requirements Management                 1 & 2. Loan Setup
    2.  Software Project Planning                   * Standard Loan Documents
                                                        > Commitment Agreement (contract requirements)
                                                        > Standardized Note, Mortgage, and other docs.
                                                    * Formal Loan Closing process
                                                    * Data Quality Metrics

    3.  Software Project Tracking               3. Servicing Monitoring
        and Oversight.                              * Payment Tracking
                                                    * Formal Maintenance Request Procedures

    4.  Software Sub-contract                   4. Business Partner Management
        Management.                                 * Contract with Mortgage Bankers
                                                    * Policy Manual

    5.  Software Quality Assurance              5. Quality Due Diligence
                                                    * Annual Loan Due Diligence Data Packages

    6.  Software Configuration Management.      6. Process Configuration Management.
                                                    * Department Services Manual
                                                    * Loan Undrwriting Process Description
                                                    * Loan Closing Process Description

In conclusion, the Capability Maturity Model was developed to help organizations obtain control and manage their software development processes. The CMM helps an organization to accomplish control by injecting commercialization and scientific principles into those processes. A company that follows the CMM will be able to better manage its operations and thus reduce the cost of the project failures so prevalent in the industry. The CMM has five stages of development. The Model can be generalized sufficiently to be applied to other industries and their attendant processes.



Footnotes:

  1. Gibbs, page 92.
  2. ibid.
  3. Carnegie Mellon, page 20.

References:

  • Carnegie Mellon University Software Engineering Institute The Capability Maturity Model: Guidelines for Improving the Software Process. Reading, MA: Addison-Wesley, 1994.
  • Gibbs, W. Wayt. "Software's Chronic Crisis." Scientific American Sept. 1994: 86-95.

Log in or register to write something here or to contact authors.