度量开源办公室的成功

开源项目管理者必须展示他们工作的回报率(ROI)。本指南提供了组织评估其开源专项、项目和贡献的一些标准方法的概览。

了解要度量什么,如何定义成功,以及如何最佳地使用这些信息来推进你的开源专项目标,展示效果,并获得支持。

目录

如何定义成功

明智的组织明白投资开源开发的价值,并设定与开源使用和参与相关的目标。但每个开源专项对成功的定义都略有不同。你设定的目标和跟踪的指标将根据你投资开源的原因而有所不同——无论是为了招募开发者、通过开放创新引入新的思想和技术、实现更快的市场上市时间、降低开发成本,还是其他众多原因。

根据你独特的战略设定目标,并从执行团队那里获得支持,以确保开源战略与整体商业战略一致,这是非常重要的。话虽如此,开源专项管理者无论在哪个行业、产品或商业战略中,都有些标准的衡量成功的方法。这些包括:

为何设定目标?

在我们深入探讨开源项目跟踪的内容和方法之前,让我们先花一点时间讨论一下通过设定目标并对其进行度量所能实现的成果。

首先,跟踪与目标的进展有助于确保你投资的开源项目(无论是外部的还是内部的)保持健康——它们能够回应社区的需求,更好地代表公司,并帮助实现开源项目更广泛目标。定期跟踪可以帮助为开源项目设定基准,并作为一个预警系统,允许在项目偏离轨道、不符合法律合规性或需要退役时进行调整。

审慎(和战略性)的测量也是向高层管理人员报告的极好材料。定期报告有助于确保项目与目标和整体业务战略保持一致,并帮助项目经理在执行领导层中获得对项目的内部支持(特别是如果你们正在实现或超过这些目标!)

例如,Facebook的开源办公室会定期在内部发布其开源项目的月度成果,并向管理层发送高管报告。 “报告是提高意识的好方法。尽管Facebook作为一个组织高度重视开源,但始终在内部不断地自我推销并展示你的价值始终是件好事。”——Christine Abernathy,Facebook的开源开发者倡导者。 定期公开发布结果也有助于提高潜在合作伙伴、用户和开发者对您组织开源活动的认识。 公开传播结果——好的、坏的和丑陋的——增加了你的项目的透明度、问责性,从而在开源社区增加了可信度。查看 FacebookGoogle.Googley的示例开源报告卡。

如何设定目标

对于您的开源专项,拥有崇高的目标是完全可以的,但要为实现这些目标的方式和时间表设定合理的期望。首先,开始度量以建立性能的基线是有帮助的。为收集数据设置正确的工具,并确保数据来源清晰且以您(和您的经理)能够理解的格式。许多组织为他们的开源专项创建了一个指标仪表板,以在一个地方跟踪所有数据,并提供项目快照,这可以帮助快速评估进展。(请参阅我们关于管理开源专项工具的指南。)

云原生计算基金会的项目仪表板

接下来,让所有开源专项管理者和利益相关者聚集在一起——在Facebook,这包括工程领导和项目维护者——作为一个团队决定在接下来的3-6个月(小的、可实现的增量)里你想要达到的目标。在那个时间段结束时,回顾你的表现,并根据上一次的进展调整下一次的目标和策略。

“我倾向于基于社区感受到的痛苦找到指标,并尝试改善这些指标以改善社区健康。”——Sarah Novotny,Google的Kubernetes社区经理。

除了基线性能指标外,以下是您在为项目设定目标时需要考虑的一些其他事项:

常见目标

当谈到度量您的开源专项的成功时,很容易就会专注于项目的定量指标:贡献者总数、代码行数、项目数量等。在下一节中,我们将讨论如何通过这些指标来评估您项目的健康状况。但首先,除了这些数字之外,还有很多其他重要的方法来衡量您项目的成功的。

