Operations, maintenance, and retirement activities are typically planned concurrently. The results of planning these activities for software may be captured as part of an implementation plan or may be part of another project document such as the Software Management Plan (SMP) or Software Maintenance Plan. For existing processes that may be used during operations, maintenance, and retirement, it is acceptable to simply reference existing project documents that describe those processes.
A software maintenance plan can be a combined document that is used during the software operation period. The software maintenance plan document can combine and replace the software development plan, software configuration plan and software test plan(s). The software user’s manual addresses how to operate the software. The software retirement plans can be contained in the software maintenance plan or other document.
"The Software Operation phase spans the time from execution of the software product in the target environment to software retirement. The Software Maintenance phase of the software life cycle begins after successful completion of formal test and delivery of the software product to the customer. This Software Maintenance phase overlaps the Software Operation phase and continues until software retirement or discontinuation of software support."
The planning for these life-cycle phases is usually minimal at the beginning of a project and becomes more complete and mature as the software life cycle proceeds. The maturation of the planning is reflected in the documentation. This Handbook provides the recommended maturity of life cycle plans, including the Software Maintenance Plan, at major milestone reviews (see topic 7.8 - Maturity of Life-Cycle Products at Milestone Reviews).
The project team baselines the plan(s) for operations, maintenance, and retirement before carrying out those life-cycle phases. Baselining the plan(s) ensures that the team carrying out the operations, maintenance, and retirement activities executes only approved plan(s). Software Assurance personnel are responsible for assuring that these activities are carried out per the baselined plan(s).
As with any activity that builds on and relies on previous activities, software operations, maintenance, and retirement requires planning before implementation. The team documents and reviews those plans before they are implemented to allow its members to consider all the tasks, personnel, methods, tools, facilities and related criteria needed to perform those activities.
There are fewer reasons for the operations, maintenance, and retirement plan(s) to require revision than plans used for the earlier life-cycle phases, but keep the following in mind as a non-exhaustive list of events that could cause the plan(s) to require updating:
- Changes in resource levels, availability (e.g., tools, facilities, personnel).
- In response to new or revised risks.
- Budget changes.
- Changes in stakeholders/stakeholder needs.
- Changes in processes used for operations, maintenance, retirement (e.g., reporting processes, review processes, record keeping processes).
As with other project documents, updates to the plan(s) for operations, maintenance, and retirement are reviewed and approved before being implemented.
In addition to the recommended contents for the Software Maintenance Plan (see Maint) consider the following items for each phase of planning, keeping in mind that operations and maintenance are most often conducted in parallel:
- Software team support of operations, including help desk activities, as applicable.
- Documentation required for operations support (e.g., as-built documentation, user's manual, source code, operations notes).
- Tools required for operations support (e.g., email systems, servers).
- Availability of problem reporting and corrective action (PRACA) system during operations.
- Capturing of lessons learned during operations.
- Software assurance, including software safety, monitoring activities.
- Operational backups (e.g., hot backups for critical systems), including identification and planning of approach.
- Mission support procedures for troubleshooting software problems.
- Test of ground displays and software during mission sequence tests or other end-to-end tests.
- Performance assessments, as applicable.
- Training for replacement operators and maintainers.
- 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.
- Modification of software after delivery.
- Updates to system and software documentation to align with/reflect these modifications.
- Availability and use of a configuration management system for documenting, reviewing, analyzing modifications to code, documentation, and hardware test configurations.
- Tools required for maintenance activities (e.g., issue tracking systems, analysis tools, configuration control systems, compilers).
- Other resources required to perform maintenance activities such as documentation, development environment, and test environment.
- Testing of modifications (including pre- and post-delivery).
- Delivery and installation of modifications, including generation of associated documentation such as version description documents (VDDs).
- Capture of maintenance metrics.
- Maintenance transition plan.
- Software assurance and software safety activities for updates.
- 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.
- User notification of updates.
- Archival of software products, including capture in a configuration management (CM) system.
- Retention period for retired software products.
- Tools needed to complete retirement activities (e.g., CM system).
- Security measures for access to and use of retired software products.
- Transition plans for functionality and data if software being retired is being replaced by another software product.
- 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.
- 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.
The following personnel roles should be considered for involvement in the planning of operations, maintenance, and retirement activities:
- Software project lead.
- Software team.
- Project manager.
- Software quality engineer (not involved in planning, but in checking on planned activities).
- CM officer (role may not exist on all projects).
Planning for maintenance activities, in particular, needs to begin very early in the software development life cycle so that the software is designed for maintainability . For NPR 7120.5 projects, this Handbook provides the recommended maturity of the Software Maintenance Plan at major milestone reviews (see topic 7.8 - Maturity of Life-Cycle Products at Milestone Reviews). The lifetime of use for software is not always known, so maintenance becomes easier if the software is designed with maintenance in mind. If there are specific design features that facilitate easier maintenance, those may be candidates for referencing in the Software Maintenance Plan.
Consult Center Process Asset Libraries (PALs) for Center-specific guidance related to planning operations, maintenance, and retirement.
NASA-specific operations, maintenance, and retirement information and resources are available in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook.
Additionally, guidance related to operations, maintenance, and retirement planning may be found in topic 7.18 - Documentation Guidance in this Handbook.