Use open standards
Open standards guarantee access to the knowledge required to use and contribute to the codebase. They enable interoperability between systems and reduce the risk of vendor lock-in. Open standards which are unambiguous allow for independent development of either side of data exchange.
Requirements
- For features of the codebase that facilitate the exchange of data the codebase MUST use an open standard that meets the Open Source Initiative Open Standard Requirements.
- Any non-open standards used MUST be recorded clearly as such in the documentation.
- Any standard chosen for use within the codebase MUST be listed in the documentation with a link to where it is available.
- Any non-open standards chosen for use within the codebase MUST NOT hinder collaboration and reuse.
- If no existing open standard is available, effort SHOULD be put into developing one.
- Open standards that are machine testable SHOULD be preferred over open standards that are not.
- Non-open standards that are machine testable SHOULD be preferred over non-open standards that are not.
How to test
- Confirm that data exchange follows an OSI approved open standard.
- Confirm that any non-open standards used are clearly documented as such.
- Confirm that documentation includes a list of the standards followed within the codebase, each with a working link, or a statement that no standards were chosen.
Public policy makers: what you need to do
- Mandate use of open standards everywhere possible.
- Prohibit procurement of technology that does not use open standards.
Managers: what you need to do
- Consider including open standard compliance assessment in source code reviews.
Developers and designers: what you need to do
- Add continuous integration tests for compliance with the standards.
- Review the commits and other repository resources for references to standards and cross-check those with the standards listed.
Further reading
- Open Standards principles, policy paper of the UK Cabinet Office.