“我认为使用指标来了解趋势是好的。如果把它们作为唯一的成功方法,就会带来麻烦。”—Joe Beda,Google Kubernetes的创始工程师和Heptio的联合创始人兼CTO。

Kubernetes是GitHub上速度最快的开源项目之一,在过去三年中吸引了来自1,181家公司的2,760名开发者的超过80,000次提交。但从一开始,这个项目就根据用户是否对这项技术感到兴奋并使用它来衡量其成功,而不是通过“一些开源指标列表”,Beda说。

以下是开源办公室背后的一些常见目标,以及项目经理用来衡量这些目标的顶级方法,以跟踪项目的整体进展。其中一些目标无法确切地衡量,而是关于提高流程、效率和质量。其他目标可以通过进行调查或其他评估方法来衡量,例如定期和积极地征求口头或书面反馈。(与您的团队交流!)

目标1:确保高效且合法合规地使用开源代码。

这通常是组织开始参与开源活动的地方。他们意识到工程部门正在大量使用开源软件,无论是在他们的基础设施中,还是在他们的产品与服务中,或两者兼有。一个项目办公室有助于集中化有关开源使用的政策和决策,追踪其使用情况,并确保组织不会违反各种开源许可证下的法律义务。项目还可以跟踪它们在帮助开发者解决可能遇到的任何法律问题方面的成效。

针对这一首要目标的一些最常见衡量方法旨在确保政策和流程按预期工作,并确保组织保持合法合规:

目标2:提高开发者的生产力。

一旦您开始追踪和管理您的开源使用情况,您就会希望让开发者更容易地为开源项目做出贡献。如果您的工程师需要经过层层繁文缛节才能向您的业务所依赖的项目提交错误修复或新功能,那么您就是在浪费宝贵的时间和资源。从长远来看,开发者通过向上游贡献代码,而不是维护一个随时间累积技术债务的项目分支,也能节省大量时间。

“我们试图让自己像马拉松赛道上给跑步者送水的人。我们鼓励开发者朝我们的方向多走几步,知道这样做他们实际上最终会达到目标。我们真的试图设置一个程序,成为一个支持服务,而不是减速带。"— Gil Yehuda,Oath(雅虎+美国在线)的开源高级总监

与此目标相关的指标旨在为开发者贡献回开源项目提供便利,并增加您的组织向上游贡献的代码总量。一旦您消除了贡献的障碍,并使审批过程明确且快速,您可以期待更多的贡献和效率。需要跟踪的事项包括:

目标3:创建和培养开源项目。

这是许多以工程为重点的大型组织(如Facebook、Google、Microsoft、Twitter等)开源专项的主要目标。他们正在创建数百(甚至数千)个旨在解决棘手技术问题的开源项目。目标是吸引外部用户和贡献者带来新的想法,并帮助以更快的速度推进技术——加州大学伯克利分校教授Henry Chesbrough将这一概念称为开放式创新

“你如何让世界上最聪明的人在你公司工作?嗯,你开源一些东西,然后说服他们为你的项目做出贡献!”—Chris Aniszczyk,开放容器倡议的执行董事和云原生计算基金会的首席运营官

衡量项目健康可用的众多数据点是跟踪这一目标的关键(见下一节的前5名)。但还有其他考虑因素:

“在上半部分,我们决定我们希望有更多的旗舰项目启动,并使开源过程更加严谨。但那背后没有数字。这只是意味着重新审视如何启动开源项目的过程。”—Christine Abernathy,Facebook。

目标4:招募和保留开发者。

作为一个组织参与和创建开源项目是吸引开发者的绝佳方式——并且可以快速地让他们入职,同时减少培训所需的资源。使用或为您的项目做出贡献的开发者在加入组织时已经熟悉您的流程、工具和技术。(请参阅我们关于招募开源开发者的指南。)

但作为项目经理,您可能没有直接参与招募开发者的角色,并且可能不清楚您组织参与开源对招聘的直接效果。为了帮助更直接地连接项目工作和招聘,Facebook进行了半年一次的调查,询问新员工三个基本问题:

开发者招聘的其他常见指标包括:

目标5:推广开源文化。

开源专项对工程人才的贡献很大程度上也归功于在组织内培养开源文化和实践。这是因为拥抱开源的组织被认为是开发者工作和创新的好地方。开源专项经理通常是组织内开源精神的大使,同时监督协作的政策和实践。

跟踪开源文化在组织内的发展对于衡量项目的有效性至关重要。一些常见的衡量开源文化采纳的方法包括:

目标6:将开源社区利益与产品利益对齐。

社区倡导是开源专项中一个相当新但日益流行的角色。您经常充当项目开发者和采用者社区之间的联络人——代表基于您的开源代码构建产品的外部用户的声音,并将信息反馈给产品管理团队。

这是一个重要角色,确保您的产品与服务从您的开源社区中获益,从而使您的开源专项与组织更广泛的商业战略和目标保持一致。一些衡量您倡导成功的指标包括:

需要跟踪的内容

对于开源专项来说,衡量成功和跟踪进展的方法有很多。项目健康不是唯一需要跟踪的方面,但它仍然非常重要。问题在于,围绕开源项目有大量的数据可用。任何可以获得数据的方面,都可以收集和跟踪。再次强调,每个组织跟踪的指标——以及他们如何使用这些数据——在很大程度上取决于他们对项目的目标,以及他们在市场和开源社区中所面临的独特挑战。

“我们收集我们能够获取的数据,因为我们有这些数据,但我们不只关注数字。我们关注的是确保我们有正确的结果。”—Gil Yehuda,Oath(雅虎+美国在线)的开源高级总监

对于一些(疯狂或完全自动化的)项目经理来说,答案是跟踪所有事物。但对于大型组织来说,特别是有那么多项目,跟踪一切并从中得出任何意义是不可能的。那么,真正表明一个开源项目健康状况的指标是什么呢?

以下是评估你开源专项整体健康状况的顶级指标。这些只是更严格和深思熟虑分析的起点。请记住,这些是帮助负责确保多个项目健康状况的项目经理的提示。项目本身也应该跟踪自己的健康指标。GitHub的开源指标指南为项目维护者应该关注什么提供了很好的概述。

这些数字可以很容易地使用免费和开源的工具,以及商业产品从GitHub收集。定期(每月、每季度、每年)测量它们,以帮助为个别项目以及整个项目的总体进展设定基准。在管理报告中使用它们,并帮助您的开发者改进您的项目。

“我们定期尝试检查并看看,项目是否健康,以及给他们一些建议,告诉他们应该如何做得更好。但我们不直接管理。我们只是给他们数据,然后在我们能够或必要时,稍微推动他们。”—{Christine Abernathy}(https://twitter.com/abernathyca),Facebook。

贡献者数量(以及外部与内部贡献的比例)

项目起初大多数贡献来自内部开发者,并随着源代码的使用或分叉逐渐包括更多的外部贡献。那些能够持续吸引多样化社区的、健康的项目,其大部分贡献来自项目生态系统中对代码有商业依赖的其他公司。(还记得有1000多家公司为Kubernetes贡献代码吗?)

那些持续吸引新外部贡献者的项目,很可能在维护项目、欢迎贡献者和整合社区反馈方面做得很好。(注意:对于那些没有扩大贡献者基础的项目,这可能仍然成立!)

“Kubernetes贡献者(git作者)随时间变化

提交、开启和接受的拉取请求数量(以及它们保持开启状态的时间长度)

当一个贡献者发现一个错误或者有一个他们能够(并且有权限)修补或编写的功能请求时,他们会这样做并提交一个拉取请求(PR)。跟踪拉取请求的数量以及它们的处理情况,展示了多少代码是由非雇员的贡献者提交的,因此这是衡量外部对您项目兴趣水平的一个指标。

Kubernetes使用Bitergia Analytics随时间追踪开启和关闭的拉取请求

PR保持开启状态的时间长度也表明了您的项目维护者对外部贡献者的反应速度和欢迎程度。如果一个PR长时间未得到回应,潜在的贡献者可能会将他们的好想法带到其他地方。

“当我们有一个好项目时,我们可能没有拉取请求开启超过最多两到三个月。实际上,这已经很长了。”— Christine Abernathy,Facebook。

请记住,这些指标高度依赖于项目的大小。Facebook的小型项目会尽量保持开启的拉取请求数量在10个或更少。但对于有大量社区输入的大型项目来说,与维护者的数量相比,保持PR在这个限制之内将是具有挑战性的。审查这些拉取请求需要时间,所以大型项目往往有更长时间的开启PR。

Facebook的开源办公室经常在数据库中运行查询,并挑选出开启PR最多的前五个项目。他们确定几个问题,然后借此机会与项目的维护者开展对话。他们向他们提出几个问题,以找到问题的根源,并看看什么可能有助于解决问题。大多数情况下,这只是重新集中他们的注意力,并提醒他们保持社区满意的重要性。但偶尔,深入研究这些数字会指向项目的更深层次问题。许多开启的PR,或者旧的PR,可能意味着只有一两个人在维护项目——这是一个潜在的红旗。

提交的问题数量(以及它们保持开启状态的时间长度)

没有时间、权限或能力提交拉取请求,但遇到代码问题的用户可以将他们的漏洞和功能请求作为问题提交。问题的数量以及它们是如何处理的,可以表明项目的使用者采纳程度以及维护者对用户需求的反应速度。

这个数字当然取决于问题是如何跟踪的。对于仅使用GitHub来跟踪错误项目,问题可能保持开启的时间要比使用GitHub跟踪包括功能请求在内的问题的项目要短得多。这些考虑因素会影响问题年龄的延长或缩短。

Kubernetes随时间开启和关闭的问题

每个贡献者的提交数量(外部与内部)

项目相对于总数拥有的外部提交数量是另一个表明项目在开放创新方面效果如何的指标——即从外部引入新想法。健康的项目将看到外部贡献者的比例随时间增加。测量每个贡献者的提交数量也有助于评估您的项目是否吸引了新贡献者,以及这些新贡献者是否持续参与。

外部采用者数量

每个开源项目都应该有一种方法来跟踪选择在生产环境中采用该软件的组织。无论是通过一个ADOPTERS.md文件,还是在README中的简单列表,关键是要跟踪这个列表,并确保它随时间增长。如果外部采用者的数量停止增长或减少,这可能预示着项目成熟或项目过时。

创建或贡献的项目数量(整个项目)

为您的组织发布的每个项目跟踪这些指标,同时也要跟踪您的开发者积极贡献的项目。在制定开源策略的过程中,您应该已经确定了对业务至关重要的项目,并为贡献给这些项目划拨了一些投资。衡量您的组织开源成功的不仅仅是通过您自己的开源项目的健康程度,还要通过其整体的开源活动来衡量。这包括您依赖于产品开发和业务运营的项目的健康程度,以及确保您的组织在法律上符合您使用或发布的任何项目的开源许可证。(请参阅我们的开源合规计划出版物。)

其他需要跟踪的指标

基本的项目指标是了解您开源贡献情况的良好起点。但成功的项目经理需要更深入地研究其他重要指标。

根据您的目标,以下是您可以(也许应该)跟踪的众多其他事项。请记住,数字本身不是目标——目标是通过长期跟踪它们并在数据中发现模式来指导项目和流程的改进。分别对每个项目进行测量,并跨项目进行综合测量,以全面了解您的项目的产出和结果。

结束语

组织会以最适合他们需求的方式评估他们的开源专项、项目和贡献。最重要的是要记住,设定一个战略和逐步实现目标。您跟踪的内容以及方式自然会随之而来。

致谢

贡献者: