Skip to main content

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.