A Support Process Area at Maturity Level 2
The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and
configuration audits.
The Configuration Management process area involves the following activities:
· Identifying the configuration of selected work products that compose baselines at given points in time
· Controlling changes to configuration items
· Building or providing specifications to build work products from the configuration management system
· Maintaining the integrity of baselines
· Providing accurate status and current configuration data to developers, end users, and customers
The work products placed under configuration management include the products that are delivered to the customer, designated internal work products, acquired products, tools, and other items used in creating and describing these work
products. (See the definition of “configuration management” in the glossary.)
Examples of work products that can be placed under configuration management include the following:
· Hardware and equipment
· Drawings
· Product specifications
· Tool configurations
· Code and libraries
· Compilers
· Test tools and test scripts
· Installation logs
· Product data files
· Product technical publications
· Plans
· User stories
· Iteration backlogs
· Process descriptions
· Requirements
· Architecture documentation and design data
· Product line plans, processes, and core assets
Acquired products may need to be placed under configuration management by both the supplier and the project. Provisions for conducting configuration management should be established in supplier agreements. Methods to ensure that
data are complete and consistent should be established and maintained.
Refer to the Supplier Agreement Management process area for more information about establishing supplier agreements.
Configuration management of work products can be performed at several levels of granularity. Configuration items can be decomposed into configuration components and configuration units. Only the term “configuration item” is used in this process area. Therefore, in these practices, “configuration item” may be interpreted as “configuration component” or “configuration unit” as appropriate. (See the definition of “configuration item” in the glossary.)
Baselines provide a stable basis for the continuing evolution of configuration items.
An example of a baseline is an approved description of a product that includes internally consistent versions of requirements, requirement traceability matrices, design, discipline-specific items, and end-user
documentation.
Baselines are added to the configuration management system as they are developed. Changes to baselines and the release of work products built from the configuration management system are systematically controlled and monitored via
the configuration control, change management, and configuration auditing functions of configuration management.
This process area applies not only to configuration management on projects but also to configuration management of organizational work products such as standards, procedures, reuse libraries, and other shared supporting
assets.
Configuration management is focused on the rigorous control of the managerial and technical aspects of work products, including the delivered product or service.
This process area covers the practices for performing the configuration management function and is applicable to all work products that are placed under configuration management.
For product lines, configuration management involves additional considerations due to the sharing of core assets across the products in the product line and across multiple versions of core assets and products. (See the definition
of “product line” in the glossary.)
In Agile environments, configuration management (CM) is important because of the need to support frequent change, frequent builds (typically daily), multiple baselines, and multiple CM supported workspaces (e.g., for
individuals, teams, and even for pair-programming). Agile teams may get bogged down if the organization doesn’t: 1) automate CM (e.g., build scripts, status accounting, integrity checking) and 2) implement CM as a single set of standard
services. At its start, an Agile team should identify the individual who will be responsible to ensure CM is implemented correctly. At the start of each iteration, CM support needs are re-confirmed. CM is carefully integrated into the rhythms of
each team with a focus on minimizing team distraction to get the job done. (See “Interpreting CMMI When Using Agile Approaches” in Part I.)
Refer to the Project Monitoring and Control process area for more information about monitoring the project against the plan and managing corrective action to closure.
Refer to the Project Planning process area for more information about developing a project plan.
Specific Goal and Practice Summary
SG 1 Establish Baselines
SP 1.1 Identify Configuration Items
SP 1.2 Establish a Configuration Management System
SP 1.3 Create or Release Baselines
SG 2 Track and Control Changes
SP 2.1 Track Change Requests
SP 2.2 Control Configuration Items
SG 3 Establish Integrity
SP 3.1 Establish Configuration Management Records
SP 3.2 Perform Configuration Audits