Skip to content

Coding in the open

We talk a lot about Open Source at GDS. GOV.UK is built on open source software and, to a degree, built as open source software. It’s a topic we care passionately about because it helps us maintain our focus on user needs by helping us to quickly test and iterate software and systems.

The software world has a rich and growing range of tools to build your own software on. From operating systems such as GNU/Linux, web servers such as Apache or nginx, databases like MySQL, Postgres or MongoDB, the tools are there so we don’t have to do it all ourselves.

The challenge is often in knowing which of those tools are right for the job you’re focussed on.

Solving problems with the right tools

By choosing open source we can quickly try the tools that seem right, test them out, and make a decision about whether this is the right solution and start using the software straight away. A good example of that is the Elasticsearch search engine that Rob wrote about a few months back. From what we were reading it seemed like it’d be simpler for us to work with than solr, and we were able to dive in and try it out without a lengthy pre-sales process or costly and complex licensing arrangements. Instead, we test, we decide, we get on with tailoring our choice to best serve the user needs we’re focussed on.

There are open source tools that cover most of what we’re doing. We can analyse which are going to fit together in the ways we want, and where we should write our own code to make sure we’re building the best product we can in a way we can maintain. One of my fellow GDS architects, Paul Downey, has often likened our approach to that advocated by JP Rangaswami in his “open source pyramid”:

For common problems use Opensource.
For rare problems use Buy.
For unique problems use Build.

Make things open: it makes things better

We’re also making our code available for others to use. We tend to talk about that as Coding In The Open rather than Open Source. Partly because we’re not currently in a position to build and support a community around that code, and partly because most of it’s so tailored to our system that we’re not sure how useful it will be to others right now. But rest assured, if you see something useful you can use it – it’s published under an MIT licence.

We don’t want to jump to conclusions about what people will want to use, but we’re eager to hear from other people who might have overlapping needs. Together we can work out which components would be good to extract and package up in a way that makes them easier to share.

There are, of course, a few pieces that were so clearly standalone components that we think they’d be great for others to use. In his first week with us Nick Stenning put together unicorn_herder to help us manage the unicorn application server that our ruby applications rely on. It’s one of a few examples you can find in our github account.

9 Comments Post a comment
  1. This is the beauty of open source – the freedom to explore and experiment!

    12/10/2012
  2. Coding needs to be more simple to follow. The only people who consider coding is easy are people who work in the industry itself. Good blog.

    13/10/2012
  3. If you need help with your MySQL databases for government projects, I can volunteer my time to help.

    http://www.jonathanlevin.co.uk/p/volunteering.html

    17/10/2012
  4. John Fraser #

    We’re building a new dev team here at Registers of Scotland. (Thanks for this resource, which gives us good ideas.) We would like to use, develop – and therefore contribute – open source wherever appropriate. Do government guidelines encourage contributing open source? (I’m assuming so, as you have a github account.)

    15/01/2013

Trackbacks & Pingbacks

  1. Blogging for Queen and country « Matthew Sheret
  2. GOV.UK offers best practice insights » b.c.s.
  3. Tools over Content | Government Digital Service
  4. Making tools for makers | Government Digital Service
  5. The UK government pays me to write open source all day | Quick People Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,318 other followers

%d bloggers like this: