Stability
Not only your architecture but your systems must be stable. Being stable is a state, which means they are not broken all the time. Systems should not be broken. It’s impossible to never break the system, after all we are only humans. However this is not an excuse for lack of attention, carelessness or poor practices.
A stable system is one where most of the time:
- Build is passing
- Tests are passing, in all environments
- Deployments are successful
- Monitoring shows healthy metrics in production
- Tech debt is being managed
A stable architecture is one where:
- You can reason about concepts with confidence
- You can make changes without breaking things
- You can onboard new team members without much friction