Untitled Document
CMMI

 

CMMI

PSL has an experienced staff with a consultative background working within the Commercial and Government space, incorporating best-practices to allow customers to achieve optimal levels of success using the Capability Maturity Model framework.

Developing reliable and usable software that is delivered on time and within budget is a difficult endeavor for many organizations. Products that are late, over budget, or that don't work as expected also cause problems for the organization's customers. As software projects continue to increase in size and importance, these problems become magnified. These problems can be overcome through a focused and sustained effort at building a process infrastructure of effective software engineering and management practices.

To build this process infrastructure, organizations producing software need ways to appraise their ability to perform their software process successfully. They also need guidance to improve their process capability. Customers, such as the Department of Defense (DoD), need ways to evaluate more effectively an organization's capability to perform successfully on software engineering contracts. Prime contractors need ways to evaluate the capability of potential subcontractors.

To help organizations and customers like the DoD and prime contractors, the Software Engineering Institute (SEI) has developed the Capability Maturity Model for Software (CMM), that delineates the characteristics of a mature, capable software process. The progression from an immature, unrepeatable software process to a mature, well-managed software process also is described in terms of maturity levels in the model.

The CMM can be used for:

  • software process improvement, in which an organization plans, develops, and implements changes to its software process;
  • software process assessments, in which a trained team of software professionals determines the state of an organization's current software process, determines the high-priority software process-related issues facing an organization, and obtains the organizational support for software process improvement; and
  • software capability evaluations, in which a trained team of professionals identifies contractors who are qualified to perform the software work or monitors the state of the software process used on an existing software effort.
  • This document describes the key practices that correspond to each maturity level in 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 improvement, software process assessments, and software capability evaluations.
  • The key practices of the CMM are expressed in terms of what is expected to be the normal practices of organizations that work on large, government contracts. In any context in which the CMM is applied, a reasonable interpretation of how the practices would be applied should be used. Guidelines on interpreting the CMM are contained in Chapter 4 of this document. The CMM must be appropriately interpreted when the business environment of the organization differs significantly from that of a large contracting organization. The role of professional judgment in making informed use of the CMM must be recognized.

ProcessCMM Overview:

The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. The CMM describes an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process.

The CMM covers practices for planning, engineering, and software development manage and maintenance. These are the identified key practices contributing to quality of software development process the most. Following the standards defined in CMM can improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality. These standards can not only be used as criteria to judge process quality, but also be used as guidelines for companies to improve their process.

The CMM consists of five maturity levels. Every maturity level includes several key process areas. Each key process area identifies a group of related activities that, when performed collectively, achieve a set of goals considered important for establishing process capability at that maturity level. The key process areas have been defined to reside at a single maturity level.

Key process areas for level 2 include:

  • Requirements management
  • Software project planning
  • Software project tracking and oversight
  • Software subcontract management
  • Software quality assurance
  • Software configuration management

The CMM establishes a yardstick against which it is possible to judge, in a repeatable way, the maturity of an organization's software process and compare it to the state of the practice of the industry [Kitson92]. The CMM can also be used by an organization to plan improvements to its software process.

Untitled Document