Introduction
These pages are automatically generated from content hosted in this GitHub repository
About
This is the home for standards and guidance relating to software development in Defra.
These form part of the software development standards policy for Defra and apply to all software development undertaken on behalf of the Defra group whether by staff, contingent workers or suppliers.
All developers working on behalf of Defra need to be aware of their obligation to follow these standards.
Any deviation must be managed as an exception under Defra's architectural governance processes.
We maintain these standards on GitHub to ensure they have the greatest visibility to all developers and are readily available in a familiar environment. To aid readability, you can refer to the GitHub documentation on managing accessibility settings.
Principles
The standards and guidance provided here a based on an agreed set of principles.
Standards
These are the standards that must be followed for all software development undertaken on behalf of the Defra group.
Coding standards
- Common coding standards
- Development languages
- JavaScript standards
- C# coding standards
- Mobile application standards
- Node.js standards
- UiPath standards
- Quality assurance and test standards
- Security standards
- Version control standards
Packaging and deployment standards
Database standards
Documentation standards
Standards for non-strategic technologies
Processes and guides
These guides provide additional support for meeting and working with the standards.
Processes
Guides
- General guidance
- Choosing between a mono repo and a multi repo
- Choosing packages
- Continuous integration
- Developer workflows
- Docker guidance
- Java auto-format with Eclipse
- Kubernetes
- Mobile application guidance
- New starters
- PL/SQL auto-format with TOAD
- SQL Prompt
- Style guide for standards
- Using AWS session manager
- Using unmanaged devices
- Version control guidance
Contributing to this project
We encourage everyone to contribute to these standards!
They have been produced as a series of markdown files to make the process of adding and maintaining the documentation as simple as possible.
It is maintained under source control to cater for this, allowing anyone to make suggestions for improvement via the standard pull request process. They can then be discussed and approved by the DEFRA/sds-group.
Please ensure you have read our principles first, and then contribution guidelines for details on how to get started.
Viewing the guide
The guide is best viewed in GitHub pages at https://defra.github.io/software-development-standards
Updating the guide
This documentation is written in markdown and is built using MkDocs and the Material for MkDocs theme.
Please follow the below installation instructions prior to working with this repository:
Running mkdocs serve
will build the site locally and run it on an available localhost port.
There is no need to manually publish page updates to GitHub pages. This is automated following a merge into the main branch.
License
THIS INFORMATION IS LICENSED UNDER THE CONDITIONS OF THE OPEN GOVERNMENT LICENCE found at:
http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3
The following attribution statement MUST be cited in your products and applications when using this information.
Contains public sector information licensed under the Open Government license v3
About the license
The Open Government Licence (OGL) was developed by the Controller of Her Majesty's Stationery Office (HMSO) to enable information providers in the public sector to license the use and re-use of their information under a common open licence.
It is designed to encourage use and re-use of information freely and flexibly, with only a few conditions.