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.

ISO-25010:2023


Maintainability is the ease with which software can be maintained, enhanced, adapted, or corrected to satisfy specified requirements.

SWEBOK (IEEE), citing IEEE 610.12


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.

Kazman et al., p.5

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

Bass et al., 2021

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.