本文转载自 InfoQ

最近,开源项目 Docz 作者 Pedro 发表短文称繁重的开源维护工作不可持续,自己曾处于“崩溃”状态。

Pedro 表示最初为了开发 Docz,他可以提前 3 小时起床,推迟 3 小时睡觉,全力以赴地创建这个项目的经历让他“感觉很棒”。但随着项目的发展,使用的人越来越多,需求也日渐增多,维护开源变成了一件非常困难的事情。很多人只想索取,而不是提供帮助,这让他感到“崩溃”。

而且 Pedro 除了自己的本职工作外,还得抽时间维护自己的开源项目,最后却损害了自己的身体健康。他不得已在“保持开源项目活跃度”和“保持健康”之间选择了后者。这给项目带来了一种非常糟糕的状态,导致很长一段时间里没有人来维护它。

对此,众多开源维护者纷纷表示有同感,包括 Redis 之父 antirez 也发表了自己的看法。

Redis 之父 Salvatore Sanfilippo(又名 antirez),是资深的开源维护者,开发了很多不同规模的 OSS 项目,如 Redis、Hping、Jim Tcl、Visitors web analyzer 等等。antirez 以他丰富的维护经验说道,开源维护并不是要满足所有人的要求,也不是什么都不做,而是需要挑选你想要解决的问题,“只做自己想做的 (just do what you want)”,并且“花固定时间,甚至每天几分钟都行,在这段时间只做你喜欢做的事情”。

antirez 表示自己正是通过这样的方式写出了 Redis ,这个由他一个人写出的产品在市场上击败了许多数百名开发者一起打造的同类项目。同时,他还提出了几个要点:

  • 不要以为别人在没有付出的条件下向你索取是在犯错或是在滥用“权力”。事实上,人们可以提出任何要求,但你也可以忽略这些要求。

  • 不要因为软件是免费的而陷入对软件质量不负责任的陷阱:只做自己想做的事,认真完成工作,并形成良好的文档。不要因为因为“它是免费的”就发布一些糟糕的东西,另外就是按照你想要的方式做事,但要带着爱。

  • 当被人攻击时,平静地回答自己的想法,不要陷入争论。

  • 在参与开源过程中结交好朋友。因为当遇到困难的时候,他们会给你极大的帮助。请记住:聪明人往往都是友好的。

1开源项目维护者的窘境:工作忙,薪水低

2011 年,Mosaic 的创始人‍‍马克·安德森说过这么一句话:软件正在吞食整个世界;2013 年,‍‍麦克·斯考克对这句话进行了扩展:开源软件正在吞食整个世界。但这些开源软件背后的维护者却都身处水深火热之中。

活儿多,工作强度大

此前,坐拥百万用户的开源项目 Babel 引起开发者关注。Babel 宣布,尽管有 Airbnb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企业的赞助,但由于花钱速度继续高于获取捐赠的速度,项目储备资金目前只够维持到 2021 年底。

去年,Redis 之父宣布退出开源项目维护,他说:“最近几年来,我每天的工作内容发生了很大变化。我把大部分精力花在检查其他开发者提交的 Redis 代码、改进代码质量以及提升软件正确性、速度与安全性方面。但我真的不喜欢这类维护工作。”

更重要的是,这种全年无休的上班生活让他无法放松,从而无法做一些创造性的工作。

开源项目维护工作是一项艰巨的任务。如果说开发者的职责在于修复 bug、新建功能,而审查者的职责在于把控代码质量,那么维护者就是要让开源项目长久稳定地持续下去。

可以想见,正常的开源项目中必然是开发者多于审查者、审查者又多于维护者。维护者相当于一支管弦乐团中的指挥角色。如果开发者没能修复 bug,维护者需要及时救场;如果代码未经审查,维护者也得尽快介入。

另外,对于像 Linux 这样的大型项目,每周维护者大约需要面对数百项代码补丁,工作强度可想而知。

大多数开源项目维护者“穷的可伶”

