At the end of 2014, Dstl established an official presence on GitHub and released the source code for a web application called Ideaworks. This first project was a ‘pipe-cleaner’ - a way to see if it was even possible to release code using a simple application in an area of government not traditionally known for openness.
We aren't the first in government by any means - the Cabinet Office have been 'coding in the open' for a couple of years, as have the Department for Energy and Climate Change. In fact it is directly in line with UK government policy on the use of and involvement in open source. In the wider defence world the US National Geospatial-Intelligence Agency and Defense Advanced Research Projects Agency both publish (and importantly continue to code) large amounts of their software via GitHub. The National Security Agency has been a long-standing contributor of Open Source software as well with projects including security enhancements to the Linux Operating System (SELinux) and data storage and processing systems such as Apache Accumulo and Apache Nifi.
Why bother? Sharing software publicly means it can be widely used and improved by anyone who has a similar need, increasing the pool of people interested in improving the software all at no extra cost. Other developers and their users will be able to find and fix bugs and in some cases create new features even before our Ministry of Defence users request them.
Publicly sharing code shouldn't be a big deal, but it is for us given the work we undertake. In the last 10 years alone, Dstl has deployed over 300 scientific staff to Afghanistan and Iraq It has tested samples from the chemical attacks in Syria and it runs one of only 21 laboratories worldwide that have the ability to detect chemical warfare agents. Understandably Dstl can be cautious about what information it shares externally.
So, I'm proud that all levels of the lab helped see it through and I'm hopeful that it will encourage others to do the same. I'm also hopeful that we've set a precedent for thinking about things differently, especially if it influences how we and the Ministry of Defence share our code and collaborate with technology companies and academia in the UK.
But, it’s also only a small achievement - establishing processes only gets you so far. Meaningful and mutually beneficial contributions to the Open Source community will only really happen when it is sustained; where the coding is in the open and not released into it. To achieve that we will need to change our mind-set and adopt different principles, not processes.