3. GuidanceThe software maintenance plan describes operations, maintenance, and retirement activities (see the guidance in this Handbook for SWE-075). The maintenance plan is typically a separate plan, but may be part of another project document such as the Software Management Plan (SMP). For existing processes that may be used during operations, maintenance, and retirement, the maintenance plan may simply reference existing project documents that describe those processes. One key goal of the software maintenance plan is to document the plans for maintaining a piece of software, especially in the case that an organization assumes responsibility for maintaining a piece of software developed by another organization. The maintenance plan is not intended, however, to require updates to other planning documents from the software development life cycle, such as the software development plan. The maintenance plan becomes the planning document for the maintenance phase of the software life cycle. The maintenance plan generally has minimal content at the beginning of a project and becomes more complete and mature as the software life-cycle proceeds. This handbook provides the recommended maturity of the maintenance plan at major milestone reviews (see 7.8 - Maturity of Life Cycle Products at Milestone Reviews). See SWE-105 in this Handbook for guidance on required maintenance plan contents, but consider the following topics as well when developing the maintenance plan, as appropriate for the particular project: Operations - Mission support procedures for troubleshooting software problems.
 - Test of ground displays and software during mission sequence tests or other end-to-end tests.
 - Software support as required by the operations support facility.
 - Software safety (if not addressed in the software safety plan).
 - Performance assessments, as applicable.
 - Training for replacement operators and maintainers.

Maintenance - Corrective maintenance for software defects.
 - Adaptive maintenance for "software changes necessitated by other changes, usually to the hardware."
 - Changing requirements maintenance.
 - Operational data maintenance to support system configuration changes needed to use the software.
 - Maintenance after new revisions of the software are released.
- Software safety (if not addressed in the software safety plan).
 - Updates to operations and user manuals, traceability matrices.
 - User notification of updates.

Retirement - Archival of project software products.
 - Archival of project metrics data.
 - Software safety (if not addressed in the software safety plan).
 - User notification of retirement.
 - Decommissioning and disposal.
 - Capture of Lessons Learned.

Other - Disposition of Commercial Off the Shelf (COTS) components (source code, licenses, etc.).
 - Support, if required from a contracted developer (established via contract or other agreement).
- Support tools required for operations, maintenance, retirement activities, including how to address obsolescence of any such tools over the operational life of the project.
- Allocation of responsibilities for operations support, maintenance, retirement activities.

Once the maintenance plan is created, it is peer reviewed and reviewed at project milestone reviews such as the Mission Concept Review (MCR), Software Requirements Review (SwRR), Mission Definition Review (MDR), etc. (see Topic 7.8 - Maturity of Life Cycle Products at Milestone Reviews in this Handbook). Consult Center Process Asset Libraries (PALs) for Center-specific guidance related to documenting the maintenance plan. |
Additionally, guidance related to maintenance plans may be found in the following related requirements in this handbook: SWE-075 | Plan Operations, Maintenance, Retirement | SWE-076 | Implement Operations, Maintenance and Retirement Activities | SWE-105 | Software Maintenance Plan |
|