1. Service Delivery Manual
  2. Guidance-tools
  3. Engineering-best-practices

Software engineering best practice

Software engineering best practice guidance, including technical service requirements, APIs, security, testing, licensing and branching.

Technical service requirements

Services should be built to meet our technical service requirements, and should also be built as 12 factor apps.

APIs

API best practice should be followed.

Security

Services must be secure by design.

Testing

Comprehensive automated tests must exist.

Licensing

Our default licence for open source projects is the MIT licence.

Branching strategy

You should:

  • protect your master branch
  • not force push to master
  • require reviews on PRs before they can be merged
  • develop each story on a new branch
  • merge to master regularly to avoid merge hell

Email CentreOfExcellenceCentral@digital.homeoffice.gov.uk if you need help, or want to talk about adding new best practices.