4. Use open standards and solutions
- Previous - 3. Work in the open by default
- 1 - Go to 1. Design with users
- 2 - Go to 2. Iterate and improve frequently
- 3 - Go to 3. Work in the open by default
- 4 - Go to 4. Use open standards and solutions
- 5 - Go to 5. Address security and privacy risks
- 6 - Go to 6. Build in accessibility from the start
- 7 - Go to 7. Empower staff to deliver better services
- 8 - Go to 8. Be good data stewards
- 9 - Go to 9. Design ethical services
- 10 - Go to 10. Collaborate widely
- Next - 5. Address security and privacy risks
[TODO: Add/revise introductory text]
Guidelines:
4.1 Leverage open standards and embrace leading practices, including the use of open source software where appropriate
Build technology that uses open standards to ensure your system works and communicates with other products or systems, and can easily be upgraded and expanded.
Adopting and using open standards means you can:
- move between different technologies when you need to, avoiding vendor lock-in
- quickly and easily change your service when you need to
- increase compatibility with all stakeholders
- open up the range of companies you can purchase from as more of them are likely to use the same standard as you
- access a wider range of both open source and proprietary software vendors
Our choices for hosting infrastructure, databases, software frameworks, programming languages and the rest of the technology stack should seek to avoid vendor lock-in and match what successful modern consumer and enterprise software companies would choose today. In particular, digital services teams should consider using open source software, cloud-based, and commodity solutions across the technology stack, because of their widespread adoption and support by successful consumer and enterprise technology companies in the private sector.
Open source software (OSS) tends to use and help define open standards and publicly available specifications. OSS products are, by their nature, publicly available specifications, and the availability of their source code promotes open, democratic debate around their specifications, making them both more robust and interoperable.
Using open source software means you can benefit from:
- solving common problems with readily available open source technology
- more time and resource for customised solutions to solve the rare or unique problems
- lower implementation and running costs
Checklist
[TODO: Add/revise checklist items]
- Use open standards and open source software at every layer of the technology stack
- Factor in the use of open Standards and open source software when calculating total cost of ownership of a solutions including exit or transition costs
- Avoiding lock-in to any proprietary solutions where open source software and/or open standards are available
- Ensure that software can be deployed on a variety of commodity hardware types
Government of Canada Cloud Adoption Strategy:
- Cloud services are identified and evaluated as the principal delivery option when initiating IT investments, initiatives, strategies and projects.
- In considering how to manage security risks, departments and agencies must follow the GC Cloud Security Risk Management Approach and Procedures and the Direction on the Secure Use of Commercial Cloud Services: Security Policy Implementation Notice (SPIN).
- Departments and agencies may deploy solutions that have data-categorization requirements that fall outside of a particular cloud security control profile, as described in the Government of Canada Security Control Profile for Cloud-Based GC IT Services, with appropriate risk-mitigation measures that have been developed in consultation with GC security partners.
- To ensure, to the greatest extent possible, the GC’s continuous access to sensitive data, departments and agencies must comply with the Direction for Electronic Data Residency.
- To ensure business continuity and to manage risks, departments and agencies will develop an appropriate exit strategy before using cloud services.
- Departments and agencies should consider portability and interoperability of services when designing cloud-based solutions.
Implementation guides
- Socle Logiciels Libres (France)
- Logiciels libres et ouverts - Guide d'analyse de maturité (Québec)
- Logiciels libres et ouverts - Guide d'analyse du coût total de propriété (Québec)
- Working with open standards (Service Manual (UK))
- Choosing technology: an introduction (Service Manual (UK))
- Australian Government ICT Policy Guides and Procurement (AU)
- Australian Government Open Source Software Policy (AU)
- DoD Open Source Software FAQ (US)
- DoD Memorandum on Guidance Regarding Open Source Software (US)
- W3C Standards (W3C)
- OASIS Standards (oasis-open.org)
- Government of Canada Right Cloud Selection Guidance
- Government of Canada Security Control Profile for Cloud-Based GC IT Services
- Government of Canada Cloud Adoption Strategy
- Government of Canada White Paper: Data Sovereignty and Public Cloud
- Government of Canada Cloud Security Risk Management Approach and Procedures
- Direction on the Secure Use of Commercial Cloud Services: Security Policy Implementation Notice (SPIN)
- Direction for Electronic Data Residency
Reusable solutions
Similar resources
- Open Standards (Open First Whitepaper (GC))
- Open Source Software Use (Open First Whitepaper (GC))
- Natural Resources Canada Free and Open Source Software Licensing Primer (GC)
- Logiciels libres et ouverts - Guide de référence (Québec)
- Politique du libre (Montréal)
- 18F Open Source Policy (US)
- 3. Be open and use open source (Technology Code of Practice (UK))
- 4. Make use of open standards (Technology Code of Practice (UK))
- 9. Use open standards and common platforms (Digital Service Standard (Ontario))
- Three-Step Software Solutions Analysis (Federal Source Code Policy (US))
- 1. Comply with Government of Canada acts, policies, standards and directives (Plan - Digital Design Playbook (ISED)) (internal to GC only)
- 2. Reuse, improve and share technological solutions where appropriate (Do - Digital Design Playbook (ISED)) (internal to GC only)
- 9. Deploy in a flexible hosting environment (Digital Services Playbook (US))
4.2 Design for services and platforms that are seamless for Canadians to use no matter what device or channel they are using
In order to limit costs, avoid duplication of effort and provide a consistent client experience when using various services, the reuse and adaptation of existing technological solutions is encouraged. If the development of new solutions is required, consider the ability of others to reuse and adapt your work as this will provide additional value on an organizational level.
Using common, proven government solutions, approaches, and platforms will help the government:
- meet the needs of your users by building with proven solutions
- make users' experience of government more consistent, which generates trust
- save time and money by reusing things that are already available
Interoperability is a characteristic of a product or system, whose interfaces are completely understood, to work with other products or systems, present or future, in either implementation or access, without any restrictions. Interoperability should be ensured, via the use of open standards.
Application Program Interfaces (APIs) are a means by which business functionality is exposed digitally. They are building blocks that are critical to the successful delivery of government online digital services and expanding service delivery to third party providers. They can also enable greater interoperability between services, optimized experiences across devices and can even lead to innovative new services by enabling third party products to work seamlessly with Government of Canada systems.
Checklist
- Ensure content and functionality is optimized for a wide range of devices, including mobile devices and voice assistants, enabling users to be successful with their device of choice
- Build services that are API-centric services, which execute most, if not all, functionality through API calls (e.g., connecting frontend to backend through an API)
- Plan out API access from the beginning, designing services to be able to safely and securely expose functionality to other systems and the public.
- Design APIs to be compete but also minimal, ensuring the expected functionality is provided but with as few public members per class and as few classes as possible. This makes it easier to understand, remember, debug and change the API.
- Design APIs to have clear and simple semantics to make common tasks easy. Rare tasks should still be possible but not the focus. Avoid being overly general, optimizing specific use cases.
- Design APIs to be intuitive so that a semi-experienced user can be successful with minimal assistance from the documentation and programmers can easily understand code that uses the API.
- Design APIs to be easy to memorize by implementing a consistent and precise naming convention. Use plain language and recognizable patterns and concepts, avoiding abbreviations where possible.
Implementation guides
- Canada.ca Content and Information Architecture Specification
- Canada.ca Content Style Guide
- Designing for different browsers and devices (Digital Service Standard (UK))
- API technical and data standards (Government Digital Service (UK))
- Developing cross-government API data and technical standards (Government Digital Service blog (UK))
- How to measure digital take-up (Service Manual (UK))
- Encouraging people to use your digital service (Service Manual (UK))
Reusable solutions
Similar resources
- 3. Be consistent (Digital Service Standard (Ontario))
- 6. Consistent and responsive design (Digital Service Standard (AU))
- 4. Design the service from start to finish (Digital Service Standard (Ontario))
- 2. Address the whole experience, from start to finish (Digital Services Playbook (US))
- 14. Encourage everyone to use the digital service (Digital Service Standard (UK))
- 11. Encourage people to use digital services (Digital Service Standard (Ontario))
- Give feedback about this page
- View content source on GitHub
- View template source on GitHub
- Show filters
- Previous - 3. Work in the open by default
- 1 - Go to 1. Design with users
- 2 - Go to 2. Iterate and improve frequently
- 3 - Go to 3. Work in the open by default
- 4 - Go to 4. Use open standards and solutions
- 5 - Go to 5. Address security and privacy risks
- 6 - Go to 6. Build in accessibility from the start
- 7 - Go to 7. Empower staff to deliver better services
- 8 - Go to 8. Be good data stewards
- 9 - Go to 9. Design ethical services
- 10 - Go to 10. Collaborate widely
- Next - 5. Address security and privacy risks