News

GOV.UK: 5 ways to contribute to the greater good

I’ve spent the last 12 months working alongside my excellent teammates from Triad and the Department for Transport (DfT) as technical architect, developing the new Manage Motor Fuel Greenhouse Gas Emissions service for GOV.UK. The new service allows DfT to evidence that fuel suppliers have met the GHG Emissions reductions targets (4% in 2019, 6% in 2020) set out in The Motor Fuel (Road Vehicle and Mobile Machinery) Greenhouse Gas Emissions Reporting Regulations 2012.

Alongside the positive environmental impact this service will help to deliver, one of the most rewarding things about working on any GOV.UK service is knowing you’re not just contributing to a single service, but contributing to the success of GOV.UK as a whole. Here are five habits my team adopted to enable us to add value outside the scope of our specific service:

1. Engage with the GOV.UK Design Service
Benefit: Allow other GOV.UK services to benefit from your user research and service design

The new GOV.UK design service went into beta a few months ago and with it came some excellent styles, components and patterns for teams to use to ensure all GOV.UK services offer a simple, user-centric and consistent user experience. Our team has made extensive use of this excellent resource and have used the corresponding GOV.UK Prototype Kit to accelerate our user research and service design.

During this process, we also fed back a number of our findings and documented missing patterns through the design service community to enable them to be incorporated back into the GOV.UK design service, allowing other services to benefit from our research.

We needed a way of handling the case where a user attempts to access a resource that they don’t have permission for. The design service didn’t have an existing pattern, so we raised an issue using the design service’s template detailing our proposal, which was subsequently added to the GOV.UK Design System Community Backlog. As a result, the next time you see an “Access denied” page on GOV.UK, that might be down to a pattern my team has contributed to.
2.Contribute to GOV.UK services
Benefit: Fix issues and develop features for existing GOV.UK services

Much of GOV.UK has been open sourced. This means you can learn from and contribute to services by studying their inner workings, report issues and help to improve them. We did just that for the GOV.UK Notify client we were using when we spotted some performance issues that were causing parts of our service to run slowly. We pulled the code, made the improvements, wrote new unit tests and issued a pull request. The Notify team then reviewed our changes, merged into their master branch and issued a new version of their NuGet package. Now everyone can benefit from something our awesome little team spotted.

 

3. Open source your own code
Benefit: Share solutions to common issues, gain feedback on implementation and promote re-use of code between GOV.UK services

We’ve been learning lots of great stuff and GDS have encouraged us to share much of it by releasing our main repo under an open source MIT license. This means anyone, including other GOV.UK services, can benefit from the experience we’ve gained by studying, running and re-using all or parts of our solution. It also means we can accept contributions and feedback from a far wider audience, furthering our service’s continuous improvement strategy.

 

Our service uses open source .Net Core, running on Linux containers, backed by polyglot persistence. You’ll find loads of technical goodies, such as microservice health checks, CQRS using Rabbit MQ and MongoDB, Swagger API documentation, resilient HTTP calls, Entity Framework database migrations for PostgreSQL, some of the latest .Net core 2.2 features (and some bits from .Net core 3 that haven’t even been released yet!), and much more.

Perhaps even more interesting, at least for me, is that it’s a living repo for a real product, implementing real business rules and legislation, written by a real multi-disciplinary team working with all the usual pressures you find during Agile delivery. You can pull the code, build the containers, run it in Docker, step through it line by line, and even hack bits out for use within your products.

And once we’ve sorted a couple of technical issues, we’re also planning to release our BDD acceptance test suites, accessibility and security test suites, our Jenkins CI jobs and our Kubernetes configuration repos. You’re welcome!

4.Embrace open standards
Benefit: Enable sharing of datasets and features between GOV.UK services

Using open standards such as JSON over HTTP, resource descriptive REST end-points, API documentation generation and bulk data downloads significantly improves service interoperability. Employing such standards makes exchange of data significantly easier and promotes re-use between products and services, reducing implementation cost across GOV.UK, as well as for third party client users and services.

 

Our service makes use of existing government services such as Notify for email notifications, as well as industry standard services such as ClamAV for virus detection. It also utilises a new REST interface to an existing DfT service, developed as part of our implementation, again significantly reducing the amount of work we had to do.

As you can imagine, all of our micro-services use REST and AMQP standards to communicate with each other, with JSON Web Tokens (JWT) providing end-point authorisation, whilst Swagger provides excellent API documentation for all of our end-points. This makes it straight forward for other services to interface to ours. Looking a little way down our backlog, we’ll be implementing even more interoperability features, such as CSV dataset bulk download, perfect for our users to get the absolute most out of their data.

5. Collaborate, learn and mentor
Benefit: Grow the collective knowledge of the people who build GOV.UK

It may sound obvious, but sometimes the pressures of completing sprint activities hinders this extremely important behaviour. The best teams continuously talk to each other, challenge each other and provide support to one another. Our team engages in agile ceremonies, pair programming, brown bag sessions, team socials and truly embraces collaboration tools such as Confluence, JIRA, Slack, Skype and BitBucket to create the perfect learning environment. We’ve benefitted from our collective experiences gained from previous Government and private sector projects and when it’s time for us to move on, our knowledge and passion gained as a team will disseminate once again.

 

Matt Tallamy, Senior Consultant for Triad.

 

About Matt​

Matt is a senior consultant for Triad, a UK based IT consultancy that provides the skills, commitment and people to help companies in the public, private and third sectors achieve their digital transformation goals by quickly delivering specialist teams across Agile and waterfall projects. Matt has 16 years’ experience in full-stack development, architecture, continuous integration/deployment, development process improvement, technical strategy and full lifecycle quality assurance.