我们曾经与大家探讨过,除了 star 数量以外,还有哪些指标可以评估一个开源项目的好坏。当然,这里的“好坏”不仅仅是指一款开源软件本身“好不好用”,还包括一个开源项目的社区健康度和可持续发展性。近日,有业内专家提出了两个新的指标,用以评估一个开源项目社区的建设情况。
如今,一个开源项目可供人们参考的指标有很多,包括 star 、fork、拉取请求 (PR)、合并请求(MR)、贡献者数量等等。前 PingCAP 全球战略和运营总监 Kevin Xu 认为,这些明面上的指标很容易受到营销策略的影响,比如刷 star,刷 fork,甚至有的项目有意将一个较大的组件分解为较小的部分从而增加 PR 数量……几乎所有的指标都可能被滥用,导致在评估一个开源项目的健康度和可持续性时并不准确,有的甚至失真严重。
因此,Kevin 提出了两个新的指标,分别是:
- PR 或 MR 评审员的细分情况
- 社区交互的排行榜
对这两个指标进行持续跟踪、衡量并不断优化,就可以更加客观地持续评估一个开源社区的健康状况,从而帮助项目管理者建立一个强大的、自我完善的开源社区。
为什么是这两个指标?
Kevin 认为,任何一个开源项目社区建设的长期目标,都是达到一个临界点,使得项目能够在最初的创建者或维护者淡出之后,仍然能可持续发展。特别是对于那些围绕开源技术建立商业化的开源软件(COSS)公司来说,这个目标尤为重要。试想一下,如果一个开源项目由于创始人的退出就发展停滞,那么围绕该项目进行商业化的公司就将遭受灭顶之灾。
这是一个崇高的目标,却很少有项目能实现。
项目维护者的倦怠是一个很普遍的问题。最近的一个例子是 Redis 的创建者 Salvatore Sanfilippo,他在去年分享了他作为一个开源维护者的奋斗历程,并在今年早些时候辞去了 Redis 实验室的 CEO 职位。现实中,各种项目的维护者,无论大小,每天都在类似的倦怠中挣扎。
因此,关注以上两个指标,尤其是在项目开源之旅的早期,可以增加建立可持续发展的几率,因为这两个指标阐明了推动项目可持续性的两个重要因素:所有权和激励。
细分 PR/MR 审核者 = 所有权
这个指标能够追踪社区中谁在积极审查贡献,是一个很好的所有权指标。在项目开始的时候,创建者做了大部分的审查工作,但是随着时间的推移和项目的发展,这种情况将难以持续。社区管理者可以在早期有意识地运营,招揽潜在的优质维护者,适当地放权,让更多的人有背景知识、信心和欢迎的态度来审查收到的 PR/MR,参考 Linus Torvalds 招揽的 Linux 内核子维护者们,这对项目长期的可持续性至关重要。
从另一方面来说,审查贡献环节有一个类似于客户服务的元素,如果在这个环节没有足够的维护者参与审查,将导致一个 PR 或 MR 在两个星期甚至更长的时间里无人问津,这会给一个原本热情洋溢的新人带来不小的打击,从而影响社区新人的成长。
社区互动排行榜 = 激励机制
跟踪一些面向社区的互动,并可能在社区内用奖励的方式将其“游戏化”,这有助于在具有各种经验水平的社区成员中推动他们产生积极的互动。社区管理者可以跟踪的一些互动是提交的 PR/MR 的数量、评论、建议等。这些互动可能有不同的价值和质量,但这里更大的目标是了解谁在做什么,谁擅长做什么,并根据人们的优势和兴趣有意识地培养更多的用户行为。
比如也许有些人很擅长提供有用的评论,但暂时还没有足够的技术背景来审查 PR/MR,最好能确定他们是谁,并向他们提供更多的信息,以便他们有一天能成长为维护者;也许有些人非常热衷于监督这个项目,这从他们频繁的反应中可以看出,但他们可能并不愿意参与评论和建议,如果能知道他们是谁,并帮助他们获得更多的背景,了解项目的内部运作,从而为他们明显关心的社区增加更多的价值,这将是一件好事。
如何使用这些指标
那么如何跟踪和解读这些指标呢?Kevin 用了两个开源项目的例子来说明:
- Kong,一个API网关
- Apache Pulsar,一个 pub-sub 消息系统
Kevin 使用开源数据可视化工具 Apache Superset 从 Kong、Apache Pulsar 项目中抓取了一些数据:
PR 审查员的指标
下面两张图分别显示了 Kong 和 Pulsar 在 GitHub 上近两年的 PR 回复,不同颜色代表不同的PR 审查员:
根据这些数据,可以观察到 Kong 的 PR 审查员比例相比 Pulsar 更加“平衡”。这种“平衡”是随着Kong 项目逐渐成熟而实现的。最重要的一点是,Kong 的创建者 Aghi 和 Marco 都不是参与 PR 回复最多的维护者,这是一件好事。 也就是说,随着项目的成熟,Kong 项目社区已经出现了足够的维护者替代项目创始人的一些代码审查工作,这是项目可持续发展的好兆头。
而作为一个相对年轻的项目,Pulsar 虽然还没有达到同样的水平,但也正在实现这种平衡的路上。Sijie,Jia 和 Penghui 做了大部分的审查工作,这三人都是项目管理委员会的成员,并领导着 Pulsar 的 COSS 公司 SteamNative。其他主要的参与者,包括 Splunk(特别是在它收购了Streamlio 之后),也为这个项目做出了贡献,这是最终实现平衡的一个很好的领先指标。
注:Kevin 有意忽略了 Apache 软件基金会项目和其他项目在治理流程上的差异,这将影响一个贡献者成为评审员或维护者的速度和资质。因此,这种比较并不能 100% 的反应实际情况,但却可以窥见社区治理流程对项目维护者情况带来的影响。
社区互动指标
以下是两张互动指标排行榜,显示了 Kong 和 Pulsar 自最近一次收集数据以来的 90 天内(大概从 2020 年 3 月到 5 月)在 GitHub 上的社区互动情况,包含 PR 、comments、reviews 等互动数据。
互动排行榜反映了与上一个指标相同的 "平衡程度",谁在做什么样的互动,发生了多少次互动,以及谁似乎在做这一切都一目了然。
至于建立正确的激励结构,这种排行榜式的视图可以帮助社区管理者了解互动的来源,以便于设计相应的奖励或激励系统来加速这些积极的互动行为。
这些数据对于内部管理和外部社区建设也很有用。仔细观察的人可以发现,这些图表上的很多领导者都是项目的 COSS 公司 Kong Inc. 和 StreamNative 的员工。现实中,积极的社区贡献者成为项目商业化公司的员工是很常见的,无论这些人在哪里就业,要想培养一个可持续发展的项目,超越最初的创作者(这反过来会影响 COSS 公司的可持续发展),就需要衡量、跟踪和激励积极的互动行为。
最后,无论图表多么漂亮,数据并不能说明全部的问题。而且无论某个项目多么成功,其经验都不应该被模板化,直接套用到不同的项目中。项目管理者要善于活用这两项指标,观察谁在为项目做贡献,同时积极维护项目相关的文档,设定明确的项目贡献质量准则,把握适合自己的纳新门槛,在新人数量和质量之间做好平衡,才能让一个优秀的开源项目社区能够真正的可持续发展。
本文转自OSCHINA。
本文标题:Windows/Linux 代码共享,Linux 内核开发者:差评
本文地址:https://www.oschina.net/news/120749/linux-graphics-why-sharing-code-with