Summary

Teams should aim to make all new source code open and reusable, and publish it under appropriate licences. DfE specific guidance on how to meet this standard can be found in DfE Technical Guidance.

Why it's important

Public services are built with public money. Unless there's a good reason not to, the code they're based on should be made available for other people to reuse and build on

Open source code can save teams duplicating effort and help them build better services faster. Publishing source code under an open licence means that you're less likely to get locked into working with a single supplier.

Coding in the open encourages high quality and secure coding in development teams.

There may be times when code should not be published in the open. For example, secrets, keys or sensitive information should not be published to public repositories. DfE has guidance on managing secrets and closed code.

How to meet this standard in every phase

You'll be assessed on what you've done to meet this standard at service assessments. However, even if the service you're working on is not being assessed, it's good practice to consider how you'll meet this standard point.

All phases

Things to consider:

  • any code being produced should be open by default. If at any point the code was not publicly available, the team will be asked why, and without good reason, could fail an assessment
  • it is important not to commit secrets to code. If you have some information that must be secret, for example, passwords, you can use GitHub secrets
  • use GitHub as the recommended tooling for meeting this standard, as repositories in GitHub are open by default. There is a DfE organisation set up at DfE-Digital which is publicly available. Find a Tuition Partner is an example of a GitHub repo in DfE
  • join DfE-Digital to create a repository for a new service by contacting the DfE Slack channel #digital-tools-support

Things to avoid in all phases

  • publishing code that contains secrets, keys, or sensitive information to public repositories
  • using closed code without clear justification

Profession specific guidance

Each DDaT profession in DfE has their own community and guidance.