Easy to:
- understand and analyze when changes are needed
- modify with low effort and low risk
- verify and test after changes
- update or upgrade over the system lifetime
Definition
Capability of a product to be modified by the intended maintainers with effectiveness and efficiency.
Modifications can include corrections, improvements or adaptation to changes in environment and requirements.
Maintainability includes installation of updates and upgrades.
Maintainability is the ease with which software can be maintained, enhanced, adapted, or corrected to satisfy specified requirements.
Maintainability is concerned with modifications after the software baseline is established.
We measure maintainability as the amount of work required to modify, test, and maintain our software base in response to changes in environmental elements.
Typical Acceptance Criteria
Maintainable means “economical and predictable change”.
When defining what #maintainable means for a specific system and stakeholders, consider:
- Which types of change are expected (defect fix, refactoring, feature extension, dependency update)?
- How much code, configuration, and documentation should typically be affected?
- What regression risk and verification effort are acceptable after each change?
Typical acceptance criteria might include:
- Effort/time to implement representative changes
- Number and complexity of artifacts touched per change
- Change failure rate and rollback frequency
- Effort/time to analyze root causes and fix defects
- Effort/time to adapt or extend tests after changes
Scenario Response Measures from [Bass et al.]
Cost in terms of:
- Number, size, complexity of affected artifacts
- Effort
- Elapsed time
- Money
- Extent to which this modification affects other quality attributes
- New defects introduced
maintainable for Stakeholders
| Stakeholder | (potential) Expectation for maintainable |
|---|---|
| User | defects are fixed quickly and reliably |
| Product-Owner | predictable effort and lead time for requested changes |
| Management | lower long-term cost of change and reduced change risk |
| Developer | code is understandable, analyzable, modular, and safe to change |
| Tester | tests can be adapted quickly; regressions are easy to detect |
| Admin | updates/upgrades can be applied with low operational risk |
| Domain-Expert | business-rule changes can be implemented without long delays |
| Others | technical documentation remains current and change-oriented |
Qualities tagged with #maintainable
Requirements tagged with #maintainable
Approaches tagged with #maintainable
Standards related to #maintainable
No standards categorized under #maintainable yet.