前不久,开源软件管理解决方案供应商 Tidelift 对开源项目维护者展开调查,结果显示开源维护者大多做着一项钱少事多压力大的工作:几乎一半的代码维护者没有工资;工作量繁重;需要承担很大压力,甚至吃力不讨好;超过一半 (59%) 接受调查的维护者已经退出或考虑退出维护项目。
此前,Linux 内核维护者 Greg Kroah-Hartman 称代码维护人员「需要处理大量的实际工作」;拥有数百万用户的开源项目 Babel 陷入财务困境,项目负责人 13 万美元年薪遭受质疑…… 这些事件使得人们对开源项目存活之难、开源维护人员工作之辛苦略有了解。
最近,这一点又得到了验证。开源项目 Docz 的作者 pedronauck 发文表示维护开源太难了,这项工作使其身心受到损害。
他表示,在 Docz 项目开发初期,他在本职工作之外需要早起 3 个小时,晚睡 3 个小时。这个项目为他提供了很多机会。但随着项目的发展,用户需求越来越多,维护开源项目变得非常艰难。人们希望从这个项目中获得很多东西,但并不愿意给予帮助,这让他很崩溃。
本职工作和维护开源项目让他分身乏术,身体健康也受到了影响。最终他不得不在「维护开源项目」和「保持身心健康」之间选择了后者。然而,这给项目带来了一定损害,很多人以为 Docz 项目无人维护。
开发者们:深有同感,维护开源项目可真是太难了!
在这篇文章下面,许多开发者对 pedronauck 的工作表示感谢,并给出了自己的建议。
首先很感谢你的辛勤工作。我认为这是大多数开源项目都会遇到的问题,除了寻求社区帮助外,项目作者还需要保持冷静的心态。你创建这个项目的原因只是因为你需要它并希望它帮助更多的人。如果你没有足够的时间来维护它,你就首先满足自己的需求。这不全是你的错,你不必自责。
你没有辜负任何人。正如你所说,维护 OSS 非常困难,而且往往吃力不讨好。
然而有人给出「为什么不多找几个人一起维护」的建议时,另一位开发者直言:「找志愿者并非易事。」看来,开源项目维护者都有一大堆糟心事……
就连大佬也不例外。
Redis 之父支招:做你想做的
对于如何处理 OSS 软件开发的压力,Redis 之父 Salvatore Sanfilippo(又名 antirez)介绍了自己的经验:
作为开发过许多不同规模的 OSS 项目(Redis、Hping、Jim Tcl、Visitors web analyzer 等)的人,我认为解决方案比看起来更简单:做你想做的。当你身处一个成功的开源项目中时,你可能会认为解决方案是二元的:不做任何事情,或者做人们要求你做的一切。然而,事实是你可以继续做自己想做的事,挑选自己想解决的问题、添加自己想要的功能等。给自己每天在开源项目上花费的时间定一个固定范围,在这段时间内只做你想做的事情,其他事情一律不用管。
记住永远「做自己想做的事情」,但同时要注意以下几点:
- 不要因为别人没有付钱就向你索取,就认为他们犯了错或滥用权利。不,他们可以提出要求,但你也可以忽略这些要求。
- 不要因为开源软件免费,就对软件质量不负责任:只做自己想做的,完成工作,并撰写完备的文档。不要因为软件是免费的,就发布糟糕的东西。按照你想要的方式做事,但要带着爱。
- 受到攻击时,平静地说出自己的想法,不要陷入争论。
- 在开源维护过程中结交朋友。在你遇到困难时,他们会给予很多帮助。请记住:最聪明的人在 99% 的情况下都有一颗大心脏,并且非常友好。
结语
在开源变得流行的当下,越来越多的人注意到开源项目的存活难题、开源维护人员的困境。Tidelift 首席执行官兼联合创始人 Donald Fischer 此前表示:「通往更安全、更健康的开源软件供应链的道路,应始于确保更多志愿维护者获得足够的报酬。」
当然,薪酬只是开源维护的难点之一。如何维护开源项目、保持开源维护人员的身心健康和成长、发展开源维护团队…… 这些都是需要关注的问题。希望在更多人关注到开源维护人员困境后,这些问题能够得到解决。
参考链接:
https://github.com/pedronauck...
https://news.ycombinator.com/...