限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

英国政府的开源开发

  • 2016-12-04
  • 本文字数:1734 字

    阅读完需:约 6 分钟

为英国政府开发的新代码现在已经开源了。政府数字化服务(Government Digital Service,GDS)技术架构师 Anna Shipman 说,以开源的方式进行代码编写可以让它们被重用,并提高透明度,最后会实现更好的数字服务。Anna Shipman 在 2016 GOTO 柏林会议上谈到了政府的开源行为

我们所做的事情就是要改变政府的工作方式,Shipman 说。英国政府希望提供的非常好的数字化服务,好让大家喜欢使用它们,并最终让政府和公民间可以更好的互动。

英国政府的软件开发以前是每年都用大爆炸式的版本来完成的。近年来这种方式已经改变了,许多团队每天会做几次代码更新。

Shipman 给出了一个例子:当车主们想要转让或保留登记号码时,他们必须要做什么事情。以前,他们不得不填写一张纸质的表格。现在,他们可以在网上填写电子表格,这样做更容易,速度也更快。在线上做这件事也降低了政府的处理成本,所以公民们现在为这项服务支付的费用也减少了。用户们对这项服务的满意度为 91%。

英国政府一直致力于将代码开源,Shipman 说新开发出来的代码应该默认就是开放的。当然用来处理安全或配置相关功能的代码也许可以除外。但即使是这类代码,有些也正在向开放发展。

大部分用于 GOV.UK 服务的代码在 GitHub 上都可以下载。开发过程中项目经历了四个阶段:发现、Alpha、Beta 和生产。这些阶段在政府服务设计手册中会做进一步的解释。

这里的“将代码开放”和“开源开发”是有区别的,Shipman 解释说。“将代码开放”意味着 GDS 不会承诺将来会对代码提供支持,也不承诺它将会一直被维护。同时,GDS 不会准备以这样的代码为中心来建立和支持一个社区。即便是这样,像新西兰、以色列等国家,还有美国的莱克星顿·肯塔基等城市,他们搭建自己的网站时使用的仍是 GDS 的代码。

大多数软件都是以“将代码开放”的方式开发的,但也有一些是开源代码。Shipman 提到了 vCloud 工具,这套在 GDS 内部开发的软件最终由代码开放转变成了开源

今年早些时候,Shipman 在 QCon 伦敦大会上发表了关于英国政府内的 DevOps 的演讲。她在演讲中提到,GDS 在使用开源工具,也在开发开源工具:

GDS 使用了大量的开源工具。其中,他们使用 Jenkins 作为一个 CI 服务器,使用 Puppet 完成 IT 自动化,使用 syslog 和 Logstash 完成日志记录,使用 Cucumber 完成验收测试和 Icinga 完成监控。GDS 还以开放的方式开发了大部分他们使用的工具和应用程序。在 AlphaGov 项目上可以找到所有他们开放出来的工具的源码,但不提供任何方式的支持。GDS 运维团队负责的工具则承担了更多的责任,比如 vCloud 工具。

将代码开放使得代码能被重用,并增加了透明度。Shipman 认为它会强迫你用正确的方式做事情。它的缺点之一是,它可能会让团队里的新员工感到害怕,因为他们写的代码将是人人可见的。GDS 处理这件事情的方法是凭借对代码审查非常正面的态度,并且通过对新员工的帮助来完成的,如结伴编程。

在文章《英国政府的敏捷:一位内部人士透露了一切》中,Nick Tune 讲述了英国政府从开源代码中获得的好处:

另一个 GDS 的辉煌例子是他们如何成功地设法将开源理念引入了政府。不仅仅是使用开源代码,而且是创造开源代码。比如,如果你去浏览一下英国税务及海关总署的 github 网站,你可以看到成百上千的开源项目。而且不仅仅只是库。你可以找到英国税务及海关总署的网页前端代码,也可以找到领域驱动的微服务代码,而这些代码都是在 GOV.UK 网站上实际运行着的。

我对 GDS 取得这样的成就感到惊奇:在政府内促进重用、给纳税人们看他们的钱是怎么被花掉的、并避免了厂商锁定。就我个人而言,我喜欢将代码开放。它对所有的开发者都保持了高标准的工作要求,所以我们不会产生下一代产品的维护负担,因而浪费纳税人的钱,并无法为英国公民创造价值。

Shipman 提到了数字化服务标准:一套所有面向公众的服务领域都必须遵守的18 项标准。该标准包含的部分规定有:软件必须由多学科团队使用敏捷方法迭代式地进行开发;团队必须了解用户的需求,进行不间断的用户研究,并进行端到端的服务测试。

一些GDS 目前正在做的事情是找出最有用的项目,使它们成为开放源代码的候选,找到方式帮助团队用开放的方式进行编码,并增加他们对开源的贡献。

查看英文原文 Open Source Development at the UK Government

2016-12-04 18:002269
用户头像

发布了 152 篇内容, 共 76.4 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

云原生架构:容器资源限制及资源可见性

云原生实验室

云原生

全球熵ETV系统APP开发|全球熵ETV软件开发

系统开发

5G多输入多输出技术,到底是个啥东东?

华为云开发者联盟

5G 输入 输出

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

阿里巴巴云原生

云原生 dubbo 中间件 案例分享 CloudNative

前端开发还可以这么玩?元数据实践分享

华为云开发者联盟

大前端 元数据 组件 ROMA 业务流

告别“效率内卷化”,华为用一年时间让职场人支棱起来

脑极体

为什么阿里人能够快速成长?看完他们Java架构进化笔记,我秒懂!

Java架构追梦

Java 学习 架构 面试 成长笔记

王者级别的Java多线程技术笔记,我愿奉你为地表最强!

Java架构师迁哥

Linux角度仰视Goroutine的GMP

ninetyhe

Java Linux 多线程与高并发 Go 语言

构师训练营 - 第七周课后练习

joshuamai

深入灵魂的考验,每行注释都是灵魂的单例模式,源码+实例降临

小Q

Java 学习 架构 面试 设计模式

揭秘 VMAF 视频质量评测标准

阿里云CloudImagine

视频 图像处理

mongodb 源码实现系列 - command 命令处理模块源码实现二

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 分布式数据库 源码刨析 分布式数据库mongodb

架构师训练营第 1 期 第 11 周作业

李循律

极客大学架构师训练营

流动性挖矿系统APP开发|流动性挖矿软件开发

系统开发

理解Python协程的本质

Justfly

Python 协程 异步 Async 异步编程

构师训练营 - 第七周学习总结

joshuamai

anyRTC 联合 vInClass 打造在线教育上课模式

anyRTC开发者

音视频 WebRTC 在线教育 RTC

鹅厂大佬亲身经历证明,一周上线百万级并发系统

Java架构师迁哥

研发管理:敏捷研发下周报的价值

云原生实验室

云原生 敏捷 研发管理 周报

架构探索:事务处理一

Dark

《Web自动化》基础知识脑图

清菡软件测试

Web

基于RTMP数据传输协议的实时流媒体技术研究(论文全文)

程序员小灰

音视频 ffmpeg 流媒体 RTMP webrtc、

WebRTC SDP 详解和剖析

阿里云CloudImagine

阿里云 音视频 WebRTC 视频云 流媒体传输

CloudIDE插件开发实战:教你如何调试代码

华为云开发者联盟

ide 开发 Cloud

深度学习在物理层信号处理中的应用研究

华为云开发者联盟

学习 模型 物理层

InfoQ 内容推荐位资源限时开放

乐白

InfoQ 资源

干货分享!用心满满:面试前必知必会的二分查找及其变种

比伯

Java 编程 架构 面试 计算机

拆解增长黑客之实战(一):获客与激活

懒杨杨

增长 产品运营

三分钟看懂快速开发,常用软件快速开发平台速览

Marilyn

敏捷开发 快速开发 企业开发 企业应用

多活/多机房的几种实现方式与重点

Justfly

高可用 跨机房 数据同步 异地多活容灾

英国政府的开源开发_开源_Ben Linders_InfoQ精选文章