DSF Technical Principles
30/05/22 | All Guidelines and Documentation | C. Choosing the right technologyVersion 1.0
Digital Services Factory (DSF) builds platforms, and services that help deliver a simple, and joined-up experience of government to everyone.
The DSF Principles, described below, are a set of criteria to help the government design, build and buy technology.
1. Same look and feel overall government e-services
- Accelerate the ease of access and development of e-Services through the use of common components and services
- Bring about a level of consistency throughout all government
- Promote and foster a common identity of the government
2. Perform initial production deployment and retain visibility of subsequent production deployments
- Maintain consistency
- Retain internal and external approval and standards
- Force knowledge sharing
3. Support Continuous Integration/Deployment (CI/CD) across the team
Embody a culture, set of operating principles, and collection of practices that enable service development teams to deliver code changes more frequently and reliably.
The technical goal of CI is to establish a consistent and automated way to build, package, and test applications. With consistency in the integration process in place, teams are enabled to commit code changes more frequently, which leads to better collaboration and software quality.
CD automates the delivery of applications to selected infrastructure environments. DSF teams will work with multiple technologies, and CD ensures there is an automated way to deliver services.
4. Support a limited number of code languages
- Prefer proven, mature, adopted and open technologies and standards
- Security standards are very important
- Widely used and proven
5. Minimise preferred tools (logging, monitoring, alerting, version control, ci/cd, storage and cloud?)
- Use one tool where we can instead of multiple
- Based on long term support
- Excellent documentation
- Maintain a list, and renew the list every 6 months
6. Think Big; Start Small
- Do the clever work to make things simple
- Strive for simplicity
- Simple doesn’t mean simplistic
7. Assume people are doing their best
- We’re not trying to solve an easy task
- Give people time to improve
8. Maintain a repository of decisions, model code and styleguides
9. Don’t reinvent the wheel
If it has already been invented and is not considered to have any operational flaws, an attempt to reinvent it would be pointless and add no value to the object
10. Obtain data from the source
Single source of truth
11. Keep data collection/ access to a minimum.
- Deal with the minimum viable data set
- Collect only what is needed