Corona-Warn-App 是政府和公共管理部门如何使用开源软件开发来帮助公民,同时推进技术生态系统的一个绝佳例子。该应用程序帮助追踪德国 SARS-CoV-2(导致 COVID-19 的病毒)的感染链。该应用程序使用去中心化方法来通知用户他们是否接触过 SARS-CoV-2。

(Manrique Lopez,CC BY-SA 4.0)
透明度对于保护应用程序的最终用户和鼓励其采用至关重要,而开源是实现透明度的关键要素。开源允许任何人使用、研究、共享和改进 Covid-Warn-App。这类似于意大利(Immuni)、瑞士(SwissCovid)和法国(部分地)开发的追踪应用程序(StopCovid)。相比之下,Radar Covid 是西班牙加那利群岛正在试点的新的非开源 COVID 追踪应用程序;由于该应用程序的非开源性质,以及网站在 2020 年 7 月中旬仍然无法加载,公民是否会信任它是值得商榷的。

Radar Covid 网站在 2020 年 7 月 8 日离线。(Manrique Lopez,CC BY-SA 4.0)
为什么开源透明度很重要
透明度以两种方式使软件开发项目受益
- 在项目社区内部,所有贡献者之间存在公平竞争的感觉,因为一切都是公开的,所以每个人都负有责任。
- 在外部第三方之间,对项目存在信任感,因为可以从多个角度(例如,法律、技术、项目活动、开发过程等)对其进行分析。
透明度应该是政府开发的软件的基本要求。像Public Money, Public Code和 Foundation for Public Code 这样的倡议正在为帮助公共管理者理解为什么他们的代码(作为纳税人的我们的代码)应该开源做出惊人的工作。

(Manrique Lopez,CC BY-SA 4.0)
关于 Corona-Warn-App
2020 年 5 月初,德国政府要求软件开发商 SAP 和德国电信子公司 T-Systems 基于开源和去中心化技术交付 Corona-Warn-App。许多其他德国公司和研究中心正在支持该应用程序的开发。

(Manrique Lopez,CC BY-SA 4.0)
此外,全球开源社区在帮助构建该应用程序方面表现出色,该应用程序已被超过 1500 万用户下载。
Corona-Warn-App 的开发
受到 Andreas Schreiber 的 推文的启发,Jesus M. Gonzalez-Barahona 使用 Cauldron.io(一个构建在 GrimoireLab 之上的开源软件即服务应用程序)对 Corona-Warn-App 的开发进行了分析,并在 Twitter 上总结了他的发现。
Corona-Warn-App 在 6 月中旬之前看到了强大的软件开发活动
- 超过 100 人做出了贡献。
- 进行了 5300 多次提交,其中 1600 多个拉取请求和 600 多个问题。

(Manrique Lopez,CC BY-SA 4.0)
快速代码审查
拉取请求的代码审查很快,通常在一天之内(平均:0.36 天)。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
关闭问题的时间也很快,大约两天。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
这意味着大多数拉取请求已经关闭,并且未解决问题和已解决问题之间的差距不是很大。
致力于对抗冠状病毒传播
贡献来自公司电子邮件帐户和私人地址(例如 gmail.com、gmx.de、icloud.com 和 outlook.de)。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
此外,周末的提交量没有明显的下降,这对于员工在带薪时间内制作的软件来说是不寻常的。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
这些事实可能是贡献者对对抗 COVID-19 传播的紧迫感或承诺的迹象,即使是在他们自己的时间里。
然而,问题和拉取请求提交的模式有所不同:它们在工作日比周末更常见,即使提交在整个星期内有规律地发生。对此的一种可能的解释是,开发人员在整个星期内均匀地工作,但在工作日主要上传问题并与之交互。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
杰出的开发者参与度
开发人员的入职速度非常快——目前每天贡献的人数约为 50 人,每周贡献的人数超过 100 人。
这些数字对于公司项目来说很常见,但 Corona-Warn-App 在短短 45 天内组建了一个由至少六家公司的 100 多名开发人员组成的团队。这是公司软件开发可以从开源开发中学习和应用的另一个教训吗?

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
不同存储库的参与度有所不同;例如,iOS 应用程序的提交次数约为 Android 应用程序的八倍。每次提交的行数和每次提交的文件数表明这很可能是真正的开发,而不是伪装成开发的快照。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
时间效率
一个令人担忧的数据是关闭拉取请求的时间。平均值很短,但中位数太短。这可能意味着紧密耦合团队中非常精简的代码审查,或者非常少的代码审查。

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)

数据来源:Corona-Warn-App 仪表板(Manrique Lopez,CC BY-SA 4.0)
结束语
Corona-Warn-App 是政府和公共管理部门如何使用开放协作来扩大规模以应对全球危机的成功案例。数据拯救生命,现在比以往任何时候都更需要打破孤岛,保持透明,并朝着共同目标努力。
透明度不仅是公开代码。透明度是关于公平和信任,而软件开发分析是如何利用透明度来更好地理解对您重要的软件的一个很好的例子。
如果您喜欢这个分析,请注意您可以使用 Cauldron.io 自己进行分析,因为它是免费的开源软件。
评论已关闭。