0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开源维护者的挣扎和无奈

Linux爱好者 来源:YXQ 2019-08-11 10:18 次阅读

几个月前,我收到一封电子邮件,发信人是一位系统软件领域开源项目的维护者,该项目有一个相当大且活跃的社区。他在信中说,维护多年之后发现难以持续,因为这样的工作在心理上非常累人。

他一直在向我寻求建议,我不确定自己是否能够提供建议,但我回他我会写一篇博客来说说我的看法。

几周过去了,有好几次我开始提笔,但都停了下来,因为我没有足够的时间来处理这些想法。现在我想我能够分析我自己,在我自己的弱点、挣扎和对自由的渴望中找到答案,当人们在做一些事情的时候,不可避免地会侵入他们的思想,这些事情也有消极的一面,持续很长一段时间。

维护开源项目也是一件非常快乐和有趣的事情,我最近 10 年的职业生涯,即使不是绝对最好的,但肯定是令人难忘的,毕竟我在创业期间获得了更多的乐趣。然而,本文我将关注维护开源项目的消极一面。

洪水效应(Flood Effect)

我不相信快速行动,快速思考,按时赢得比赛等等。我不喜欢我们生活的世界总是缺少焦点,因为社交网络、聊天、电子邮件和满满的活动安排。

所以,当我在项目早期收到一封关于 Redis 的邮件时,当我还有很多时间的时候,我就能够专注于发信人想要告诉我的东西。然后我想起了我们之前讨论过的 Redis 的相关部分,经过仔细的思考,我终于用真实的想法回复了。

我相信大多数人都应该这样工作,不管他们的工作是什么。

新的社交工具让个体之间的沟通更为便捷,当某个软件项目到达 Redis 级别的热度之时,你能收到的消息、issue、Pull Request 和建议,其数量将呈现指数级增长。

这造成了信息堵塞。大多数人试图用错误的方式来解决这个问题,比如:

① 有人发 issue,我追问后,2 周内他都没有回复,那直接关闭;

② 关闭所有不明确的 issue;

③ 直接把收件箱都设为已读;

想要很好地处理社区反馈,必须花时间。否则只会假装你的项目有少量的公开 issues。为每个 Redis 子系统雇佣核心级专家,让他们为开源项目全职工作,这方法能奏效,但不切实际。

那么会发生什么呢?你开始把事情分轻重缓急,优先级高的事情越来越多。你觉得自己是一坨狗屎,因为你忽视了那么多的人和事,而且贡献者认为你不在乎别人给你什么。

这是一个复杂的情况。通常最终的结果是,形成一种主要处理关键 issues 的态度,但忽略所有新东西,因为新东西还没有进入核心,而且谁想拥有一个更大的包含更多的 PR 和 issue 的代码库? 与您通常的编程风格相比,它的编写方式可能更加复杂。

角色转移

由于上述“洪水效应”问题的暴露,你也突然换了工作。Redis 之所以流行,是因为我应该能够设计和编写软件。不过现在我的大部分工作是研究 issues 和 PR。

(Redis 的 issue 和 PR 数量,2019-06-04 截图)

我收到的许多贡献,我也觉得我能做得更好。但有些人会比我做得更好,因为有比我更优秀的程序员在参与 Redis。

但就本质而言,“大多数”都是平均贡献,它们只是为了解决某个特定问题而编写的,而这个问题是由提交它的人决定的。

然而,当我为 Redis 设计时,我倾向于认为 Redis 是一个整体,因为我花了几年的时间来写这个东西。所以你擅长的,你没有时间去做。这反过来意味着更少的有机新功能。

我的解决方案是?有时我好几个星期都不去看 issue 和 PR,因为我埋头在编程或设计,那是我真正热爱和喜欢的工作。然而,这反过来又给我带来了更多的心理压力。做我喜欢做的事,我可以做得很好,但我感觉很糟。

时间

至少对我来说,在一个项目上工作很长时间有两个问题。

首先,在 Redis 的经历之前,我从未每周都工作。我可以工作一周,休息两周,然后工作一个月,然后消失两个月。总是这样。

做创造型工作,人需要充电,获得新的能量和想法。高水准的编程,特么就是一项的创造型工作。

在最初的两年里,Redis 就是这样创建的。也就是说,当项目以最快的速度发展时。因为当我想工作的时候,我的工作效率比我每天被迫以稳定的方式工作时的效率要高。

然而,当我独自为公司工作时,职业道德允许我有一个中断分散的时间安排。在我开始接受 Redis 的工作报酬后,职业道德再也不可能允许我像以前那样,所以我开始强迫自己在正常的时间安排下工作。

这对我来说是一场巨大的斗争,已经很多年了。我确信我做的比我能做的少。

我从来没有找到解决这个问题的方法。我可以说 Redis Labs 我想回到我原来的时间表,但这是行不通的,因为我的报告对象已经是社区,而不是公司。

另一个问题是,从心理上讲,在同一个项目上做很多工作,也是一件复杂的事情。

过去我每 6 个月就换 1 次项目,但 10 年来我一直在做同一件工作。

在这方面,我试图通过在 Redis 中包含子项目来保持理智。一次是集群,另一次是磁盘存储(现在已经废弃),还有一次是 HyerLogLogs 等等。

基本上,那些为项目带来价值的东西,单独来说,是其他的东西。因为最终你必须回到 issue 和 PR,每天处理相同的事情。“副本由于超时而断开连接”,或诸如此类。我们再来研究一下。

恐惧

我一直担心失去项目的技术领先地位。这并不是因为我在设计和开发 Redis 不够优秀,而是因为我知道我的方法并不符合:① 大量用户的需求,② IT界的大多数人对软件的看法。

因此,我必须不断地在我认为好的设计、一组特性、开发速度(慢)、项目规模(最小)和大多数用户期望交付的内容之间保持平衡。

幸运的是,有一定比例的 Redis 用户完全理解 Redis 的方式,所以至少我可以不时得到一些安慰。

摩擦

有些人完全是混蛋。他们无处不在,这是很自然的。我相信编程比其他领域有更多的好人,但总能看到一定比例的混蛋。

作为一个热门开源项目的领导者,在某种程度上,你将不得不面对这些人,这可能是我在 Redis 开发过程中最有压力的事情之一。

徒劳无功

有时我相信,软件虽然优秀,但永远不会像可以流传几个世纪的书那样优秀。注意,虽然软件本身并不是很好,但其副作用也是有用的。最终被其他更实用的软件替代。

我也想有时间做其他的活动。所以有时候我认为我所做的一切最终都是徒劳的。我们设计和编写系统,但新的系统将会出现。

但是,任何仅仅停留在软件领域,而不是停留在“软件大创意”领域的人,将会创造一个新的标志吗?

有时我认为我有潜力去实现优秀的点子(big ideas),但因为我专注于编写软件而不是思考软件,所以我无法在这方面发挥我的潜力。

这与骗子综合症基本上相反,所以我想我对自己有一个很大的想法:对不起,我应该更谦虚。

骗子综合症(ImpostorSyndrome),指“一直无法相信个体成功是自身努力的结果,或是不相信个体成功是自身努力或自身技能过硬的结果”。

也就是说,我可以很多年都从事自己喜爱的事情。从中我结交了朋友、得到了认可和报酬,所以这不是一笔糟糕的交易。

然而,我完全理解,一旦开源项目开始流行起来,他们就开始为了生活而挣扎。这篇博文就是献给他们的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41709
  • GitHub
    +关注

    关注

    3

    文章

    457

    浏览量

    15913

