BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Open Source Development at the UK Government

Open Source Development at the UK Government

This item in japanese

New code developed for the UK government is open by default. Coding in the open enables reuse and increases transparency, which results in better digital services, said Anna Shipman, technical architect at Government Digital Service (GDS). She spoke about open sourcing government at GOTO Berlin 2016.

Our job is to change the way the government works, said Shipman. The UK government wants to provide digital services which are so good that people want to use them; services which are leading to better interaction between the government and citizen.

Software development at the UK government used to be done with yearly big bang releases. Over the years this has changed with many teams doing several code updates every day.

Shipman gave an example of what a car owner has to do when they want to transfer or retain a registration number. Previously they had to fill in a paper form, now they can do it on-line which is easier and much quicker. Doing it on-line has also reduced the handling cost for the government, so citizen now have to pay less for this service. This service has 91% user satisfaction.

The UK government has committed to making code open; new code should be open by default, said Shipman. There might be exceptions for code to do with security or configuration, but even some of this code is becoming open.

Much of the code used for the services on GOV.UK is available on Github. During development projects go through four phases: Discovery, Alpha, Beta and Live. These phases are further explained in the Government Service Design Manual.

There’s a difference between "coding in the open" and "open source development", as Shipman explained. Coding in the open means that GDS cannot promise to support the code or give commitment that it will be maintained. Also, GDS is not in the position to build and support a community around the code. Despite these things, countries like New Zealand and Israel and cities like Lexington, Kentucky USA are using code from GDS for their own websites.

Most of the software is developed as "coding in the open" but there is some open source code. Shipman mentioned the vcloud tools, software that was developed in-house at GDS which went from coding in the open to open source.

Earlier this year Shipman spoke at QCon London about DevOps at the UK Government. In her talk she mentioned that GDS is both using and developing open source tools:

GDS uses a lot of open source tools. Among others, they use Jenkins as a CI server, Puppet for IT Automation, syslog and logstash for logging, Cucumber for acceptance testing and Icinga for monitoring. GDS also develops most of their tools and applications in the open. AlphaGov hosts all their tools that are open source, but not supported in any way. GDS Operations hosts tools that have a higher level of commitment, such as vCloud Tools.

Coding in the open enables reuse and increases transparency. It forces you to do things properly, argued Shipman. One downside is that it can be intimidating for new people on a team, as the code they write will be visible to everyone. GDS deals with this by having a very strong culture around being positive about code reviews, and by supporting new members of staff, e.g. by pairing.

In the article Agile in the UK Government - An Insider Reveals All Nick Tune describes the benefits that the UK gets from open source code:

Another example of GDS’s brilliance is how they’ve managed to bring the open source philosophy into government. Not just using open source - but creating open source code. If you go to HMRC’s github for example, you can see hundreds of open source projects. And not just libraries either. You can find the code for HMRC’s web frontends and domain-driven microservices that are actually running on gov.uk.

I think it’s amazing that GDS have achieved this; promoting reuse across government, showing taxpayers how their money is being spent, and mitigating vendor lock-in. Personally, I loved coding in the open. It holds all developers to a high standard of work so that we are not creating a maintenance burden for the next generation that wastes taxpayer money and stops us providing value to UK citizens.

Shipman mentioned the Digital service standard: a set of 18 criteria to which all public facing services must comply. Some of the things this standard prescribes are that software must be developed by multidisciplinary teams which use agile methods to iteratively develop software, and that teams must understand the needs of their users, do ongoing user research, and test services end-to-end.

Some of the things that GDS is currently working on is identifying the most useful projects that would be candidates to become open source, find ways to help teams to code in the open, and increase their open source contributions.

Rate this Article

Adoption
Style

BT