开源项目贡献者_在现代开源中发展贡献者基础

开源项目贡献者

去年,Node.js的重点是增加从事该项目的贡献者的数量。 Node.js的用户数年以来一直保持100%的同比增长,但是贡献者的数量实际上却在下降。

经过一年多的社区建设和迭代,我们现在比以往更健康。 该项目已经进行了重组,分为多个部分,共有400名成员。 在现在构成整个项目的大多数回购中,我们看到在给定月份中〜50%的贡献者是该存储库的新手。 这意味着我们将用户转换为贡献者的速度是用户社区增长速度的六倍。 贡献者对于开源项目的健康和长寿至关重要。

我们已经学到很多东西,可以分享很多东西,其中不仅包括帮助扩展人类基础设施的工具,还包括文化和核心价值:透明度,参与性和有效性。 我们相信,这些想法和实践将最终决定未来几年开源的未来。

首先,让我们从词汇表以及如何定义组成社区的人员开始。

您的社区是谁?

  • 使用该软件的人员:用户。
  • 为项目贡献力量的人:贡献者。
  • 决策者:领导者。

人们如何成为用户,贡献者和领导者?

  • 人们尝试使用您的软件并在寻找资源的同时去帮助他们了解更多。
  • 用户寻求做出改变,通过贡献过程进行工作,然后选择再次贡献。
  • 贡献者在为该项目做出贡献方面投入了足够的资金,以至于他们被视为决策者并享有这些决策的共同所有权。

您如何将人们转变为用户,将用户转变为贡献者,以及将贡献者转变为领导者?

  • 通过教育创造更多的用户。
  • 鼓励用户通过自由贡献政策做出贡献
  • 通过参与式治理来培养更多的领导者。

为了使这些程序能够正常工作并维持下去,它们需要达到以下平衡:

  • 参与性
  • 透明度
  • 效用

教育

教育不能被视为技术问题。 您不能创建一个解决代码问题的方法来解决这个问题。 我们经常认为其他人会通过走完全相同的道路来学习如何使用特定技术。 不幸的是,这是教育更多用户的最差方法。 人们来自不同的背景,并且在生活和职业中处于不同的阶段。 为了让他们选择学习如何使用您的软件,并继续发展和提高其使用率,他们需要能够适应并引起共鸣的资源。 与其尝试通过我们过去的学习途径来引导他们,不如研究他们如何学习他们熟悉的技术并为他们提供可比的资源。 这意味着您需要大量的教育资源,从API文档,博客文章,讲习班到传统的培训计划。

这些资源不是相互竞争的,它们是互补的,只要它们以开放和面向社区的方式完成即可。 这是我们仍在努力的事情,因为它实际上永无止境,但是您可以看到NodeSchool对Node.js社区的影响。 使用NodeSchool,您可以下载一个研讨会并在家中完成,还有一个存储库,您可以在其中记录问题以寻求帮助。 同时,NodeSchool社区在全球拥有数百个本地分会,这些分会在当地举办小型的实践研讨会。 如果没有一些亲自帮助,许多人将无法克服最初的学习曲线。 每个本地分会还会为每个研讨会的参与者提供一个回购,仅用于其本地分会,以便他们将来可以继续提出问题。 NodeSchool最终以这种方式吸引了两种截然不同的入门级用户,并且一直是发展我们社区的巨大资源。

转换次数

成为贡献者的用户数量和成为领导者的贡献者数量取决于将他们从一个级别转换到另一个级别。 尽管大多数项目将缺乏贡献者或领导者描述为“管道问题”,但这些几乎总是“转换问题”。 在开源中,您的用户通常是开发人员。 他们要么已经具备以某种方式做出贡献所需要的技术能力,要么可以通过接受更多的教育轻松地做到这一点。 转换它们只是降低准入门槛的问题。 学习有助于做出贡献的工具和过程,并设计鼓励和留住贡献者的审查和发布过程。

GitHub为降低这些障碍做了很多工作。 现在只有一个工具链,从修改软件到将软件发送到该项目,再到几乎所有现代开放源代码项目都可以接受。 多亏了GitHub,这些技能也可以从一个项目移植到下一个项目。 但是,项目之间仍然存在许多主要差异,例如代码的合并方式,所需的元数据(如果有的话),提交权的获取以及贡献后整个软件的发布过程。 当涉及到将用户转换为贡献者时,这些策略解决了项目之间最大的差异。

在Node.js项目中,新贡献者每月约占所有贡献者的50%。 考虑到Node.js用户每月增长约8%,这是惊人的。 我们的贡献率不仅是Node.js总体增长的产物,而且实际上是对我们所谓的“ 自由贡献政策”的胜利。

自由贡献政策

几年前, Rod Vagg (现为Node.js TSC主席)开始尝试新的升级策略。 他称该政策为OPEN Open Source Projects ,其实质是:

  • 即使是来自提交者的任何贡献,也必须是请求请求,并且必须有足够的时间供其他提交者进行审查。
  • 每一次成功的贡献都超过几行,将导致向提交者授予提交权利。

这与许多开放源代码项目中的传统做法大相径庭,后者仅维护少数开发人员的提交权。 这些现在已经过时的策略源自具有版本控制系统的项目,其容错能力远不及git。 在git中,很难犯这么大的错误,以至于无法由其他贡献者解决。 这意味着在GitHub时代可以更加自由地授予提交权限。 接收承诺权也可作为承​​诺手段,特别是对于新开放源代码的贡献者而言,因为它为参与者提供了他们拥有项目共享所有权的切实证据。

添加更多提交者意味着添加更多代码审阅者,从而简化了与更多贡献者打交道的过程。 当然,每个项目都是不同的。 真正适用于升级的过程并非对每个项目都适用,实际上对Node.js Core也不适用,但是激励它的价值观导致在Node.js项目中创建了多个自由派遣政策。在各个工作组和存储库中。 在设计这些流程时,我们发现所有成功的政策都是三个价值观之间的平衡:参与,透明度和效力。 这些值不是绝对的,您通常不能100%参与,而不能同时100%有效,但是通过逐案权衡取舍,您最终会获得惊人的转化率,这将继续促进您的项目发展并保持健康。

举例说明,对Node.js网站和对Node.js Core的贡献策略大不相同。 在Node.js中,Core会在master上提交土地,而master是将来尚未发行的Node.js版本。 然后,在逐个提交的基础上,将贡献精选到当前,LTS和维护版本的分支中。 没有干净的提交和清除提交消息元数据,这将是不可能的。 结果,提交者无法使用GitHub合并按钮,并且常常不得不手动进行其他工作。 这当然是参与的障碍,但是对于使该项目有效,这是必不可少的。 但是这些技术要求在网站上不存在,每次合并都会导致新的master部署。 结果,该网站的贡献策略允许提交者使用合并按钮,并且不需要压榨提交或向提交消息中添加元数据,从而降低了输入新贡献的障碍。 开源流程常常会成为新开发人员进入的障碍,并且我们已经采取了一些基本方法来确保这些政策鼓励贡献而不是起到威慑作用。

  • 只要有可能,就为最小的临时贡献者而不是最活跃的贡献者设计一个流程。
  • 每个贡献的默认路径应该是降落。 讨论,审阅和合并过程应设计为更正,以使贡献进入土地的路径。 一旦没有更多的更正,(异议)更改将无需进一步处理即可着陆。
  • 使最广泛的贡献者集可以合并达成简单共识的补丁。 领导力应采用能够促进和提升供款的治理流程,并成为每项供款所需的邮票。
  • 始终寻求共识,但是如果您陷入僵局,请升级为领导才能继续前进。

进入的隐藏文化障碍

由于各种Node.js存储库在不同的策略下运行,您可能会认为差异将是在存储库中进行贡献和参与的障碍,但事实相反。 事实证明,隐藏的文化进入壁垒通常比任何技术壁垒都大得多。 结果,许多贡献者开始于更接近甚至低于其现有技能的工作组,并且加班后,我们看到许多贡献者在其他工作组甚至在Node.js Core中承担着更深层次的技术任务。

对某些人来说,为开源做贡献要容易得多。 人们非常担心会因做不正确或不适合自己而大喊大叫。这些情感上的需求是项目要解决的最难的事情,但是却给了贡献者一个技术水平非常低的地方(文档, Web内容降价等),您可以大大减少这些顾虑,并且至少可以消除与他们自觉的技术能力有关的顾虑。 一旦人们适应了一个工作组,他们对其他工作组甚至Core的担心就会大大降低,因此,我们看到从本地化工作组和网站迁移到Core。

我们在自由贡献政策中看到的成功打破了我们在许多开源项目中看到的错误叙述,即没有足够的“合格”或“熟练”开发人员来使项目采用更具参与性的结构。 并不是说潜在的贡献者不够,而是潜在的贡献者不想花时间在缺乏适当的参与动机的项目上,并留出了一些成熟的提交者可能不会担心的巨大进入障碍。

参与式治理

贡献者共同承担该项目的责任,在这组人员中,您将找到一群领导者,贡献者信任他们的决策。 参与式治理的目标是确保对决策做出贡献的人员贡献者实际上拥有对该决策的所有权,并且确保责任尽可能分散而不是集中。 在Node.js项目中,我们有由TC(技术委员会)管理的顶级项目(TLP)。 Node.js Core是由CTC(核心技术委员会)管理的顶级项目。

正如我们之前讨论的那样,当无法达成共识时,该小组是供稿人的升级机制,这意味着大多数决策实际上是供稿人共享的,并且从未到达反恐委员会。 仅在极少数无法达成共识的情况下,才会发送给反恐委员会。 反恐委员会还将许多职责委托给称为工作组的小组。 这些工作组具有自己的治理结构和贡献者集合。 他们不向反恐委员会汇报,反恐委员会成员无权就其下放给这些工作组的任何事情享有决策权。 这种更加无政府主义的方法分配了权限,而不是将权限集中在传统的层次结构中。 像CTC一样,顶级项目TC也有一些基本的治理规则,可以保护项目免受不适当的影响。

  • 在无法达成共识的情况下,共识寻求用于决策,以多数票作为决胜局。
  • 同一公司的附属公司最多只能有25%的杰出贡献者。
  • TC必须至少有来自四个时区的代表。

寻求共识一直是该项目非常有效的工具。 它鼓励人们共同努力并达成协议,并且不会像纯粹的共识那样奖励坚定的人或不作为。 纯粹的共识就像让所有人对任何改变都拥有否决权一样,当参与者希望发生任何事情时,他们几乎没有动机说服他们的同事。 当无法达成共识时,投票将退回,这意味着任何反对变革的人都必须说服同龄人,就像支持改变的人一样。

结果令人难以置信,因为我们从未因缺乏共识而真正被迫投票。 这并不是说我们没有分歧,但是我们始终能够找到创造性的折衷方案。 最后但并非最不重要的一点是,所有决定都在GitHub上做出。 这种透明性对于将贡献者转变为领导者(未来的TC成员)至关重要,因为他们可以看到正在发生的过程。 反恐委员会每周召开一次电话会议,因此每个人都被迫就任何有争议的问题做出决定,以便捐助者能够向前迈进。 只有在GitHub上进行了长时间的贡献者讨论之后,这些内容才能升级为CTC。 会议电话也会与详细的会议记录一起记录和发布,大多数(即使不是全部)工作组会议也是如此。

值>流程

大多数已建立的项目都希望为新项目指定特定的首选过程。 当我们开始考虑将更多项目纳入Node.js基金会时,我们发现许多其他基金会规定了所有进入的项目的流程。 我们无法做到这一点。 我们是一个年轻的项目,我们只是在制定今年对我们有用的政策,因此没有人真正感到满意。

取而代之的是,我们开始更加认真地思考这些政策为何有效,以及我们假定的某些价值观导致我们制定这些政策。 其结果是一个孵化过程,该过程旨在指导和确保采用参与,透明和有效性的价值的过程,而不是在其项目中钻研特定的外国过程。

现在,我们正在与其他开源世界分享这些价值观和最佳实践,希望这对您和我们一样有效,并且我们可以在开源世界中进行更多的思考和讨论关于我们如何使人们更深入地融入社区。

翻译自: https://opensource.com/life/16/5/growing-contributor-base-modern-open-source

开源项目贡献者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值