早在 2019 年 2 月,我们就宣布启动了 ESLint 集体 来资助 ESLint 的持续开发。寻求资金的主要原因之一是,维护一个每周下载超过 1300 万次的项目所需的时间越来越多。我们在 2019 年最后一个季度才开始支付贡献者的报酬,因为我们想看看我们的每月赞助会稳定在什么水平,这样我们就可以存一些钱,保证一定数量的资金可用于支付贡献者的报酬。从那时起,我们尝试了几种不同的方法,取得了不同程度的成功和失败,我们想分享这些经验。
技术指导委员会
技术指导委员会 (TSC) 是一组五个人,负责管理 ESLint 项目的总体方向。大多数 ESLint 版本发布的工作都是由 TSC 成员完成的,包括实际的发布过程本身。此外,TSC 成员还审查问题和拉取请求,以及在外部活动中代表 ESLint。所有这些都是我们开始想办法支付 TSC 成员报酬的原因,其中许多人在 ESLint 获得资助之前就参与了该项目多年。
以下是我们的解决方案
- 每位 TSC 成员对 ESLint 的任何贡献都将获得 50 美元/小时的报酬。贡献包括在 GitHub 上实际工作的时间、编写代码或文档、参加会议(包括 ESLint 会议和他们代表 ESLint 参加的外部会议)以及为社区提供支持(通过电子邮件、聊天等)。
- 每位成员的付款上限为每月 1000 美元。设置此上限的主要目的是确保我们能够节省一部分每月捐款,其次是为了劝阻 TSC 成员除了全职工作外,不要在项目上花费太多时间。我们不想资助倦怠。
- 后来,我们在 TSC 成员之间分配了 Tidelift 基金。我们称之为“TSC 津贴”,每月支付给每位 TSC 成员,无论他们贡献的小时数是多少。TSC 津贴计入每位成员每月 1000 美元的限额,成员可以为他们贡献的小时数与 Tidelift 金额之间的差额开具发票。
到目前为止,这种安排运作得非常出色。自从开始支付 TSC 报酬以来,我们看到 TSC 成员的参与度逐渐提高。为有价值的工作支付报酬是有道理的:当工作得到明确的重视时,人们更有意愿去做。总的来说,我们会将我们项目的一部分归为成功。
专职维护人员
早在 2019 年 11 月,我们就 宣布 聘用长期维护者 Kai Cataldo 担任专职维护者。Kai 最近离开了他的全职工作,希望花更多时间在 ESLint 上。我们没有足够的预算为他完成这项工作支付适当的全职工资,因此我们同意每周 20 小时,每月 5000 美元,Kai 将在每周剩余的 20 小时从事其他项目或自由职业。
我们尝试了几个月,之后发现这种安排对 Kai 来说不可持续。虽然来自 ESLint 的付款是稳定的,但他不得不花费每周其他 20 小时的很多时间来寻找赚钱的方法。因此,我们将安排更新为每周 10 小时,每月 2500 美元,以便给 Kai 更多时间寻找其他工作,同时仍然提供基本数量的 ESLint 专用时间。
不幸的是,这种安排也没有奏效。再次,在他履行 ESLint 职责和试图寻找其他兼职工作之间分配时间,被证明比我们任何人意识到的都要困难,而且本月,Kai 决定辞去专职维护者的职务。他将继续留在 TSC 并仍然有资格获得 TSC 成员的付款。
这对团队来说是一件很难处理的事情,我们认为这对于开源的可持续性来说有一个重要的教训:即使我们收到捐款,ESLint 的收入也不足以支付维护人员的全职工资。当这种情况发生时,维护人员面临着一个艰难的决定:我们可以尝试让兼职开发工作,但很难找到其他兼职工作来弥补我们每月所需的收入,以使其值得。在某些情况下,做兼职工作会让寻找其他工作变得更加困难,因为你受到时间限制,而其他自由职业者则没有这种限制。
鉴于 Kai 的经历,我们目前正在重新思考未来如何(以及是否)希望继续寻找专职维护人员。
其他实验
除了 TSC 付款和聘用专职维护人员之外,我们还尝试了几件其他事情,将付款分配给更多贡献者。我们的最终目标是能够支付 ESLint 大多数(如果不是全部)贡献者的报酬,因为所有贡献都有帮助。我们还没有想出如何运作的具体细节,但我们已经尝试了一些其他实验
- 对于 v7.0.0,我们决定向几位对版本发布做出巨大贡献的贡献者支付 250 美元的一次性付款。贡献者既感到惊讶又高兴,但我们也了解到,在一些国家,关于我们美国人所说的自雇收入的规定非常严格。并非所有人都能因此参与进来。
- 长期贡献者 Kevin Partington 开始花费大量时间帮助我们 Discord 中的社区成员,为了感谢他为此做出的贡献,我们开始为他提供 25 美元/小时的报酬,用于他提供的任何帮助。如果你曾经在我们的 Discord 上寻求帮助,那么很可能帮助你的人就是 Kevin。
总结
总的来说,我们始终在寻找对 ESLint 有意义和影响力的贡献,以便我们能够奖励为此做出贡献的人们。我们将继续尝试以不同的方式支付贡献者的报酬,因为我们正在寻找使 ESLint 在可预见的未来保持可持续发展的方法。
我们尝试的并非所有事情都取得了成功,我们也没有期望所有事情都成功,但我们坚信继续解决这个问题是值得的。维护像 ESLint 这样的项目需要大量的工作和来自许多人的大量贡献。要使这种情况持续下去,唯一的方法就是支付人们的时间报酬。