近日,零日漏洞代理公司 Zerodium 宣布,正在寻找影响 Windows 和 Linux 上 Pidgin 的零日漏洞。为获得其零日漏洞,该公司出价 10 万美元。

对此,网名叫 Gary Kramlich 的网友发推文回应,“这真实表明了开源软件悲惨的资金状况。去年,我全职为维护 Pidgin 项目工作,薪水只有 2.5 万美元,但是如果你能在我的工作和其他人的无偿工作中挖到安全漏洞,你赚取的收入将是我的 4 倍。”

据悉,Pidgin 是一款免费和开源的多平台即时通讯客户端。早在 2007 年,Pidgin 已经有 300 万名用户。

根据 Tidelift 发布的调查报告显示,近 50% 开源项目维护者拿不到任何报酬。

大多数开源项目维护者“穷的可伶”。虽然 Linus Torvalds 和 Kroah-Hartman 等 Linux 顶尖维护者的收入确实可观,但是 Tidelift 的一项最新调查发现,46% 的开源项目维护者根本拿不到任何报酬。即使在拥有报酬的维护者中,也只有 26% 的比例年均工作收入超过 1000 美元。

根据 Linux 基金会开源安全基金会(OSSF)与哈佛创新科学实验室(LISH)最近发布的 2020 年 FOSS 贡献者调查报告显示,开发者参与开源项目的首要原因,在于添加自己需要的功能或者是改进正在使用的功能;第二大原因就是享受学习感、满足感、创造性以及令人愉悦的工作内容。最后一条,才是获取报酬。

但是,不管你是开发者,还是审查者或维护者,这并不代表获取报酬不重要。ZDNet 对此评论,“志愿服务的目标在于自我实现,而非无家可归。”

根据 Tidelift 的调查表明,大多数人只是还没开始留意贡献工作的无偿属性。在年收益不足 1000 美元的受访者中,只有 18% 表示自己对报酬较为看重;但每年能拿到 10000 美元以上的维护者中,高达 61% 的受访者开始正视薪酬的重要意义。

Tidelift 公司 CEO 兼联合创始人 Donald Fischer 表示,“整个世界都依赖于开源组件为应用程序提供动力,但我们的调查数据显示,负责建立并维持开源体系良好运行的维护者们并没能拿到适当的收益。必须开辟出一条更安全、更健康的开源软件供应链发展道路,也必须保证能有更多的志愿维护者能因自己做出的卓越贡献拿到充足的报酬。”

在调查当中,近半数受访者(49%)将“我的工作完全没有或者没有得到相应的经济报偿”作为不想担任维护者的首要原因,其次则是“会增加我的个人压力”(45%)以及“感觉不受重视、或者会吃力不讨好”(40%)。

事实上,超过半数(59%)的受访维护者已经或者正在考虑退出项目维护工作。

而维护者同时管理的项目越多,决定中途放弃的可能性就越大——在同时管理 10 个甚至更多项目的维护者中,有超过三分之二(68%)已经退出或者正考虑退出。

2写在最后

当今,开源已经成为一股潮流,开源文化流行,开源项目层出不穷。但是,我们也看到无数的开源项目逐渐衰落,被人遗弃,被人淡忘。想让一个开源项目具有长久的生命力,开源项目维护无疑是亟待解决的首要问题。

