Note: Contributors must take all necessary precautions to ensure that sensitive data does not leak into Source Control Management Systems. You must ensure you have reviewed the guidance on what to do should this happen.
See the Quick Start Guide
This framework is concerned with using "good" software engineering to support rapid and safe delivery of high-quality software, at scale
It aims to:
- Describe a shared (across multiple teams) definition of "good" engineering
- Provide tools for teams to gain insight into their current engineering maturity levels and their level of technical debt
- Provide resources to support teams to increase their engineering maturity levels and manage their technical debt
The philosophy underpinning this framework advocates:
- Engineering led by user needs and service outcomes
- Empowered delivery teams which are accountable for their products
- Products must be actively maintained for their entire lifecycle
- Rapid, iterative and incremental development: "Release early. Release often. And listen to your customers." (Eric S. Raymond in The Cathedral and the Bazaar)
- Robust and comprehensive automation supporting and enforcing quality
- Reliable & scalable services, remembering "Everything fails, all the time" (Werner Vogels), and treating operations as a software engineering challenge (as in Google's Site Reliability Engineering)
- Loosely-coupled & cloud-native composable components as the default mode of construction
- Continuous improvement, with prioritisation decisions based on data rather than sentiment
The framework is a companion to:
- The NHS service standard, with cross-references in this format: SERVICE-RELIABILITY
- The NHS Digital architectural principles, with cross-references in this format: ARCHITECTURE-SECURITY
The framework consists of:
- Engineering principles and blueprints
- Engineering quality review tool
- Guidance on how to practice continuous improvement
See our contributor's guide