英国政府向けに開発される新しいコードはデフォルトで公開される。GDS(Government Digital Service)の技術アーキテクトであるAnna Shipmanは、オープンな状態でのコーディングは再利用を可能にし、透明性を高め、より良いデジタルサービスをもたらすと述べる。彼女は、GOTO Berlin 2016でオープンソーシング政府について語った。
我々の仕事は政府の働き方を変えることだ、とShipmanは語った。英国政府は、人々が使いたくなるような良いデジタルサービスを提供したいと考えている。それはすなわち、政府と市民の間の交流をより良いものとしていくサービスである。
英国政府のソフトウェア開発では、毎年ビッグバンリリースが行われていた。長い年をかけて、多くのチームが毎日いくつかのコードを更新するように変化した。
Shipmanが挙げた例は、自動車の所有者が登録番号を転送または保持したいときにしなければならないことについてだった。以前は書類に記入しなければならなかったが、今ではオンラインで簡単かつ迅速に処理できる。オンラインで処理することによって政府の処理コストも削減されたため、今ではこのサービスのために市民が支払うべき金額は少なくなった。このサービスの利用者満足度は91%である。
英国政府はコードを公開することを明言している。デフォルトでは新しいコードはオープンにするべきであるとShipman氏は述べている。セキュリティや設定に関するコードには例外があるかもしれないが、そういうコードでさえ一部はオープンになっている。
GOV.UKのサービスに使用されているコードの多くはGithubで入手できる。開発中のプロジェクトは、ディスカバリー、アルファ、ベータ、ライブの4段階に分かれている。これらの段階については、政府サービス設計マニュアルで詳しく説明されている。
Shipmanによれば、“オープンな状態でのコーディング”と“オープンソース開発”には違いがある。オープンな状態でのコーディングは、コードをサポートすることをGDSが約束したり、コードがメンテナンスされることをGDSが明言したりすることはできない。また、GDSはコードにかかわるコミュニティを構築しサポートする立場にはない。(訳注:OSSとして広く使われることを目指していないため、要望にこたえる形での機能追加やバグ修正は期待できないということ。)これらのことにもかかわらず、ニュージーランドやイスラエルのような国や米国のケンタッキー州レキシントンのような市では、自身のWebサイトにGDSのコードを使用している。
ほとんどのソフトウェアは“オープンな状態でのコーディング”として開発されているが、オープンソースコードというものもある。 Shipmanはvcloudツールについて言及した。このソフトウェアはGDSが内製したが、オープンな状態でのコーディングからオープンソースへと移行した。
今年前半に、ShipmanはQCon Londonで英国政府のDevOpsについて語った。セッションの中で、GDSはオープンソースツールの使用と開発の両方を行っていると彼女は述べた。
GDSは多くのオープンソースツールを使用している。その中でも、CIサーバーにJenkinsを、IT自動化にPuppetを、ロギングにsyslogとlogstashを、受け入れテストにCucumber、モニタリングにIcingaを使用している。また、GDSはツールとアプリケーションのほとんどをオープンな状態で開発してもいる。AlphaGovがホストしているそれらのツールはすべて、オープンソースだがいかなる形でもサポートはされていない。GDS Operationsは、vCloudツールなどのコミットメントレベルが比較的高いツールをホストしている。
オープンな状態でのコーディングによって、再利用が可能になり、透明性が向上する。 Shipmanによれば、オープンな状態でのコーディングでは正しい行動を強制される。欠点を1つ述べるなら、自分が書いたコードが全員に見られるということで、新しい人がチームに加わるのをおじけづかせる可能性があることだ。GDSは、コードレビューについて積極的になるという非常に強い文化を持ち、スタッフの新しいメンバーをペアリングなどによってサポートすることでこれに対応している。
『英国政府のアジャイル――関係者がすべてを明かす』という記事で、英国がオープンソースコードから得ているメリットをNick Tuneが説明している。
GDSの素晴らしさに関する別の例は、オープンソース哲学を政府に持ち込んだことだ。オープンソースを使用するだけでなく、オープンソースコードを作成すること――。たとえばHMRCのgithubに行くと、何百ものオープンソースプロジェクトを見ることができる。しかもライブラリだけではなく、実際にgov.ukで運用されているHMRCのウェブフロントエンドとドメイン駆動マイクロサービスのコードも見ることができるのだ。
GDSがこれを達成したことは驚くべきことだと思う。政府全体での再利用を促進し、お金をどのように費やしているかを納税者に示し、ベンダーロックインを緩和する。個人的には、オープンな状態でのコーディングを気に入っている。納税者の=お金を浪費し、英国市民に価値を提供できなくなるようなものを作り、メンテナンスの重荷を次世代に押し付けてしまう……といったことが起きないように、すべての開発者に高い基準の仕事をさせるものだ。
Shipmanはデジタルサービス標準について言及した。これは、すべての一般向けサービスが準拠しなければならない18の基準である。この標準で規定されていることを抜粋すると、対象となるソフトウェアは、アジャイルな手法を使用してソフトウェア開発する分野横断的なチームによって開発されなければならないこと、開発チームはユーザーのニーズを理解し、継続的なユーザー調査を行い、エンド・トゥ・エンドでサービスをテストしなければならないことなどがある。
GDSが現在取り組んでいることの中には、オープンソースにする候補として最も有用なプロジェクトを特定すること、チームがオープンな状態でコーディングするのを支援すること、オープンソースへの貢献度を高めることがある。