Maintainability requirements

Concert's foundational library for assessing resilience includes a category of non-functional requirements related to the maintainability of a system. Maintainability help ensure that applications and services can be updated, patched, and scaled efficiently with minimal downtime or risk of disruption.

You can improve your resilience posture by adopting practices such as automated deployments, canary releases, and rigorous incident retrospectives. Maintainability requirement focus on reducing operational friction, can ensure compliance with service level agreement (SLAs) and enabling rapid recovery from deployment-related issues.

  • Deployment downtime

    This requirement captures the total duration of user-facing service disruption during production deployments. It helps identify inefficiencies in the release process and reduce impact to end.

  • Canary release

    This requirement requires a percentage of changes to be deployed to controlled subsets of users/regions first. This approach allows teams to monitor system behavior and user experience in a limited environment, identify potential issues early, and reduce the risk of widespread disruptions. By observing the impact on a small group first, teams can make data-driven decisions about proceeding with the full roll-out.

  • Dark launch

    This requirement measures the percentage of features that are released behind feature toggles or configuration flags, allowing functions to be tested in production without user visibility.

  • Change automation

    This requirement measures the extent to which deployment steps are automated. Increased automation helps minimize user impact, reduce manual errors, and shorten deployment-related downtime.

    Draft comment: madhav.manoharan@ibm.com
    I am not sure if I defined it correctly or not. Please review it.

  • Root cause analysis (RCA) SLA

    This requirement establishes the required time to complete root cause analyses after incidents, based on severity, helping teams track the maturity of their operational practices.

Each requirement requires you to provide several metrics, which are measurements that are used to assess the application's posture with that requirement. Some metrics are human-entered, whereas others can be ingested automatically from connected systems.