原文标题:Redis作者:开源维护者的挣扎和无奈

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开源项目维护者分论坛圆满举办

    开源维护者——一个被严重误解的群体,在一个开源项目中,开源维护者 往往拥有很高的权限,比如合并其他人的代码,又或者是无须经过他人review
    的头像 发表于 12-22 18:20 264次阅读
    <b class='flag-5'>开源</b>项目<b class='flag-5'>维护者</b>分论坛圆满举办

    诚邀报名|来开源项目维护者论坛,为项目可持续发展贡献您的声音

    2023开放原子开发者大会 . OPENATOM DEVELOPERS CONFERENCE 开源项目维护者论坛 2023.12.17 开源维护者是一个被严重误解的群体。在
    的头像 发表于 12-14 16:05 172次阅读

    开源操作系统大全

    开源操作系统即公开源代码的操作系统软件,它遵循开源协议使用、编译和发布。自由和开放源代码软件中最著名的是 Linux ,它是一种类 Unix 的操作系统。Linux 可安装在各种计算机硬件设备中
    发表于 10-27 15:13

    各位开发期待已久的开源鸿蒙开发手机已经开放购买啦!!

    各位开发期待已久的开源鸿蒙开发手机已经开放购买啦!! “开源鸿蒙开发手机”,本质上是手机形态的开发板,为广大 OpenHarmony
    发表于 10-10 18:32

    开源图形驱动在OpenHarmony上的使用和落地

    由于开源图形驱动在国内的发展很慢,少有开发专门从事该项工作,缺乏技术交流和实践经验分享。下图为黄然老师前期在开源驱动领域学习和研究所做的笔记: 此外,对于OpenHarmony来说,当前大部分
    发表于 08-31 18:07

    开源之夏2023】聊⼀聊开源之夏以及项目的进展(rt-thread上用CI来验证软件包的编译情况)

    的开发维护,促进优秀开源软件社区的蓬勃发展。  活动联合各⼤开源社区,针对开源项⽬的开发与维护提供 mini 任务,开放给全球⾼校学⽣报名申
    的头像 发表于 08-24 20:05 567次阅读

    资讯速递 | ArkUI-X 预览版已正式开源

    OpenHarmony项目群技术指导委员会(以下简称“TSC”)-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X,近期已正式开源 ,开发基于一套主代码,就可以将在OpenHarmony上
    发表于 08-11 16:10

    共建、共享开源EDA核心共性技术框架|2023开放原子全球开源峰会开源EDA分论坛成功举办

    更多的开发、爱好参与贡献,将创新工作融入到共性框架的相关技术模块中。 芯和半导体技术支持总监苏周祥 苏周祥分享了《openPCB: 仿真驱动的先进封装与PCB设计开源框架》。他表示,一方面要兼容
    发表于 06-16 13:45

    声音预测性维护开源硬件

    电子发烧友网站提供《声音预测性维护开源硬件.zip》资料免费下载
    发表于 06-12 15:23 1次下载
    声音预测性<b class='flag-5'>维护</b><b class='flag-5'>开源</b>硬件

    2023开放原子全球开源峰会报名开启!

    开放原子全球开源峰会 开放原子全球开源峰会是开放原子开源基金会本着以开发为本的开源项目孵化平台、科技公益性服务机构的定位,立足中国,面向
    发表于 05-29 17:05

    开放原子开源基金会OpenHarmony开发大会2023演讲资料汇总

    OpenAtom OpenHarmony开源两年多以来,已有130多家伙伴、5100多名开发参与共建和贡献,累计代码量已超一亿行;同时有260多款软硬件产品通过兼容性测评,广泛覆盖了能源、金融
    发表于 05-29 16:34

    定时维护的好处

    定时维护可以减小故障的大小,可避免损坏模具和机器的重要,贵重部件。可以提前发现问题,解决问题。按规矩维护可以减少设备的磨损。意外的故障有可能使设备一次报废。定时维护可以把损失降到最低。
    发表于 05-21 14:27

    源译识 | 译文分享《OSPO的商业价值——探究组织创建、维护和发展开源办公室(OSPO)的动机》

    【编者按】 为什么从商业角度来看,创建、维护和发展开源办公室(OSPO)具有价值?这是在TODO Group最新报告中讨论的问题。该研究报告探讨了OSPO的不同价值主张,并为利益相关者、监管机构
    的头像 发表于 05-19 03:45 324次阅读
    源译识 | 译文分享《OSPO的商业价值——探究组织创建、<b class='flag-5'>维护</b>和发展<b class='flag-5'>开源</b>办公室(OSPO)的动机》

    报名开启!开放原子开源大赛OpenHarmony创新赛来啦!

    大赛背景 开放原子开源大赛OpenHarmony创新赛期望达到以赛促用、以赛促教、以赛促学、以赛促练、以赛促创的效果,开发通过学习OpenHarmony,开发出具有创新性,实用性的开源应用软件
    发表于 05-17 16:52

    中国开源未来发展峰会“问道 AI 分论坛”即将开幕!

    的发展,一个好的 AI 技术产品该如何迭代与运营…… 为了能够与广大开发一起更好地拥抱 AI 技术的发展,5 月 13 日,由天工开物开源基金会、开源中国社区联合发起的,面向广大开发
    发表于 05-09 09:49