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.
- 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.
I am not sure if I defined it correctly or not. Please review it.