开源项目赋能利器 | 衡量社区指标

2022-03-18 12:12:06 浏览数 (1)

对于如何衡量一个开源项目的质量和健康状态,我们可以从分析项目的不同方面着手,例如技术健康状况(GitHub 上的分叉数量、随时间变化的贡献者数量以及bug的数量)、财务状况(捐赠和收入)、社区活跃度(社交媒体提及、帖子分享和跨社交媒体渠道的情感分析)以及多样性和包容性(制定行为准则、创建包容性活动,举办对色盲人士友好的演示文稿以及项目设计等)。

但如何具体收集和分析这些方面是一个大难题。如果要知道一个项目是否健康,我们则需要计算和分析随时间变化的指标数据。除此之外,开源社区日常运作会产生大量的数据,而利用仪表盘(Dashboard)来收集并分析社区里大量的数据则能够帮助整个项目制定决策和发展方向。本文将具体介绍开源社区如何利用指标和仪表盘。

"The goal here is not to construct an enormous vacuum cleaner to suck every tiny detail of your community into a graph. The goal is instead to identify what we don't know about our community and to use measurements as a means to understand those things better."

The Art of Community - Jono Bacon

开源软件立足于社区。通过不同的指标带来的信息,社区参与者(Stakeholders)可以更多地了解社区并做出明智的决定。例如,开发者可以选择最合适的项目加入,维护者可以确定哪些治理措施是有效的,最终用户则可以选择更健康、寿命更长、繁荣的项目,投资者可以选择最有潜力的项目进行投资 [1]。此外,开源项目办公室 (OSPO),即旨在管理公司所依赖的开源生态系统的公司内部办公室 [5],能够通过分析不同的指标来评估项目的健康和可持续性。由于现代应用程序的大约 90% 的组件都是开源的 [6],OSPO 变得非常流行。因此,衡量使用、贡献和发布开源软件的风险对于 OSPO 非常重要 [5]。

  1. 设定目标:没有目标的衡量是毫无意义的;了解社区想要实现什么具体目标 [3]。
  2. 找到可靠的统计来源:确定目标后,下一步则是确定有助于实现目标的渠道或方法。找到对您最重要的目标进行统计的方法很重要 [4]。一些统计数据是显而易见的,例如在 GitHub 上,您可以收集代码库的stars数、forks数和贡献者数量,也可以通过邮件列表订阅者和项目网站访问数据。不过,有些统计数据并不那么明显,有可能需要专门的工具来帮助挖掘这些数据。
  3. 解释统计数据:以人员、产品、流程和合作伙伴为出发点来解释和统计数据 [4]。也就是看与社区中的人最相关的数据,比如贡献者的效率,哪些渠道影响最大等。然后,根据项目的速度和成熟度,比如 PR 的数量和Issues的数量,来思考成熟的审核流程该是怎么样的?解决一个Issue需要多长时间?最后,从合作伙伴的角度来看待整个开源生态,譬如项目依赖以及依赖你的项目的一些数据。
  4. 使用仪表盘来评估开源指标:目前有许多工具能够创建仪表盘,可用于分析和衡量开源社区的健康状况,其中包括 LFX Insights, Bitergia, and GrimoireLab。
  5. 修改完善:评估指标后,开源项目则需要按照评估结果做出相应的改善。

不同的项目应使用不同的策略来衡量项目的健康状况。

CHAOSS 社区创建了分析方案和指标来帮助了解项目的健康状况。他们有许多工作组,每个工作组都会专注于一种特定的指标。例如:

  • Diversity and Inclusion工作组专注于活动的多元化和包容性、社区治理的多元化和包容性以及社区领导方向的健康程度。
  • Evolution 工作组创建了用于分析软件开发中涉及的活动的类型和频率、提高项目质量的过程以及社区发展的指标。
  • Value工作组创建度量标准,用于确定项目在软件项目之外改善人们生活的程度、项目对用户或献者的价值程度以及项目从组织角度来看具有货币价值的程度看法。
  • Risk工作组创建指标以了解特定软件包的质量、潜在的知识产权问题,并了解给定软件包在许可证、依赖项等方面的透明度。

Mozilla 项目与 BitergiaAnalyse & Tal 合作构建了 Mozilla 贡献者社区的交互式网络可视化。通过可视化不同的指标,他们发现 Mozilla的社区之下还有许多社区,涉及了不同领域的贡献、动机、参与度等。在此基础上,他们构建了一份报告(文末附链接),以可视化这些不同社区是如何相互关联的。

此外,Kubernetes 和 TARS等一众开源项目都在使用LFX Insights工具来分析他们的社区。

LFX Insights 是一个仪表盘,可帮助项目社区评估有关开源开发的不同指标,用于促进开源生态的可持续发展。该工具具有不同的功能来支持不同的社区参与者 [2],例如:

  • 维护者和项目负责人可以获得项目的多维度报告,避免维护者倦怠,确保项目的健康、安全和可持续性。
  • 项目推广者和社区布道者可以使用这些指标来吸引新成员和参与社区,并确定提高知名度的机会。
  • 成员和企业赞助商可以知道要参与哪些社区和软件,在社区内交流并评估其员工的开源贡献。
  • 开源开发人员可以知道将他们的工作重点放在哪里,展示他们的领导力和专业知识,管理社区动态及其影响力。

此外,在LFX Insights中,开源项目可以提取各种指标。从源代码存储库中可以看到诸如commits总数和贡献者的数量、贡献者的数量、commit的最多的贡献者以及对项目做出主要贡献的公司等指标。Pull request (PR) 则可以从 Gerrit 和 GitHub 等许多工具中提取。与commits类似,PR 的数据可按贡献者和公司来计算。该工具还计算审查 PR 的平均时间,以及仍需合并的 PR,还可以提取issues和持续集成工具的指标。除此之外,LFX Insights 允许项目从不同的通信渠道(如邮件列表、Slack 和 Twitter)收集通信和协作信息。

使用 LFX Insights 时,项目也会有不同的目标。例如,TARS 项目会使用 LFX Insights 来全面了解每个子项目(如 TARSFramework、TARSGo 等)。通过 LFX Insights 工具创建的仪表盘,TARS 社区可以了解每个单独项目以及整个社区的统计数据(见图 1 和 2)。TARS 社区还可以分析有多少人在为每个项目做出贡献,以及哪些组织为 TARS 做出了贡献。此外,他们提取每个贡献者贡献的提交数量和代码行数。通过分析这些指标,TARS社区能够更多创造吸引和留住更多贡献者的方法。

图1

图2

文中提及链接:

LFX Insights: https://insights.lfx.linuxfoundation.org/projects

Mozilla报告:

https://report.mozilla.community/assets/report/Mozilla-Rebel-Alliance-Report-2020.pdf

文献

[1] Jansen, Slinger. "Measuring the health of open source software ecosystems: Beyond the scope of project health." Information and Software Technology 56.11 (2014): 1508-1519.

[2] https://www.youtube.com/watch?v=hwTOrDg3LsI

[3] https://opensource.com/bus/16/8/measuring-community-health

[4] https://dzone.com/articles/-measuring-metrics-in-open-source-projects

[5] https://opensource.com/article/20/5/open-source-program-office

[6] https://fossa.com/blog/building-open-source-program-office-ospo/

0 人点赞