Promote flexibility and reusability
Last updated: 21 March 2025
Enable teams to choose appropriate tools, practices and approaches for the problem they are solving. Encourage the use of reusable components and open standards to improve efficiency, reduce maintenance effort and improve consistency.
Motivation
By equipping teams with knowledge of available tools and technologies that can be supported within the organisation, they can make better decisions about the best choice for the problem they are solving. Maintaining a catalogue of reusable components helps them solve common challenges with robust, well-tested solutions in an understood way.
Applying this principle
- Design high-level architectural patterns without overly constraining how these may be implemented in different contexts.
- Avoid premature abstractions that tightly couple different services together unnecessarily.
- Ensure that reusable components have sustainable support to update, document, and maintain them.
- Provide an easy way for teams to identify potentially useful components themselves, for example through developer platforms and documentation.
- Design lightweight governance processes that allow appropriate innovation and experimentation, whilst ensuring organisational standards are still considered.