维护开源项目太难,Redis之父:只做自己想做的相关推荐

  1. 超越YOLOv5,1.3M超轻量,高效易用,这个目标检测开源项目太香了!

    这个目标检测神器简直香炸了!它不仅连续登录Github全球趋势榜,拥有的全球尖端算法论文也接连登录全球技术趋势榜PaperWithCode. 这个神器就是刚刚全面升级的PaddleDetection2 ...

  2. 卧槽!火爆github!超越YOLOv5,1.3M超轻量,高效易用,这个目标检测开源项目太香了!...

    这个目标检测神器简直香炸了!它不仅连续登录Github全球趋势榜,拥有的全球尖端算法论文也接连登录全球技术趋势榜PaperWithCode. 这个神器就是刚刚全面升级的PaddleDetection2 ...

  3. 火灾检测、人流量统计… 这个开源项目太香了!

    随着以深度学习为代表的人工智能技术的成熟,国内众多行业都在基于人工智能技术推进行业变革与创新,积极探寻有效.有价值的应用场景进行商业化落地,其中尤以安防行业表现最为活跃.如灾害监控.人流量监控.施工安 ...

  4. vs2008编译QT开源项目--太阳神三国杀源码分析(一) 项目编译及整体分析

    请参看 http://tieba.baidu.com/f?kz=1508964881 按照上面的网址教程,下载三国杀源码,swig工具,并下载最新的QT4.8.2 for vs2008.我本机已经安装 ...

  5. 做一个完整的Java Web项目太难了,因为这些你不会!

    作者:元素侠Jason 链接:https://blog.csdn.net/JasonLiuLJX 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收 ...

  6. vs2008编译QT开源项目--太阳神三国杀源码分析(四) 动画

    太阳神三国杀中,每当玩家出杀或吃桃子时,就会有一个动画效果,使界面非常生动绚丽.现在我们就分析一下QT中动画的原理,及实现方式,这里我们只分析吃桃子时的动画效果实现.由于三国杀有多个在线玩家同时游戏, ...

  7. vs2008编译QT开源项目--太阳神三国杀源码分析(三) 皮肤

    太阳神三国杀的界面很绚丽,界面上按钮的图标,鼠标移入移出时图标的变化,日志和聊天Widget的边框和半透明等效果,既可以通过代码来控制,也可以使用皮肤文件qss进行控制.下面我们分析一下三国杀的qss ...

  8. Android Studio的项目太难配置?来看看,手把jio教你~

    驱动项目----Android Studio的环境部署 前提准备: Android Studio 如何下载安装配置? 注意最好确定开发使用的版本再下载,且需要配置jdk和sdk. 参考网上: http ...

  9. 开源项目-太阳神三国杀-QT4编译教程

    待更中 转载于:https://www.cnblogs.com/sinpener/p/10734692.html

最新文章

  1. web service 基础学习
  2. linux 不关机添加硬盘,完美解决Ubuntu Linux关机异响[SATA硬盘]
  3. HNCU 1741: 算法3-2:行编辑程序
  4. Istio 中的授权策略详解
  5. 应急指南|新一轮勒索病毒来袭,小白用户看这里
  6. 我最爱用的一款 Redis 可视化管理工具!好用到爆!!!
  7. asp之ajax技术:responstext中文乱码
  8. 用python爬小说_5分钟带你用Python爬完《剑来》小说(附完整代码)!
  9. tomcat配置https_「Java」 - Tomcat amp; 配置HTTPS
  10. 学习scala03 控制结构
  11. 了解令人困惑的物联网平台世界
  12. nodejs中全栈开发框架meteor的文档
  13. csv数据去重 python_数据去重_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...
  14. DirectX 入门知识
  15. 软件项目管理 需求管理
  16. P1157 组合的输出(#define mian main)
  17. 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)
  18. 亚马逊echo中国使用_如何设置和配置您的Amazon Echo
  19. 【电脑使用】如何将电脑磁盘变为移动磁盘?
  20. 03_使用scrapy框架爬取豆瓣电影TOP250

热门文章

  1. 服务器端的负载均衡和客户端的负载均衡
  2. php打开wave文件,什么是WAV和WAVE文件(以及如何打开它们)? | MOS86
  3. Junit test EJB3
  4. 微信小程序 onReachBottom 上拉滚动到底部加载更多问题
  5. 二维码跳转不同的 app store
  6. python_强化学习算法DQN_玩五子棋游戏
  7. 一文搞懂后台高性能服务器设计的常见套路, BAT 高频面试系列
  8. 微信h5棋牌类APP如何在微信中做好防封防屏蔽技术
  9. SSD安装ubuntu系统的优化
  10. 运算符和表达式【二】