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 incorporates 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 chapters. 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 organizing...evolutionary steps into five maturity levels that lay successive foundations for continuous process improvement A maturity level is a well-defined evolutionary plateau toward achieving a mature software process. Each maturity level comprises a set of process goals that, when satisfied, stabilize an important component of the software process Organizing the CMM into the five levels shown in (Figure 4-6) prioritizes improvement actions for increasing software process maturity The five levels can be briefly described as:

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

Repeatable. Basic project management processes are established to track cost, schedule, and functionality. The necessary 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 innovative ideas and technologies.^

Figure 4-6. SEI CMM Key Process Areas by Maturity Level

Figure 4-6. SEI CMM Key Process Areas by Maturity Level

I Wl hllM) ta UtUU'R^ niHI IWVjWM !Ufll i Qy an Illative Process Ma nag anient

Each maturity level is decomposed into several key process areas that indicate where an organization should focus to improve its software process. Each key process area (KPA) identifies a cluster of related activities that, when performed collectively, 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 effectively implemented the key process area. The goals signify the scope, boundaries, and intent of each KPA.

The KPAs at Level 2 focus on the software project's concerns related to establishing 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 chapter, 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 provides a common language and eases transitions as developers come on board, particularly if they lack experience.

Having a repeatable process (Level 2) does not, however, automatically mean having a good process. Generally, processes improve when an organization achieves SEI Level 3 (L3), the defined level. L3 addresses both project and organizational issues, as the organization establishes 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 involves 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 include documenting and maintaining descriptions of software life cycles that are approved for use by the projects. Examplesof software life cycles include 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 enacted.

Integrated Software Management

The purpose of the Level 3 KPA integrated software management is to integrate 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, described 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 typically 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 necessary, in ways permitted by the organization's tailoring guidelines and criteria; and documented according to the organization's standards.

^ previous

* previous

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook

Post a comment