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