如何衡量开源项目的影响力

传统的指标无法准确预测开源项目的成功或影响力。这里有一些替代方法。
266 位读者喜欢这篇文章。
3 warning flags of DevOps metrics

Opensource.com

本文由 Don Marti、Georg Link、Matt Germonprez 和 Sean Goggins 共同撰写。

传统的开源项目指标缺乏预测其影响力的能力。坏消息是,开源活动指标与项目影响力之间没有显著的相关性。好消息是?有前进的方向。

让我们从一些问题开始:您如何衡量开源项目的影响力?您的项目为其他项目提供了什么价值?您的项目在开源生态系统中有多重要?您可以使用您可以每天跟踪的开源指标来预测您的项目的影响力吗?

如果这些问题引起了您的共鸣,那么您很可能关心衡量开源项目的影响力。在 Opensource.com 上,我们已经了解了如何衡量项目的健康状况社区经理的绩效可用于衡量的工具以及要使用的正确指标——并且我们理解并非所有指标都值得信任

虽然所有这些因素对于构建开源项目健康状况的全面图景至关重要,但故事还有更多。实际上,许多指标未能及时提供我们需要的信息。我们希望每天使用预测性指标——与我们关心的结果和影响力指标相关联并充当其预测指标的指标。

大多数开源项目指标侧重于项目元数据,例如贡献者和提交计数,而没有解决项目是否影响更广泛的开源生态系统。不幸的是,拥有大量贡献者和活跃贡献流的项目可能不相关,并且可能永远不会与开源生态系统中的其他项目相关。为了更好地理解项目的影响力,重要的是要考虑更广泛的开源生态系统的背景。本文介绍了 V 指数作为衡量影响力的指标(参见开源项目影响力回归分析:与活动和奖励的关系)。

谁关心项目影响力?

开源项目的赞助商关心其影响力。例如,托管开源项目的基金会可能希望它被广泛使用,或者为开发人员支付工资以从事项目的组织将希望确保他们的努力正在发挥作用。因此,软件开发人员或项目经理可能需要使用指标来证明在开源项目上花费的时间和精力正在为其雇主创造真正的价值。

开源项目成员也关心其项目的影响力。高影响力的项目可以成为开发人员的自豪感和动力源泉。在开源生态系统中,这意味着人们对新的开发感兴趣,并准备报告错误。高影响力意味着项目需要维护代码库并解决漏洞,这激励了对项目成员的支持。

开源项目影响力

理解开源项目影响力的有效方法是通过其软件库。软件库肯定会影响使用它的项目,流行的库也通过在各种软件项目中提供功能而改变了软件开发的方式。

例如,Bootstrap 库彻底改变了网站界面,并已成为事实上的标准。但是 Bootstrap 依赖于另一个广泛使用的库:jQuery。jQuery 简化了 JavaScript 在网站开发中的使用。jQuery 对 Bootstrap 以及整个 Web 开发的影响怎么强调都不过分,这种影响在两者之间的库依赖关系中显而易见。

jQuery/Bootstrap 示例演示了软件库如何产生影响。在开源生态系统中,jQuery 是 Bootstrap 的上游项目,而 Bootstrap 本身是许多网站和 Web 框架的上游项目,如下所示

Open source project dependency

opensource.com

衡量影响力

许多指标正在开发中,以衡量开源项目的影响力。这些指标包括用户数量、下载量、安装量、媒体(例如,博客、新闻、YouTube 视频和招聘信息)中的提及、商业产品的可用性以及附加产品的数量。但是,此类指标将影响力隔离在该特定项目内,并且不能完全展示软件库在开源生态系统中的影响力。

为了衡量开源项目在开源生态系统中的影响力,让我们借鉴学术界的一个指标:h 指数。这通过衡量作者发表了多少篇出版物,以及有多少其他作者引用了这些出版物来确定作者的影响力。因此,我们建议,可以通过下游依赖项(即,有多少下游开源项目使用它们以及这些下游项目本身被使用的频率)来确定项目在开源生态系统中的影响力。

V 指数

当下游软件中使用了软件库时,就存在下游依赖关系。V 指数概括了我们提出的影响力衡量标准,它是自身至少具有相等数量的二阶下游依赖项的一阶下游依赖项的最大数量。一阶依赖项是使用该库的开源项目的数量。二阶下游依赖项由一阶依赖项目在其他开源项目中被使用的频率决定。

V 指数在三种不同的场景中进行阐述

场景 A

 

场景 B

 

场景 C

一阶依赖项

二阶依赖项

 

一阶依赖项

二阶依赖项

 

一阶依赖项

二阶依赖项

依赖项 1

0

 

依赖项 1

4

 

依赖项 1

40

依赖项 2

0

 

依赖项 2

4

 

 

 

依赖项 3

0

 

