Non-functional Requirement - Maintainability

Category: Maintainability

Context: Component

Goals: Systems must be designed such that the frequency and duration of service affecting maintenance windows are minimized. Systems must be designed such that routine maintenance of system components may be performed during business hours with no user detectable loss of business functionality. The number of maintenance operations that require outages should be minimized.

Rationale: If the availability of the system is sufficiently critical, the user expectation for maintenance related outages will be such that systems of moderate complexity can no longer be scheduled with off line maintenance windows of acceptable frequency and duration. To meet availability goals, most system maintenance will need to be performed while users are accessing the system.

Requirement: Routine system patching, system configuration, maintenance of individual system and environmental components shall not cause user detectable loss of business functionality for an amount of time greater than Metric. After an elapsed time no longer than Metric, the user will be able to continue business functionality. System upgrades shall not cause user detectable loss of business functionality for an amount of time greater than Metric. After an elapsed time no longer than Metric, the user will be able to continue business functionality.

Metric:

Level A:

A1. Routine component maintenance and configuration changes will occur with no user detectable loss of functionality.
A2. During routine maintenance operations, the system will continue to meet all Non-Functional Requirements other than Resiliency requirements.

Level B:

B1. Routine component maintenance and configuration changes will require a total of no more than four hours user detectable outage per month.
B2. System upgrades will require a total of no more than eight hours maintenance outage per calendar quarter.
B3. Valid support contracts will exist for all vendor provided components.

Level C:

C1. System must have defined and published maintenance windows.

Level D:

D1. No data loss will occur during maintenance operations.

Scale: Hours duration, elapsed time, cumulative total per period.

Stakeholders: ​System Managers, Operations

Implications: If this requirement is not met, the organization will incur decreased flexibility for hosting and system management, inability to maintain system during normal work hours, increased frequency and duration of maintenance outages.

Applicability: See Enterprise Requirements Framework

Tags: Maintainability

Status: Approved, Requirement

Author: <Author>

Revision: <Revision>


Note:

Maintainability  requirements describe the ability to maintain the system over its operational life. Among other attributes, a maintainable system can have routine hardware upgrades and application deployments without user affecting outages, it will have monitoring, logging and auditing sufficient for routine troubleshooting, it will have a low operational cost. Maintainability encompasses manageability, upgradability, deployability and flexibility as described by other authors. 

Incorporates traditional concepts of Service Management, Change Management (portions of), Maintenance Windows and Continuous Maintenance. Assures that effect of system maintenance on users will be minimized.

This requirement forces the designer to consider the maintainability of the system as a part of the design process. The designer should select and configure components such that:
  • Routine maintenance can be conducted on-line, using common technologies such as load balancing and clustering or equivalent.
  • Application patches and upgrades can be implemented on-line.
  • The release of new application functionality, including database schema changes, can be done on-line in many or most cases.
For more information, see NFR Summary