Markdown Editor

Software Maintenance Plan Template (ISO/IEC/IEEE 14764)

Maintenance concept, types, organisation, request process, metrics (backlog, MTTR), SLAs, CM, transition, budget, retirement

सॉफ़्टवेयर और इंजीनियरिंगपूर्णISO/IEC/IEEE 14764:2022softwaremaintenanceplanmath
एडिटर में खोलें.md डाउनलोड करें

उपयोग कैसे करें: Use it before a product moves from development to maintenance. Fill the maintenance concept first (scope, maintainer, support levels, planned life), then process, service levels and budget. The main pitfall is leaving retirement unplanned or letting corrective work crowd out preventive work.

प्रीव्यू

Software Maintenance Plan: [System or product name]

Software Maintenance Plan describing how a software product will be kept useful after delivery: the maintenance concept, types of maintenance, organisation, process from request to release, resources, metrics and service levels, configuration management, transition from development, budget and eventual retirement. The structure is aligned with the maintenance process of ISO/IEC/IEEE 14764:2022 (process implementation, problem and modification analysis, modification implementation, maintenance review and acceptance, migration and retirement). Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[SMP-PRODUCT-001]
Product / system[Name], versions [2.x]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@maintenance-manager]
Maintainer organisation[Team or contractor]
Effective periodYYYY-MM-DD to YYYY-MM-DD
Classification[Internal]
Last updatedYYYY-MM-DD
Related[Software transition plan], [SCM plan], [SLA], [Architecture description], [Retirement plan]

Approvals

RoleNameDecisionDate
Maintenance manager[@name][Approved]YYYY-MM-DD
Product owner[@name][Approved]YYYY-MM-DD
Operations / service owner[@name][Approved]YYYY-MM-DD
Acquirer or budget holder[@name][Approved]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]Initial draft during transition
1.0YYYY-MM-DD[@name]Example: Approved at transition acceptance
1.1YYYY-MM-DD[@name]Example: SLA for priority 2 changed from 5 to 3 working days

Contents

1. Introduction

1.1 Purpose

This plan defines how [Product] will be maintained from [date] to [date or "retirement"]: who does the work, how requests are handled, what service levels apply, what it costs and how the product will eventually be retired.

1.2 Product overview

[Product] [purpose in two sentences]. It is used by [users, number] at [sites] and depends on [key platforms and external systems].

Example: A web-based crew planning system used by 420 dispatchers in nine centres. It runs on the acquirer's private cloud and exchanges data with the national incident system through a message gateway.

1.3 Scope

In scopeOut of scope
Example: Server, web client and gateway, versions 2.xExample: Hosting platform (operated by infrastructure team)
Example: Database schema and reference dataExample: National incident system (other contractor)
Example: User and support documentationExample: New major features (funded as projects)

1.4 References

DocumentVersionUse in this plan
Example: Software transition plan STrP-011.0Inputs for sections 6 and 11
Example: Service level agreement SLA-072.0Targets in section 7
ISO/IEC/IEEE 14764:20222022Process structure (cited, not reproduced)
[Document][Version][Use]

2. Maintenance concept

ElementDecision
Scope of maintenanceExample: All four maintenance types in section 3, for the items in 1.3
MaintainerExample: Internal platform applications team (6 FTE)
Support levelsExample: Level 1 service desk, level 2 application support, level 3 maintenance team, level 4 vendors
Support hoursExample: Business hours 08:00-18:00 for changes; 24x7 on-call for priority 1 incidents
Release cadenceExample: Monthly maintenance release; emergency fixes as needed
Supported versionsExample: Current minor version and the previous one; security fixes only for the previous one
Planned lifeExample: Until replacement by the national system, expected YYYY
Funding modelExample: Fixed annual maintenance budget plus change requests above 10 days funded separately

3. Maintenance types

Every request is classified into one of the following types. Corrective work is reactive; the other three types are planned.

TypeMeaning in this planExampleBudget share target
CorrectiveFixing faults that users or monitoring have found in the delivered softwareShift report omits crews on leave[30%]
PreventiveFinding and removing latent faults or weaknesses before they cause failuresUpgrading a library approaching end of support; fixing a race condition found in code review[20%]
AdaptiveKeeping the software working in a changed environmentNew browser version, operating system upgrade, new interface schema from a partner[25%]
PerfectiveImproving performance, maintainability, usability or other attributes, or small enhancements requested by usersFaster search, clearer error messages, a new report filter[25%]

