126.96.36.199 The Software Configuration Management Plan shall contain: [SWE-103]
a. The project organization(s).
b. Responsibilities of the software configuration management organization.
c. References to the software configuration management policies and directives that apply to the project.
d. All functions and tasks required to manage the configuration of the software, including configuration identification, configuration control, status accounting, and
configuration audits and reviews.
e. Schedule information, which establishes the sequence and coordination for the identified activities and for all events affecting the plan's implementation.
f. Resource information, which identifies the software tools, techniques, and equipment necessary for the implementation of the activities.
g. Plan maintenance information, which identifies the activities and responsibilities necessary to ensure continued planning during the life cycle of the project.
h. Release management and delivery.
NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement.
1.2 Applicability Across Classes
Class B, Class B Safety Critical, and Classes C through E Safety Critical are labeled, "P (Center) + SO." This means that this requirement applies to the safety-critical aspects of the software and that an approved Center-defined process that meets a non-empty subset of the full requirement can be used to achieve this requirement.
Class C Not Safety Critical, Class D Not Safety Critical, and Class G are labeled with "P (Center)." This means that an approved Center-defined process that meets a non-empty subset of the full requirement can be used to achieve this requirement.
The Software Configuration Management (SCM) Plan may be tailored by software classification. Goddard Space Flight Center's (GSFC's) 580-STD-077-01,
When creating an SCM Plan, using a template ensures consistent plans for all projects at a Center. Consider the following guidance, listed by the required elements shown in the NPR 7150.2 text for this SWE, to ensure that all the required content is properly addressed and tailored for the project:
Consider the following when writing the project organization section of the SCM Plan:
- Describe where SCM fits into the technical and managerial reporting chain of the project.
- Identify by role project personnel responsible for managing the SCM activities for the project.
- Identify by role those persons on the project who will carry out SCM activities for the project.
The responsibilities of the SCM organization include:
References to SCM policies and directives
This section of the SCM Plan needs to list any specific SCM policies and directives that apply to or impact SCM for the project. Those policies and directives may be named in a reference section of the plan, so referring to that section may be appropriate. However, the impact of those policies and directives on SCM for the project is described here.
- Existing CCB procedures.
- Existing status accounting procedures.
- Existing configuration identification procedures.
- Existing audit procedures.
All functions and tasks required to manage the configuration of the software
This section of the plan describes configuration identification, configuration control, status accounting, and configuration audits and reviews. Guidance for each of these topics is found in the related requirements (see table below) in this Handbook.
This section of the SCM Plan describes how each of these SCM functions will be performed. Consider using a separate subsection for each of the four functions. As appropriate for the project, the following highlights are to be included but are not to be considered the only items to document:
- List of configuration items (or reference to where this list can be found or how it can be obtained).
- Naming convention for configuration items.
- Activities to define, track, store, and retrieve configuration items.
- Process for capturing a configuration item in the SCM system.
- How to request a change (how to enter a change request and transition it into the review and approval process).
- Levels of control for changes (CCBs).
- Activities for verifying and implementing an approved change.
- Schedule, purpose, responsible party for status accounting forms and reports, including metrics.
- Access to status accounting data.
- List, description, and purpose of planned SCM audits and reviews.
If the project uses data management in addition to SCM, those activities are described in this section of the SCM Plan, including:
- Receiving data.
- Cataloging data.
- Maintaining status records.
- Establishing and maintaining secure data access and control.
- Providing change control monitoring and review.
- Archiving data.
- Plans for backups and disaster recovery.
This section of the plan includes information necessary to describe "the sequence and coordination for the identified activities and for all events affecting the plan's implementation" (NPR 7150.2, section 188.8.131.52.e). The SCM schedule needs to coordinate with the project schedule, and this part of the SCM Plan shows that coordination. Graphics (timelines) may be useful.
Typically, configuration items are uncontrolled until some gate or milestone is reached, at which time they are required to be placed under configuration control. Each configuration item or group of items may have its own gate. Because those gates can be points in the project timeline, consider describing those gates in this section.
Also consider for the SCM schedule:
- Timeline or phase for creation of planned baselines.
- SCM audit schedule.
The resources section of the SCM Plan describes the software tools, techniques, and equipment that will be used to carry out SCM for the project. References to the relevant documentation for installing and using these tools is included, as well as the configuration controls for each tool.
Typical resources include:
- Personnel (note level of effort and any required training and/or qualifications).
- Tools for managing source code, documents, requirements, design, and any other configuration items.
- Tools for managing change requests if not integrated with the main configuration management tool.
- Tools for managing data not subject to configuration control and CCB change authority, such as meeting minutes, reports, action items, corrective actions.
- Manual procedures.
- Equipment to support or host SCM tools.
- Training for SCM personnel.
The maintenance section provides information such as:
- History of changes.
- Role responsible for monitoring the SCM Plan.
- Frequency of scheduled updates.
- Process for evaluating and approving changes to the SCM Pan.
- Process for implementing and communicating approved changes to the SCM Plan.
Release management and delivery
The release management and delivery activity is described in this portion of the SCM Plan (see SWE-085 for release management guidance), including formal control of the build, release, and delivery of software products and documentation.
Consult Center Process Asset Libraries (PALs) for Center-specific guidance, templates, and resources related to the content of the configuration management plan.
Additional guidance related to the content of the configuration management plan may be found in the following related requirements in this Handbook:
Develop CM Plan
Identify Software CM Items
4. Small Projects
Small projects may not require the formality of a separate SCM Plan; instead, SCM planning may be documented as a section of the project's Software Management Plan. Alternatively, one master SCM Plan may document configuration management for multiple small projects.
6. Lessons Learned
A documented lesson from the NASA Lessons Learned database notes the following: