今年 4 月,Linux 内核维护者 Greg Kroah-Hartman 因明尼苏达大学研究者提交含 bug 代码,怒而拉黑整所大学,引起热议。除了这些代码可能引发安全问题外,Kroah-Hartman 还指出代码维护人员「需要处理大量的实际工作」,故意引入的恶意代码会浪费维护者的时间和精力。
而前不久拥有数百万用户的开源项目 Babel 陷入财务困境一事,让人们更加关注开源项目的存活问题。
做开源项目难,做开源项目维护人员更难。最近,开源软件管理解决方案供应商 Tidelift 对此进行了一项调查。
钱少:几乎一半的代码维护者没有工资
维护开源代码是一项重要而又压力巨大的工作。然而,Tidelift 的调查显示,几乎一半的代码维护者根本没有工资。
开源维护人员的工作很繁重。开发人员修复 bug 并创建特性,评审人员(reviewer)检查代码,最后代码落在了维护人员身上。他们负责开源项目中大量持续的工作,并且一般情况下,开发人员的数量比评审人员多,评审人员比维护人员多。如果说开源项目是一支乐队,那么维护者就是指挥。当有 bug 被漏掉时,他们负责修复;有代码没有被审查时,他们会进行审查。而对于像 Linux 这样的大型项目,通常会有数百个代码补丁,这就需要一周的维护时间。
开源维护人员的工作如此繁重,一定会收到足够的报酬吧?如果你这样想,那就大错特错了。Tidelift 的一项新调查发现,46% 的开源项目维护者根本没有报酬,而在有报酬的人中,只有 26% 的人年工作收入超过 1000 美元。Tidelift 在不到 400 名维护者的调查中发现,将近一半维护者是无偿志愿者。
那他们为什么还会选择做维护人员呢?调查显示,主要有以下三个因素:
- 对世界产生积极影响 (71%);
- 满足对具备创造性、挑战性和 / 或愉快工作的需求 (63%);
- 能够做对自己重要的项目 (59%)。
对于开发者而言,这些原因并不奇怪。
近期,Linux 基金会牵头成立的开源安全基金会 (OSSF) 和哈佛大学创新学实验室 (LISH) 关于 2020 年自由和开源软件贡献者调查的报告显示,开发人员参与项目的首要原因是添加所需的功能或修复已使用的程序,其次是学习和满足对创造性或愉快工作的需求。最后一个考量因素才是报酬。
但是,获取报酬仍然很重要,无论你是开发人员、评审人员还是维护人员。毕竟光有情怀难以生存。
虽然报酬在维护者考量因素中位列倒数第一 (21%),但对数据进行深入研究后我们可以发现,其原因在于他们没有报酬,也就没有对此考虑太多。调查发现,尽管年薪低于 1000 美元的人中只有 18% 表示获取报酬是他们做维护者的原因,但拿更多报酬的人对此持不同看法。如年薪超过 1 万美元的人中,61% 的人认为薪酬同样重要。
Tidelift 首席执行官兼联合创始人 Donald Fischer 表示:「整个世界都依赖开源组件来驱动应用程序,然而我们的数据显示,那些创建并保持开源运行良好的开源维护者并没有因其提供的巨大价值而得到适当的补偿。通往更安全、更健康的开源软件供应链的道路,应始于确保更多志愿维护者获得足够的报酬。」
事多:费力不讨好
即使维护者能在开源维护工作中获得许多乐趣,但事情总是变化着的,爱与恨只有一线之隔。
除了财务方面缺乏回报以外,维护开源项目通常意味着需要承担很大压力,甚至吃力不讨好。例如,你曾经多少次告诉一名程序员无法接受该补丁,因为他 / 她没有 RTFM?你是否愿意听到开发者坚称自己的代码正是项目所需要的(而实际上其代码存在缺陷)?
近一半的受访者 (49%) 认为「没有因自己的工作获得足够的经济补偿」是不喜欢做维护者的首要原因,其次是「增加了个人压力」(45%),以及「觉得自己没有得到充分赏识或感谢」(40%)。
事实上,超过一半 (59%) 接受调查的维护者已经退出或考虑退出维护项目。维护人员处理的项目越多,他们就越有可能考虑退出——在管理 10 个或更多项目的维护者中,超过三分之二 (68%) 的人已经退出或考虑退出。
一些开发人员,比如流行 NoSQL 数据库 Redis 的创建者 Salvatore Sanfilippo,选择不再做维护人员。他们宁愿做开发人员,也不愿做管理者。60% 的受访者认为,最有可能放弃维护项目的原因是「我的生活和工作中出现了其他优先级更高的事情」,而这件事通常是从主业中赚钱。
让开源维护人员的生活变得更容易,需要做很多工作。而为其实际工作支付报酬会是一个不错的起点。
参考链接:https://www.zdnet.com/article...
扩展阅读:
后现代文本编辑器 Helix 的诞生