The current edition of ISO/IEC/IEEE 14764 may define further categories or sub-categories (for example for emergency changes); check the standard if you need to align classification exactly. Requests that exceed [10 person days] are treated as projects, not maintenance.

4. Organisation and responsibilities

RoleName / teamResponsibilities
Maintenance manager[@name]Owns this plan, budget, priorities with product owner, reporting
Product owner[@name]Approves perfective and adaptive changes, sets priorities
Change advisory / control board[Members]Approves modifications and releases; meets weekly
Maintenance engineers[Team]Analysis, implementation, testing, documentation
Test lead[@name]Regression suite, acceptance testing
Configuration manager[@name]Baselines, releases, status accounting
Service desk[Team]Logs requests, first-line triage
Operations[Team]Deploys releases, monitors production
Vendors[Vendor names]Support for commercial components under contract

The RACI below shows responsibilities per process activity (R = responsible, A = accountable, C = consulted, I = informed).

ActivityMaintenance managerProduct ownerEngineersCCBOperations
Request analysisACRIC
Approve modificationCRIAI
Implement and testAIRIC
AcceptanceCACRC
Release to productionAICCR

5. Maintenance process

The lifecycle of a request is shown below.

5.1 Process implementation

The maintainer sets up the procedures, tools and records needed before taking over: request intake in [tracker], classification rules (section 3), priority scheme (section 7.3), CCB terms of reference and the link to configuration management (section 8).

5.2 Problem and modification analysis

StepDescriptionOutput
LogExample: Service desk records the request with reporter, product version, symptoms, impactRequest MR-NNNN
TriageExample: Engineer confirms or reproduces, classifies type and priority within the response timeClassified request
AnalyseExample: Identify affected items, options, effort, risk, impact on interfaces and documentsImpact analysis
DecideExample: Priority 1 and 2 decided by maintenance manager; others by CCB or product ownerApproved or rejected

5.3 Modification implementation

Approved modifications are implemented on a branch, with code review, unit and regression tests, documentation updates and an updated traceability record. Design changes that affect architecture are recorded as decision records.

5.4 Maintenance review and acceptance

Before release, the test lead confirms the regression suite passes and the requester or product owner accepts the change against its acceptance criteria. The CCB approves the release contents. Records: test report, acceptance sign-off, release notes.

5.5 Migration

When the product must move to a new environment (for example a new database version, operating system or cloud platform) the maintainer prepares a migration plan covering: analysis of what changes, parallel operation if needed, data conversion and verification, user notification, rollback, and a post-migration review. Example: migration from PostgreSQL 14 to 16 planned for Q[n], with two weeks of parallel run in staging.

5.6 Retirement

Retirement of the product or a component follows section 13.

6. Resources

ResourceQuantity / capacitySource
Example: Maintenance engineers4 FTEPlatform applications team
Example: Test engineer1 FTEShared QA pool
Example: Release / configuration engineer0.5 FTEPlatform team
Example: On-call allowance1 engineer per weekRotation of maintenance engineers
Example: Vendor supportMap SDK premium supportAnnual contract
[Resource][Quantity][Source]

7. Metrics and service levels

7.1 Metrics

Metric IDMetricDefinitionTargetSource
M-01Backlog sizeOpen requests at period end (see formula below)Stable or fallingTracker
M-02Mean time to repair (MTTR)Mean time from logging to fix released, per priorityP1 under 8 hTracker
M-03Backlog ageShare of open requests older than 90 daysUnder 10%Tracker
M-04Change failure rateShare of releases causing a production incidentUnder 10%Release log
M-05Maintenance type mixEffort share by type in section 3Within 10 points of targetsTimesheets
M-06Escaped defectsCorrective requests caused by previous maintenance releasesUnder 2 per quarterTracker

Backlog at the end of period tt:

Bt=Bt−1+At−CtB_t = B_{t-1} + A_t - C_t

where AtA_t is requests arriving and CtC_t requests closed in the period. Example: Bt−1=84B_{t-1} = 84, At=37A_t = 37, Ct=45C_t = 45 gives Bt=76B_t = 76.

Mean time to repair over nn requests of a given priority:

MTTR=1n∑i=1n(treleased,i−tlogged,i)MTTR = \frac{1}{n} \sum_{i=1}^{n} \left( t_{\text{released},i} - t_{\text{logged},i} \right)

Example: five priority 2 fixes released after 30, 46, 52, 70 and 42 hours give MTTR=240/5=48MTTR = 240 / 5 = 48 hours.

7.2 Service levels

PriorityDefinitionResponse timeResolution or workaroundFix released
P1 CriticalCore function unavailable or data at risk, no workaround30 min, 24x74 hEmergency release within 24 h
P2 HighCore function degraded or workaround costly4 business hours2 business daysWithin 5 business days
P3 MediumNon-core function affected; workaround exists1 business dayNext monthly releaseNext monthly release
P4 LowCosmetic, minor improvement3 business daysPlanned by product ownerAs scheduled

7.3 Reporting

A monthly maintenance report to [audience] shows metrics M-01 to M-06, SLA performance per priority, top requests by impact, and budget used.

8. Configuration management

TopicApproach
Configuration itemsExample: Source, build scripts, database migrations, reference data, documentation, infrastructure code
BaselinesExample: Tagged release per maintenance release; production baseline recorded in the CMDB
Change controlExample: All modifications approved per section 5.2; emergency changes approved retrospectively within 2 business days
VersioningExample: Semantic versioning; patch number for maintenance releases
Status accountingExample: Release notes and version description generated from the tracker per release
AuditsExample: Quarterly check that production matches the recorded baseline

9. Tools and environments

Tool / environmentPurposeOwnerLicence / renewal
Example: Issue trackerRequests, analysis, approvalsPlatform teamEnterprise licence, renews YYYY-MM-DD
Example: Source repository and CICode, review, build, testPlatform teamEnterprise licence
Example: Staging environmentAcceptance testing on production-like dataOperationsCloud budget
Example: Monitoring and loggingDetect issues, verify fixesOperationsShared service
[Tool][Purpose][Owner][Licence]

10. Training and knowledge management

ItemApproach
OnboardingExample: Two-week onboarding with architecture walkthrough, paired fixes and runbook reading
Knowledge baseExample: Runbooks, decision records and known-issue articles in [wiki]; updated with every P1 and P2 fix
Cross-trainingExample: Each component has at least two engineers able to change it
Vendor trainingExample: Map SDK course for one engineer per year

11. Transition from development

ItemDetail
Transition planExample: Software transition plan STrP-01
Joint support periodExample: 8 weeks with 2 developer engineers available
Handover itemsExample: Source and build environment, as-built design, test suites, open problem reports with analysis, runbooks
Entry criteria for take-overExample: Build reproduced by maintainers; regression suite passes in maintainers' environment; three fixes delivered by maintainers
WarrantyExample: Developer fixes defects in delivered code for 6 months at no cost

12. Budget

CategoryBasisAnnual estimate
Example: Staff5.5 FTE at [rate][Amount]
Example: Tools and licencesTracker, CI, map SDK[Amount]
Example: EnvironmentsStaging and test cloud costs[Amount]
Example: Vendor supportMap SDK premium support[Amount]
Example: Contingency10% of the above[Amount]
Total[Amount]

Changes above [10 person days] or outside the maintenance types are funded through change requests or projects.

13. Retirement plan

ItemPlan
Retirement triggersExample: Replacement system in production at all centres; or platform end of support without funded migration
NotificationExample: Users and dependent systems told at least 6 months before end of support
Parallel operationExample: 3 months of read-only access after cut-over
DataExample: Records exported to the replacement system; full archive retained for 7 years per records policy; personal data deleted when retention expires
ArchiveExample: Final source, build tools, documentation and data schema archived with checksums
DecommissioningExample: Remove servers, DNS, credentials, firewall rules and licences; confirm in CMDB
Post-retirement supportExample: None after archive; data queries handled by records team

14. Risks

Risk IDRiskLikelihoodImpactMitigationOwner
MR-01Example: Key knowledge held by one engineer for the gatewayMediumHighCross-training; documented runbooks[@name]
MR-02Example: Map SDK end of support before replacementMediumMediumBudget adaptive upgrade in year 2[@name]
MR-03Example: Corrective work crowds out preventive workHighMediumReserve 20% capacity; monitor M-05[@name]
[MR-NN][Risk][L][I][Mitigation][@owner]

15. Appendices

TermMeaning
CCBChange control board
MRModification request, the record for any maintenance request
MTTRMean time to repair
SLAService level agreement

Standard and licence note

Structure aligned with ISO/IEC/IEEE 14764:2022 (Software engineering, Software life cycle processes, Maintenance), for the maintenance process activities and the maintenance concept and plan. Maintenance type definitions, metrics, service levels and examples are written for this collection. This template is original text written for this collection and reproduces no text from the standard; obtain the standard for its normative requirements. Template licence: MIT.

संबंधित टेम्पलेट