The Capability Maturity Model for Software [Paulk+1993; Paulk+1995] is a model for building organizational capability that has been widely adopted in the software community and beyond. The Software CMM is a five-level model that describes good engineering and management practices and prescribes improvement priorities for software organizations. The five maturity levels are summarized in Table 42.1
Although the CMM is described in a book of nearly 500 pages, the requirements to be a Level 5 organization can be concisely stated in 52 sentences: the goals of the 18 key process areas (KPAs) that formally describe the model. The practices, subpractices, and examples that flesh out the model are informative material that guide software professionals in making reasonable, informed decisions about the adequacy of a broad range of process implementations in environments as diverse as two- to three-person projects in a Web environment and 500-person projects building hard real-time, life-critical systems.
The informative material in the Software CMM is focused on large projects and large organizations, primarily in a custom development or maintenance environment. Even so, the degree of interpretation and tailoring required to use the CMM in radically different environments, such as small start-up companies, small projects, or e-commerce environments, is relatively minor so long as common sense is applied [Paulk1999; Johnson+2000]. The Software CMM's rating components are intended to be abstract enough to capture "universal truths" about high-performance software organizations, at least from a perspective of organizational excellence, and are listed in Table 42.2.
With the exception of Software Subcontract Management, which is not applicable if an organization does not do subcontracting, the key process areas and their goals should be applicable to any software organization. Companies that focus on innovation more than operational excellence may downplay the importance of consistency, predictability, and reliability, but performance excellence is important even in highly innovative environments. It is difficult to identify any goals in Table 42.2 that will not provide value to an organization, if thoughtfully implemented.
Table 42.2. Purpose and Goals of Software CMM Key Process Areas
Tag | KPA Purpose and Goals |
Maturity Level 2 Repeatable |
Requirements Management | … to establish a common understanding between the customer and the software project of the customer's requirements that will be addressed by the software project. |
RM Goal 1 | System requirements allocated to software are controlled to establish a baseline for software engineering and management use. |
RM Goal 2 | Software plans, products, and activities are kept consistent with the system requirements allocated to software. |
Software Project Planning | … to establish reasonable plans for performing the software engineering and for managing the software project. |
SPP Goal 1 | Software estimates are documented for use in planning and tracking the software project. |
SPP Goal 2 | Software project activities and commitments are planned and documented. |
SPP Goal 3 | Affected groups and individuals agree to their commitments related to the software project. |
Software Project Tracking and Oversight | … to provide adequate visibility into actual progress so that management can take effective actions when the software project's performance deviates significantly from the software plans. |
SPTO Goal 1 | Actual results and performance are tracked against the software plans. |
SPTO Goal 2 | Corrective actions are taken and managed to closure when actual results and performance deviate significantly from the software plans. |
SPTO Goal 3 | Changes to software commitments are agreed to by the affected groups and individuals. |
Software Subcontract Management | … to select qualified software subcontractors and manage them effectively. |
SSM Goal 1 | The prime contractor selects qualified software subcontractors. |
SSM Goal 2 | The prime contractor and the software subcontractor agree to their commitments to each other. |
SSM Goal 3 | The prime contractor and the software subcontractor maintain ongoing communications. |
SSM Goal 4 | The prime contractor tracks the software subcontractor's actual results and performance against its commitments. |
Software Quality Assurance | … to provide management with appropriate visibility into the process being used by the software project and of the products being built. |
SQA Goal 1 | Software quality assurance activities are planned. |
SQA Goal 2 | Adherence of software products and activities to the applicable standards, procedures, and requirements is verified objectively. |
SQA Goal 3 | Affected groups and individuals are informed of software quality assurance activities and results. |
SQA Goal 4 | Noncompliance issues that cannot be resolved within the software project are addressed by senior management. |
Software Configuration Management | … to establish and maintain the integrity of the products of the software project throughout the project's software life cycle. |
SCM Goal 1 | Software configuration management activities are planned. |
SCM Goal 2 | Selected software work products are identified, controlled, and available. |
SCM Goal 3 | Changes to identified software work products are controlled. |
SCM Goal 4 | Affected groups and individuals are informed of the status and content of software baselines. |
| Maturity Level 3 Defined |
Organization Process Focus | … to establish the organizational responsibility for software process activities that improve the organization's overall software process capability. |
OPF Goal 1 | Software process development and improvement activities are coordinated across the organization. |
OPF Goal 2 | The strengths and weaknesses of the software processes used are identified relative to a process standard. |
OPF Goal 3 | Organization-level process development and improvement activities are planned. |
Organization Process Definition | … to develop and maintain a usable set of software process assets that improve process performance across the projects and provide a basis for cumulative, long-term benefits to the organization. |
OPD Goal 1 | A standard software process for the organization is developed and maintained. |
OPD Goal 2 | Information related to the use of the organization's standard software process by the software projects is collected, reviewed, and made available. |
Training Program | … to develop the skills and knowledge of individuals so they can perform their roles effectively and efficiently. |
TP Goal 1 | Training activities are planned. |
TP Goal 2 | Training for developing the skills and knowledge needed to perform software management and technical roles is provided. |
TP Goal 3 | Individuals in the software engineering group and software-related groups receive the training necessary to perform their roles. |
Integrated Software Management | … 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. |
ISM Goal 1 | The project's defined software process is a tailored version of the organization's standard software process. |
ISM Goal 2 | The project is planned and managed according to the project's defined software process. |
Software Product Engineering | … to consistently perform a well-defined engineering process that integrates all the software engineering activities to produce correct, consistent software products effectively and efficiently. |
SPE Goal 1 | The software engineering tasks are defined, integrated, and consistently performed to produce the software. |
SPE Goal 2 | Software work products are kept consistent with each other. |
Intergroup Coordination | … to establish a means for the software engineering group to participate actively with the other engineering groups so the project is better able to satisfy the customer's needs effectively and efficiently. |
IC Goal 1 | The customer's requirements are agreed to by all affected groups. |
IC Goal 2 | The commitments between the engineering groups are agreed to by the affected groups. |
IC Goal 3 | The engineering groups identify, track, and resolve intergroup issues. |
Peer Reviews | … to remove defects from the software work products early and efficiently. An important corollary effect is to develop a better understanding of the software work products and of defects that might be prevented. |
PR Goal 1 | Peer review activities are planned. |
PR Goal 2 | Defects in the software work products are identified and removed. |
| Maturity Level 4 Managed |
Quantitative Process Management | … to control the process performance of the software project quantitatively. Software process performance represents the actual results achieved from following a software process. |
QPM Goal 1 | The quantitative process management activities are planned. |
QPM Goal 2 | The process performance of the project's defined software process is controlled quantitatively. |
QPM Goal 3 | The process capability of the organization's standard software process is known in quantitative terms. |
Software Quality Management | … to develop a quantitative understanding of the quality of the project's software products and achieve specific quality goals. |
SQM Goal 1 | The project's software quality management activities are planned. |
SQM Goal 2 | Measurable goals for software product quality and their priorities are defined. |
SQM Goal 3 | Actual progress toward achieving the quality goals for the software products is quantified and managed. |
| Maturity Level 5 Optimizing |
Defect Prevention | … to identify the cause of defects and prevent them from recurring. |
DP Goal 1 | Defect prevention activities are planned. |
DP Goal 2 | Common causes of defects are sought out and identified. |
DP Goal 3 | Common causes of defects are prioritized and systematically eliminated. |
Technology Change Management | … to identify new technologies (that is, tools, methods, and processes) and transition them into the organization in an orderly manner. |
TCM Goal 1 | Incorporation of technology changes is planned. |
TCM Goal 2 | New technologies are evaluated to determine their effect on quality and productivity. |
TCM Goal 3 | Appropriate new technologies are transferred into normal practice across the organization. |
Process Change Management | … to continually improve the software processes used in the organization with the intent of improving software quality, increasing productivity, and decreasing the cycle time for product development. |
PCM Goal 1 | Continuous process improvement is planned. |
PCM Goal 2 | Participation in the organization's software process improvement activities is organization wide. |
PCM Goal 3 | The organization's standard software process and the projects' defined software processes are improved continuously. |