The SEI CMM and the Life Cycle

The SEI CMM and the Life Cycle

Quality software project management is based upon the interlaced bodies of knowledge from three sources: software engineering (ACM, IEEE), project management (PMI), and quality (ASQ). The Software Engineering Institute (SEI) at Carnegie Mellon University includes all three. The Capability Maturity Model (CMM), a publicly available product, serves as a software process framework that is based on actual practices, that reflects the best of the state of the practice, and that reflects the needs of individuals performing software process improvement and software process appraisals. The way in which quality software project management conforms to the SEI CMM will be referred to many times in future sections. Because the CMM is well known in software engineering circles, there is little need to redefine it here. We will provide only a brief description to show support for a life cycle. A short summary of the CMM maturity levels follows.

The CMM provides a framework for organizingevolutionary steps into five maturity levels that lay successive foundations for continuous process improvement.A maturity level is a well-defined evolutionary plateau toward attaining a mature software process. Each maturity level consists of a set of process goals that, when satisfied, stabilize an important element of the software process.Organizing the CMM into the five levels shown in (the following figure) prioritizes improvement actions for increasing software process maturity.The five levels can be briefly explained as:

Initial. The software process is characterized as ad hoc, and infrequently even disorganized. Few processes are defined, and success depends on individual effort and heroics.

Repeatable. Main project management processes are created to track cost, schedule, and functionality. The required process discipline is in place to repeat earlier successes on projects with similar applications.

Defined. The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.

Managed. Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.

Optimizing. Continuous process improvement is enabled by quantitative feedback from the process and from piloting new ideas and technologies.

SEI CMM Key Process Areas by Maturity Level

Each maturity level is decomposed into various key process areas that indicate where an organization should focus to improve its software process. Each key process area (KPA) identifies a group of related activities that, when performed together, achieve a set of goals considered important for enhancing process capability. The goals of each key process area summarize its key practices and can be used in determining whether an organization or project has well implemented the key process area. The goals indicate the scope, boundaries, and intent of each KPA.

The KPAs at Level 2 focus on the software project's concerns related to creating basic project management controls. We will return to this level when we discuss project competencies. For now, we need to know that a repeatable process (Level 2) enables an organization to be more structured and manageable. Life cycles, the topic of this section, provide a definition of what is meant by the process to be performed and the product to be built by the process. Having such a definition available gives a common language and eases transitions as developers come on board, specifically if they lack experience.

Having a repeatable process (Level 2) does not, however, automatically mean having a good process. Usually, processes improve when an organization achieves SEI Level 3 (L3), the defined level. L3 addresses both project and organizational issues, as the organization creates an infrastructure that institutionalizes effective software engineering and management processes across all projects. Two KPAs, organizational process definition and integrated software management, reference the subject of life cycles. In the discussion of these two KPAs, the mention of the software life cycle will be bolded. KPA descriptions are from The Capability Maturity Model.

Organization Process Definition

The purpose of the Level 3 KPA organization process definition is to develop and maintain a usable set of software process assets that improve process performance across the projects.Process definition includes developing and maintaining the organization's standard software process, along with related process assets, such as descriptions of software life cycles, process tailoring guidelines and criteria,

A goal of organization process definition is to develop and maintain a standard software process for the organization. Activities contain documenting and maintaining descriptions of software life cycles that are approved for use by the projects. Examples of software life cycles contain waterfall, overlapping waterfall, spiral, serial build, and single prototype/overlapping waterfall.

Guidelines and criteria for the projects tailoring of the organization's standard software process are developed and maintained. The tailoring guidelines and criteria cover selecting and tailoring the software life cycle for the project, and tailoring the organization's standard software process to accommodate the software life cycle and the project's characteristics. Examples of tailoring include adapting the process for a new product line or host environment, customizing the process for a specific project or class of projects, and elaborating and adding detail to the process so that the resulting project's defined software process can be accomplished.

Integrated Software Management

The purpose of the Level 3 KPA integrated software management is to incorporate the software engineering and management activities into a coherent, defined software process that is tailored from the organization's standard software process and related process assets, explained in "Organization Process Definition".

Goals are for the project's defined software process to be a tailored version of the organization's standard software process, and for the project to be planned and managed according to the project's defined software processes. Activities include tailoring the organization's standard software process according to a documented procedure to develop the project's defined software process. This procedure normally specifies that a software life cycle is selected from those approved by the organization, to satisfy the project's contractual and operational constraints; modified, if required, in ways allowed by the organization's tailoring guidelines and criteria; and documented according to the organization's standards.


software project management, software engineering, life cycle
The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.
Copyright 2018 SPMInfoBlog.
Designed by TechPlus