从业者指南:贡献者可持续性入门

主要指标:

如果您还没有阅读 从业者指南:简介 - 解释指标时要考虑的事项,请现在暂停并阅读该指南。

贡献者可持续性是评估开源项目和社区是否有足够的贡献者使项目能够长期持续的重要组成部分,因此贡献者可持续性对整个项目的可持续性有很大影响。有很多项目只有一个维护者(参见 xkcd 依赖项),许多项目都难以找到足够多的人积极参与其项目并长期维护它们 (Egbahl 2016)。Avelino 等人 (2019) 发现,即使是受欢迎的项目也可能被永久放弃,并且无法因失去太多关键贡献者而恢复。

现实情况是,开源项目很多,但贡献者却不够,因此维护者迫切需要帮助,以应对成功且可持续的开源项目所需的各种贡献。然而,重要的是要考虑每一项新的贡献都会给维护者带来额外的工作量,需要审查和接受,这可以通过适当的自动化、流程和文档来帮助贡献者取得成功,但最终,其中一些贡献者将需要成为维护者,以处理来自新贡献者的额外工作量(Eghbal 2020)。

如果没有足够的贡献者和维护者来维持一个项目,这将增加该项目失败的风险,从而给用户和其他依赖于该项目的项目带来各种重大挑战。

第 1 步:确定趋势

有很多因素会影响贡献者的可持续性。从开始 贡献者缺席因素,如果关键贡献者/维护者决定离开,您可以评估项目的风险,但查看与以下相关的其他趋势也很重要 合作者 随着 贡献类型 人们正在努力识别可能影响项目整体可持续性的潜在贡献者风险。

贡献者缺席因素

贡献者缺席因素对于理解贡献者的可持续性非常重要,因为它直观地展示了“在项目停滞之前我们可以失去多少贡献者?”这个问题。它有助于确定项目中的工作在贡献者之间分布的广泛程度,并确定项目中完成大部分工作的关键人员。如果大部分工作是由一个人或少数人完成的,那么如果该人或这些人不再参与项目工作,则会增加项目变得不可持续的风险(Avelino 等人,2019 年)。

贡献者缺席率条形图,贡献比例均衡,范围从提交的 16% 到提交的 6%

合作者

贡献者指标广泛地考察了谁为项目做出了贡献,并且可以通过多种不同的方式进行可视化。虽然您可以将其视为一段时间内的单一贡献者数量,但将其细分可以帮助您了解有多少贡献者处于活跃状态,以及有多少贡献者的活动随着时间的推移而增加或减少。虽然贡献者缺席因素指标可以很好地识别关键贡献者,但您还应该尝试更广泛地了解贡献者的可持续性,以查看所有贡献者的总体趋势,看看您是否正在经历贡献者的增长或下降。

随着时间的推移,活跃贡献者和增长分析显示正负贡献者余额

贡献类型

多种不同的贡献会影响开源项目的健康和可持续性,贡献可能包括编写代码、管理社区、分类错误、宣传项目、支持用户或以其他方式提供帮助。各种贡献类型可以证明项目是成熟的、全面的,有足够的活动来维持项目的各个方面,并提供支持各种贡献类型和具有编码以外的不同专业知识的人员的领导路径。

随着时间的推移,数据源对各种来源的贡献,包括 GitHub、Twitter、pipermail、Slack

第 2 步:诊断

正如从业者指南简介中提到的,您应该首先与一些密切参与该项目的人交谈,以便您可以共同了解趋势并以对项目有意义的方式解释它们。例如,下图显示,过去一年该项目中超过 60% 的提交是由一个人做出的,这在大多数情况下会增加如果该人或多人不再工作,该项目可能变得不可持续的风险关于该项目。然而,根据项目的其他方面来考虑这一点也很重要。例如,如果这个项目主要是许多人都具备更新知识的文档,或者它的代码相当简单且易于其他人理解,或者如果该项目主要由一个人使用,那么风险相对较低。另一方面,如果项目复杂、庞大和/或广泛使用,那么风险就很高,项目应该专注于招募更多的贡献者和维护者,以提高贡献者的可持续性。

总线系数饼图显示,一位贡献者做出了 61.8% 的提交,第二大贡献者分别做出了 10.8% 和 9.77%

查看与贡献者相关的其他趋势也很重要。例如,下图显示该项目的活跃贡献者达到顶峰然后下降,因此诊断为什么会出现这种情况非常重要。如果项目是在时间上有限的项目(例如,与会议或研讨会相关),并且已完成,或者项目的大部分工作已经完成并且没有得到轻松维护,那么这将是一种正常的模式。但是,如果这是一个典型的开源项目,则可能表明存在影响贡献者保留的严重问题,应诊断和解决这些问题。

按参与度划分的贡献者增长情况显示,活跃贡献者在 2023 年 2023 月达到顶峰,到 XNUMX 年 XNUMX 月降至零

第 3 步:根据需要收集其他数据

CHAOSS 有其他与贡献者可持续性相关的指标,可以帮助诊断社区内的特定问题。

附加指标:

第四步:做出改进

对于关注贡献者可持续性的项目而言,招募能够成为维护者的新贡献者对于项目的成功至关重要,甚至有些项目通过招募新的维护者,有可能从被主要开发人员抛弃的困境中恢复过来(Avelino 等人,2019 年)。通过在失去关键开发人员之前专注于招募新贡献者,您可以有时间吸纳贡献者,并在以后主动预防危机。

贡献者缺席因素可以告诉你一些事情,这些事情可用于帮助推动贡献者的改进,从而使你的项目更具可持续性。首先,它可以帮助你决定当前贡献者情况的可持续性。如果一个人做出了大部分贡献,并且项目很大或很复杂,你应该专注于分配负载并让更多人参与项目的方法。其次,贡献者缺席因素指标可以帮助你找到可能贡献比你想象的更多的人,这可以帮助你思考你可以鼓励谁做出更多贡献,或者找到可以担任领导角色的人(例如,审阅者或维护者)。对于领导角色,你可能会看到某人做出了 10% 的贡献,并决定他们是否已准备好成为维护者。一种方法是缩小新维护者的范围。如果他们还没有准备好成为整个项目的维护者,也许他们可以维护一个子项目或项目的特定部分,同时在其他领域积累专业知识。一种方法是使用 OWNERS 或 代码所有者文件 赋予人们对存储库中不同区域的责任,包括文档或社区部分。贡献较少但定期贡献的人可能是指导或成为审阅者的良好候选人,以便在获得更多经验后使他们成为维护者。

查看贡献指南或其他入职文档也很重要,以确保新贡献者可以轻松开始使用您的项目(请参阅“其他阅读材料”部分以获取链接)。良好的文档是我们如何扩展那些占用已经超负荷工作的维护人员宝贵时间的事情,并腾出他们的时间来处理其他事情。至少,新贡献者需要了解如何启动一个他们可以进行开发的环境、对测试的期望以及如何运行测试、您对拉取请求的任何流程或期望以及其他要求的说明。如果这些都有很好的文档记录,新贡献者可以在现有维护人员的少量帮助下开始工作,从长远来看,这可以为您节省大量时间(Eghbal 2020)。当一个项目没有良好的入职文档时,维护人员可能会因花在新贡献者问题上的时间而感到沮丧,这可能会让新贡献者很难感到受欢迎,并且需要很长时间才能开始工作。这就是人们灰心丧气并离开你的项目的原因。这并不意味着您需要花费数天和数周的时间来编写完美的入职文档。有总比没有好,如果您从一些可以帮助人们快速入门的内容开始,新贡献者实际上可以通过添加更多详细信息和附加说明来帮助改进入职文档,以解决他们感到困惑或难以理解的事情。

虽然入职文档是让人们大规模入门的好方法,但事实证明,指导是一种有效且高效的方式,可以让新贡献者更快地在项目中发挥生产力(Fagerholm 等人,2014 年)。然而,指导会在短期内占用维护者的时间,以期使项目在长期内更具可持续性,因此,重要的是要考虑哪些重复贡献者可能是指导的良好候选人(Egbahl,2020 年)。

拥有好的第一个问题或需要帮助的标签是一个很好的起点,因为它们可以帮助人们在了解项目的同时找到可以处理的事情,但您需要花些心思将这些问题打造成包含足够信息的内容,以供新贡献者使用。好的第一个问题应该定位为简单问题,让新贡献者可以在短时间内掌握并完成,以帮助他们更多地了解您的贡献流程。需要帮助的标签可以用于稍微复杂一些的问题,以便已经开始贡献的人可以找到其他工作。好的第一个问题和需要帮助的标签以及好的贡献指南可以帮助您为项目建立可持续的贡献者渠道。

然而,好的优先问题和需要帮助的标签是被动的帮助请求,所以我也鼓励维护者也积极主动地具体说明人们可以提供帮助的方式。要求特定的人审查 PR 或回答用户的问题表明您认可他们独特的专业知识并需要他们的帮助。知道我们被需要和被赏识会让我们感觉良好,这可以成为为开源项目做出贡献或继续做出贡献的强大动力。与某人接触并认可他们的工作,同时鼓励他们做更多的事情,可以帮助您招募可以在您的项目中承担更多职责的人员(例如,审阅者或维护者)。除了贡献者之外,不要害怕与高级用户接触,如果您在公司工作,您可以利用与其他组织的公司关系来寻找可能有兴趣贡献的人。

定义贡献者、审阅者和维护者的角色和职责可以帮助招募新人担任这些角色。将其视为 贡献者阶梯 贡献者可以晋升为审阅者,而审阅者可以成为维护者。重要的是记录下来,确保人们了解如何晋升并在项目中承担更多责任。让更多人担任领导角色,如审阅者和维护者,可以帮助减少巴士因素,并使您的项目随着时间的推移更具可持续性。

这里的问题以及许多指标是我们不想只考虑做出代码贡献的人。这是一个好的开始,但您还应该考虑如何将人员调动到领导职位,以负责 GitHub 或 GitLab 中可能不会出现的事情,例如文档、社区管理、营销和其他重要角色。这就是为什么查看贡献类型指标如此重要的原因。维护人员经常低估在其中一些任务上花费的时间,而招募更多的人担任其他角色可以进一步分配工作量并提高贡献者的可持续性。

对于贡献者缺席率较低的项目,维护者(尤其是他们是唯一维护者)应该制定某种继任计划。至少应该有其他人拥有更新软件和发布版本(包括发布到相关的包管理器)所需的一切的管理员权限,以及如何执行此操作的文档。理想情况下,项目中有另一位维护者可以平等分担责任,并且已经拥有执行所有项目任务的权限、技能和知识,这也是上述关于建立贡献者基础和招募维护者的讨论如此重要的原因之一。虽然不是最理想的,但对于单一维护者项目,继任计划可以包括向可信赖的同事或朋友提供访问权限和文档。继任计划的关键是现在就将其落实到位,在你认为需要它之前。

第 5 步:监控结果

您如何监控结果将取决于您决定进行哪些改进。继续监控这 3 个指标是一个好的开始。如果您使用了步骤 3 中的其他数据,您还应该监控这些指标。

如果您正在招募新的贡献者、批准者和维护者,可能需要一段时间才能看到这些努力的结果,因此您可能在 3 到 6 个月内看不到显着的改进,因此您需要在更长的时间内对此进行监控的时间。

注意事项和注意事项

  • 重要的是要考虑影响贡献者可持续性的人类动态,并在努力改进时以友善和尊重的态度对待人们。

补充阅读

反馈

我们很乐意收到反馈,以了解更多有关人们如何使用 CHAOSS 从业者指南以及我们如何随着时间的推移对其进行改进的信息。请完成此 简短的调查 提供您的反馈。

合作者

以下人员为本指南做出了贡献:

  • 黎明福斯特
  • 陈翁
  • 杰弗里·奥西尔·米克森
  • 路易斯·卡纳斯·迪亚斯

案例

CHAOSS 从业者指南是 MIT 授权的动态文档,我们欢迎您的反馈和意见。您可以在以下位置建议对本文档进行修改 https://github.com/chaoss/wg-data-science/blob/main/practitioner-guides/contributor-sustainability.md