干货丨如何评估开源项目的社区参与度

在文章「开源软件的线路图」中,我们讨论了为什么Bessemer对(社区)这个类别如此感兴趣,这是我们从投资开源软件公司中得到的经验,社区参与度是我们用来评估这些业务的框架。社区是我们对开源项目评估框架的六个标准之一,是衡量项目健康状况的重要指标。作为我们在这一领域的研究和投资的一部分,我们分析了GitHub上排名前一万的开源项目,以更好地了解是什么驱动和支撑着过去十年里这些顶级开源项目。下面是我们从分析中得到的结论。

社区为何重要

开源项目从根本上说就是由社区的投入来驱动的,即使大多数贡献者从未编写出最终项目的代码。许多开源项目是由一小组核心开发人员维护的,当涉及到实际编写代码和指导项目时,社区仍然会通过错误报告,产品路线图反馈以及功能请求提交等形式,在项目中扮演基础角色。

我们认为社区为开源项目提供了最大的价值,即能够帮助他们有机地传播有关项目的信息,提高产品的美誉度,并确保项目根据其用户的需求而发展。

社区往往与产品创新和采用联系在一起,这是开源软件公司相对于竞争对手的一些核心优势。因此,当我们评估开源公司时,我们会关注它的社区参与度,以判断它是否足够强大,从而使该公司在竞争解决方案中拥有真正的优势。

哪些指标很重要

对于像社区这样的定性事物而言,准确地衡量是否成功是困难的,特别是考虑到所有不同的利益相关者和相关指标。

对于我们Bessemer的投资标的,我们最关注的是社区用户和贡献者的数量,因为他们是对社区规模最具洞察力的群体。这就是为什么我们很少会去关注诸如Github Stars之类的数字,这种数字与其他虚荣性指标一样,往往会随着大型新闻稿的发布而激增,并且由于它们不能反映持续参与,因此具有一定程度的欺骗性。

用户和贡献者代表积极参与该项目并依赖该项目的团体,但是鉴于大多数项目依靠其用户进行的遥测功能(注:Telemetry是一项远程的从物理设备或虚拟设备上高速采集数据的技术)有限,因此,真正的活跃用户很难衡量。

另一方面,贡献者虽然仅代表一小部分用户,不过这个群体更容易测量。这部分用户倾向于通过投入时间以问题注释的形式提供反馈,或者偶尔为项目贡献代码,从而与项目之间有更深入互动。我们并不使用贡献者的数量来衡量项目的开发能力,取而代之的是,我们将其用作该项目获得多少采用率的代替性指标。

不同的项目之间,贡献者是一个有点模糊的术语。为了进行基准测试,我们将其定义为在给定月份内创建Github问题、发表评论、Pull Request或提交的任何用户。相比其他机构只统计提交代码到项目中的开发人员,我们对贡献者的定义范围更加宽泛。然而,要衡量社区参与程度,我们认为宽泛的范围更有帮助。当我们跟踪许多其他开源数据点时,我们的北极星指标(注:北极星指标也叫作第一关键指标,One Metric That Matters,是指在产品的当前阶段与业务或战略相关的绝对核心指标)是一个项目每月贡献者的活跃度。

最佳的参与度是什么样的

在讨论最大的开源项目社区时,不可能不碰到来自科技巨头的项目。有史以来排名前五位的开源项目分别来自Google,Microsoft和Facebook。这些项目在现代软件开发和云基础架构中起着根本性的作用,它们建立了令人难以置信的大型社区,每个社区每月都有1000多个贡献者。有趣的是,每个项目都已成为各自类别中最流行的一两个技术,包括VSCode(注:一款开源免费跨平台代码编辑器,广泛使用的IDE),Kubernetes(Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理)以及React Native和Flutter(两个最受欢迎的跨平台前端框架)。

但是,一旦我们剔除了由大技术公司支持的项目(这些项目与独立开源项目的相关性较低),而将注意力集中在与关联商业初创公司有关的前10个独立项目上,则图表看起来会大不相同:

在参与度方面,Moby项目(Docker背后的基础项目)以及最近的Gatsby,在该图表上都是显著高于同类型其余项目的平均值。表中其余项目的平均每月贡献者数量分布在200至600之间,绝对是同类中的头部水平。在我们分析的前10000个项目中,不到5%的项目每个月拥有250个以上的贡献者,而只有2%的项目在6个月或更长时间内始终超过250个贡献者。

衡量贡献者活动远非一门科学,但在我们的分析中,我们发现了一些趋势:

不同成熟度的差异——大多数项目在其早期都经历了强劲的增长,在社区活动达到顶峰之后,随着该项目达到完全成熟,参与度趋于稳定。考虑到这一点,我们在评估参与度与基准时会考虑项目的年龄和成熟度。

按类型划分的差异——某些类型的项目(例如数据库),吸引的贡献者要比其他类型的项目(例如前端框架)少得多,后者拥有更大的开发人员团队,能够为其做出贡献。因此,为了比较项目之间的差异,按照软件类别对它们进行细分以调整这些变量非常重要,这将在下面更深入地讨论。

倾斜——贡献者的活动严重偏向最大的项目。虽然那些最大的项目通常每月超过1000个贡献者,很少有项目每月不足100个贡献者。鉴于对大型项目的偏向,我们对于新项目,更加关注是否达到与他们的阶段和类型相符合的特定阈值。

一个项目还有无数的细微差别会影响它是否能够吸引大量贡献者,包括项目组织得有多好,对新贡献者的欢迎程度有多高,以及社区范围有多广。出于分析目的,我们专注于最大的因素之一:项目的潜在用户有多少开发人员?例如,我们知道有能力为像Font Awesome这样的前端项目做出贡献的开发人员远远多于为ElasticSearch提供专业知识的开发人员。因此,我们对数据库项目期望的贡献者数量将大大低于前端项目的数量。

上图显示了项目参与度随时间变化的曲线,说明了流行的前端项目(如React Native和Font Awesome)与流行的数据库和分析引擎(如ElasticSearch和Apache Spark)之间规模的差异。

而这远不是一个完美的评估体系,我们已尝试通过组合四个主要技术类型(前端,后端,devop和数据库)中排名前10至20的项目的基准集,来开发出可解决项目类型差异的基准,以帮助我们将项目与相关的技术人员进行比较。上面的图表显示了月度贡献者在这些顶级项目中参与度的范围。

以下是我们从分析中得出的一些结论:

此图说明了不同类别项目的贡献者数量之间的显着差异,顶级的前端项目平均贡献者数量最多,而顶级数据库项目的平均贡献者数量则低得多。

尽管我们使用这些范围来提供每个类别中一些顶级开源社区如何发展的背景信息,但我们并不将这些基准范围视为定义成功的严格规则。

为了让这些基准能够有更广泛的适用范围,我们可以查看一些当前项目,包括我们投资的Cypress和Netdata,以了解当今一些受欢迎的项目与相关基准进行比对的结果。

一流的基准可以成为有用的指南,但是很少有项目能够达到基准规模的参与度。坦率地说,在一定程度上,更多的参与并不一定表明项目或公司能够在商业上取得成功。

如果一些新兴的开源项目能够每月持续超过100个贡献者,那么它们将处于行业头部领域,如果项目每月贡献者数量超过250个,则接近了有史以来最活跃的项目的成绩。实际上,在前10000个项目中,只有6%的项目在6个月或更长时间内保持每月250个贡献者。

开源社区还有更多特性,例如贡献者活动的质量和忠诚性,这些特性很难量化,但同样重要,我们知道这些贡献者指标仅说明了故事的一部分。但是这些建立在强大开源社区之上的公司,比他们的竞争对手拥有更多的优势,作为投资者,我们倾向于投资这种类型的公司。

软件的未来是社区驱动的

我们正处于一个软件开发越来越多地由社区驱动的阶段,商业软件和开源软件之间的界限越来越模糊,我们希望越来越多的公司将其核心技术开源,因为开源能给社区和公司带来共同的利益,并专注于如何实现盈利。随着Bessemer对这些类型公司的投资持续增加,我们对开源项目指标的研究将会更进一步,因为我们将拥有更多的数据来源纳入分析,并更好地完善我们的指标。

原文链接:

https://www.bvp.com/atlas/measuring-the-engagement-of-an-open-source-software-community/?from=feature#page_top

你可能感兴趣的:(干货丨如何评估开源项目的社区参与度)