依赖项 3

4

 

 

 

依赖项 4

0

 

依赖项 4

4

 

 

 

项目 A 的 V 指数为 0。

该项目有四个项目依赖于它。没有其他项目依赖于这些项目。项目 A 的 V 指数为 0,因为零个一阶依赖项具有任何二阶依赖项。

 

项目 B 的 V 指数为 4。

该项目有四个项目依赖于它。这些项目中的每一个都有四个项目依赖于它们。项目 B 的 V 指数为 4,因为四个一阶依赖项中的每一个都至少有四个二阶依赖项。

 

项目 C 的 V 指数为 1。

该项目有一个项目依赖于它。该项目有 40 个项目依赖于它。 项目 C 的 V 指数为 1,因为它有一个一阶依赖项,该依赖项至少有一个二阶依赖项。

以一个实际示例为例,jQuery 的 V 指数为 98。它有 13,848 个一阶依赖项,其中 Bootstrap 是一个,有 5,005 个二阶依赖项。在 13,848 个中,只有 98 个一阶依赖项具有 98 个或更多二阶依赖项,如下所示

v-index of jquery

图 2:jQuery 的 V 指数:x 轴表示下游开源项目(一阶下游依赖项),按其自身的下游依赖项数量排序。y 轴表示 x 轴上每个一阶开源项目的下游依赖项数量(二阶下游依赖项)。V 指数是至少具有相同数量的二阶下游依赖项的一阶下游依赖项的数量。(图形由 Kevin M. Lumbard 制作,根据 CC-BY-SA-3.0 许可。徽标是各自所有者的财产。)

使用新指标提高影响力

您如何提高开源项目的影响力?嗯,您需要说服其他项目使用您的项目。不幸的是,没有一项单独的活动可以实现这一点。但是,您可以采取一些步骤来使项目具有影响力,并且可以衡量您做得如何。让我们看看哪些措施与影响力相关。

我们根据之前的相关性分析总结了以下发现。相关性分析使用了三种开源指标的指标样本

  1. 活动指标衡量元数据,例如贡献者或提交计数。项目贡献者可以通过在项目上做更多工作并让更多人参与来增加这些指标。
  2. 奖励指标衡量项目满足贡献者期望的程度。它们可能会随着贡献的更快接受而提高。
  3. 影响力指标衡量对用户和其他项目的影响。

V 指数是为衡量影响力指标而开发的。针对 604 个在 2014 年或 2015 年启动、使用Rust 编程语言、在 GHTorrent 和 Libraries.io(数据源)中列出且至少有一个下游依赖项的项目测试了相关性。

研究结果表明,传统的开源活动指标均与影响力无关。这种缺乏预测性活动指标意味着我们没有好的预测指标来管理我们的开源项目。

这是否意味着一切都失去了?我们认为不是。一些开源项目正在构建下一代指标,项目赞助商、维护者和下游用户将来或许可以依赖这些指标。以下是找到我们需要用来提高开源项目影响力的预测性指标的四种途径

1. 添加软件质量指标

第一个想法是将开源活动指标与传统的软件工程指标(例如代码覆盖率)相结合。传统的开源活动指标主要关注项目内的开发动态。对活动指标的关注排除了软件质量因素,这些因素对于选择软件库的人们可能更重要。传统的开源活动指标使得难以区分生产性活动和非生产性活动。将软件工程指标与开源活动指标相结合可以使后者更有价值。

2. 了解用户社区

第二个想法涉及使用自然语言处理来确定开源项目中的情感,尤其是在软件用户参与的地方。传统的开源活动指标仅依赖于元数据。了解交互的数量并不能帮助我们理解社区的质量和实质。FOSS Heartbeat虽然目前未维护,但提供了一种解决方案。

3. 市场机制

第三个想法是在影响力和软件库的价值之间建立联系。现有的估值方法侧重于项目本身(即开发成本),而不是其他人从中获得的价值。开源面临的一个问题是缺乏价格信号,这些信号可以告知用户从软件库获得的价值。为了在影响力和价值之间建立联系,我们需要新的市场机制,例如 Bugmark 提出的机制。

4. 指标的共同理解

第四个想法是在开源生态系统中建立更多关于指标如何帮助我们理解开源项目的影响力和健康状况的知识。Linux 基金会发起了 CHAOSS(社区健康分析开源软件)项目,将开源项目和其他利益相关者聚集在一起,以建立对指标以及用于捕获和分析所述指标的软件工具的共同理解。这篇博文基于作为CHAOSS 项目一部分进行的研究。

致谢

本文基于 Vinod K. Ahuja 的白皮书开源项目影响力回归分析:与活动和奖励的关系。图形由 Kevin M. Lumbard 准备。这项工作得到了 Mozilla 和 Alfred P. Sloan 基金会的支持。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.