cover of episode 技术播客节特别节目:请不要忽视开源中的 Burn out 问题

技术播客节特别节目:请不要忽视开源中的 Burn out 问题

2023/12/7
logo of podcast 开源面对面

开源面对面

AI Chapters Transcript
Chapters

Shownotes Transcript

各位听众大家好 今天是 2023 年的 11 月 18 号今天我跟江宁和德福在这里一起跟大家录一期节目我们想借此机会把技术播客的影响力进行一下扩大今天 LC 北京开 Mini Man 持续集成我们做一个传达节目在我们进入今天的主题之前先请大家各自介绍一下自己的播客的节目我们先从江宁开始吧

Hello,大家好,我是 LC 北京播客的主理人江林 LC 北京播客的话,其实主要还是围绕着开源以及后面,因为我们是阿拉伎本地社群的一个分舵其实我们也是想把一些做开源的经验跟大家做一些分享

其实就是这个参与这个技术博客节我觉得最大的收益其实是大家一起来串台那个互相去交流一下那个项目制作过程中的一些心得还有一个是嘉宾也是互相那个支持支持

我觉得因为要这个播客能坚持下来其实挺难的一件事情然后我们可能都会遇到这样的困难然后今天我们聊这个话题其实也跟那个可视率发展也有很大关系大家可以关注关注德福

大家好我是持续集成的主理人德福我们持续集成是一档专注于开源与基础设施领域的博客栏目就大家平时看到的互联网的网站网页 app 也好他们都是一些上层的

但其实在这些上层应用下面还有操作系统数据库文件存储机房管理等等这些大家日常其实见不到但是很重要的一些项目那我们其实也是在做数据库的而且我们也是一个开源项目所以这次是跟两个开源的友台来串台的一个活动

对而且今天很高兴也是来到生派这个直播间这头一次来这么豪华的一个地方都非常珍贵满眼都是罗德 OK

大家好,我是 Mikey,开源面的主播之一因为我们开源面的面是一个用开源的方式做播客的一个项目开源面的面的主要的内容方向就是想让这些在一线从事开源的人员多发声来开源面的面分享你与开源的故事官网上有我们的收听的 RSS 链接当然了你也可以在小宇州啊,喜马拉雅这些主流的这种播客平台上能找到我

但我个人还是非常推荐用 RSS 链接来订阅我们对了那个 LC 北京是你推荐怎么收听 LC 北京其实我们现在是在喜马拉雅托管然后呢同时就是以 RSS 发布在那个

各个平台各个平台大家搜索 LC 北京其实就能找得到对德夫你那边我们其实也是在喜马拉雅上面上传然后在几个平台有 RSS 的托管但我们会比较看重一点小宇宙的数据吧

虽然比较少但我们觉得好像那个数字含积量更高一些对所以如果大家这个想收听的话呢可以去小宇宙关注我们这次播客节的这个所有的节目呢会有一个播客节的这个整体节目的大合集这个大合集呢会在国内几个比如说以小宇宙喜马拉雅为主的这种大型平台上同步上线大家可以在这种平台上专门去搜这个播客技术节好闲闲声剧我们进入今天的正题哈

我们今天的正题呢其实是源于那个上次我们在北京这个主播们交流的一次线下的讨论然后当时我问江宁我说那个你现在有什么想聊的话题或者是比较关注的方向吗江宁老师就说开爱好者 Burning out 的问题

这个时候自己会有一些这种自己的体会吧要么有的人会沮丧要么有的人会这个离开或者怎样怎样怎样基于这个话题我们这周呢然后正好拉上德福我们想一块聊一聊然后这个话题大概呢是分为三趴第一趴呢是想请各位这个逐个介绍一下就是在这两年里边影响比较深的然后跟开源项目有关的这种这种不可持续的事件

或者说在你看来什么样的这种表现才能称得上这个项目或者这个参与开源的爱好者遇到了可持续发展的问题要不我们还是从江宁先来对这个可能是我挖的之前的话实际上我们可能聊开源的时候大家都会觉得挺光鲜的反正至少我们会出名然后

然后很多人用这个项目但是实际上开运项目其实它是需要持续的去维护和支撑的在这个过程中实际上就会发现有些项目它可能就因为它自己的一些很持续性的一些问题就导致于没有办法持续的发展下去其实我觉得在这里面的话项目其实特别多我们其实经常能看到的就是举个例子好

我这边因为是阿法企业软机会所以接触到的项目会比较多反正最开始我们项目会进到孵化器来进行孵化进孵化器的时候我们其实就会对大家有个很重要的考量就是我这个项目

他是不是能够持续得到发展我们会看他是不是一个大厂的项目或者如果是一个个人项目的话他是不是有把他的社区 build 起来而不是说只有一个人有一个统计指标叫 Bus factor 我不知道大家有没有

有没有了解 Bus factor 的话实际上就是你项目里面的人如果被撤状了你这项目还能不能活下去的一个很重要的指标开封项目里面经常会出现一个情况就是某些人他贡献了这个项目可能 80%甚至 90%的代码

其实在这种情况下其实这个项目其实相对来说会比较危险各种项目我们会可能会更关注他参与了人的多少的问题还有大家共享链的问题然后对于公司来说的话可能就是公司是不是持续投入我觉得后面我们可能会有些具体的一些案例会给大家来做分享然后另外一个层面上面我们作为开源项目的维护人员

实际上现在在市面上经常会遇到一些问题就是很多的用户他上来的时候可能就指责你妈你不修

你有 bug 你不修或者我有一个问题我就想要两个小时三个小时就要得到这个答案其实在这个过程中我觉得是需要跟大家要有一些沟通对于开源项目你要有一个更宽容的态度后面我们可能也会聊聊就是就在这个层面上为什么会这样对于开源项目的开发者来说他的心事

身心健康其实可能是更重要的就是那个 burn out 的这个问题德福要不你来介绍一下这种我不知道是不是我们前端是重灾区还是这行业都这样这些年不是这些年就是持续这些年其实经常会遇到

这种所谓跑路了或者是没有了或者投毒那就 NPM 包大家听说过好多起了这种突然间这个包没了没了之后大家依赖这个项目就全部都挂掉了有很多这种我不开源了我删代码了的

还有一个我不是讲名字这个合不合适啊有个叫叫 VIX 的项目对吧这个项目当时出来的时候大家前段阶很振奋啊觉得哇我们这个很很好的一个东西大一桶对对很多人在要用然后用着用着就发现不太对了

对吧据说江宁老师好像对这事比较了解他会再细说说嗯还有就是前端这边因为呃这个技术升级换代很快比如说 view2 升到 view3 的时候很多基于 view2 来做的呃

上层的比如组件库或者一些工具之类的东西他们因为对三不兼容所以这种他可能就突然间用户其实用户还没有变少很多因为很多人还没有切到新版本但是这些维护者们他们可能精力就放在新版本了他们又没有太想去维护旧版本的东西然后他就很尴尬放在这停住了

对就是我这些年身边看到的可能比较代表性的几种这种停滞的开源项目的情况我说两个吧首先第一个我刚才听到因为江宁跟德福也没有提太多这种具体项目的名字可能因为是这个开源圈子里边本身有许多人就这个什么感情比较脆弱所以我们也不大很方便再去提他们提一些这个我自己看到的国内早期在 web2.0 时代有很多个人站站长

很多个人站长都用一个叫知梦的这个 CMS 系统做自己的个人网站知梦的这个创始人应该是因病去世了然后就发了一个公告公告里边有一句话就说这个林学先生一直秉承着开源免费的理念却从未因为知梦过上体面的生活这是那个一篇复告里边的一句话

就我知道的坚持了十几二十年的比如像挥湖这种项目一个个人项目我想想还有什么能提名字的提一些国外的比如 SSL 项目 SSL 当时报过心脏低血漏洞有一些媒体后来报道发现说这个项目只有两个人在维持

这两个人每年的通过这个 SSL 项目得到的这种捐助也好这种收益也好只有不到区区 4000 美金还是 7000 美金来着就具体数字不可能记不大清楚但是是几千美元的样子后来国内就老罗捐了一下他们那个门票吧比如说你做这种什么特别底层的这种跟协议有关或者是跟你遇到这种 burn out 的问题然后第二个呢就是特别靠近用户这一端的比如说像 CMN 系统就非常靠近用户端对吧然后

然后用户端这些呢他也会遇到这种问题至于出现这个问题的原因是什么我们后面再展开那么接下来我想问两位你认为这种可知用户的表现有哪些这是第一个问题就是江宁要不先给我们介绍一下

其实我觉得项目的可持续是一个公司的运营来说的话其实它的支出和它的收益是不是平衡 AFA 集团经纪会都会提的更多你项目能够持续发展的话那就是你的 community 有没有建起来你有没有持续开发它能持续的在那运转我觉得就把这种看成是一种人力

就金钱的这种收益我们更多的是说这个项目能不能持续有人能参与进来江江你说这个 community 能不能建起来的一些指标是什么不但有新人涌进来才算是建起来还是说我们这些人有多少讨论有这些东西才算对其实 Linux 基金会专门有个就标识项目其实它有一堆的指标来去看断你的项目或者你的 community 的健康度

刚才其实我提到的时候说我们有一个叫 bus factor 我觉得这是一个很重要的一个指标这个指标的话其实是相当于我能是不是持续有信任就是铁打银盘流水的兵其实如果你能持续不断的有人进来的话就我们的用户能够转成贡献者然后依托于这个项目来去解决持续解决大家的问题的话这个项目就是一个健康的项目说到这我想到说

其实他不是会进来然后就一辈子在这做是是是就当然来做一两个走掉所以他必须依赖着有拉新而且可能大家进来就是做一两个简单的然后也许他就不做了也许他想做更难的他有可能走掉了对就是因为我做过项目的运营的时候其实发现就是我好不容易看到他有一个贡献但那个同学直接来了贡献之后他就走掉了因为这个他只是想把他的问题解决掉对

然后呢他就跟上游做一些沟通而且我们可能接触更多的就是说我把这个软件下载下来我用了解决完我问题了挺好用的 OK 走了等等等等我想在这里刚刚大家说的这个表现形式对对这个表现形式就是说这个人来了比如说我们现在我现在是在说这个项目我们现在正在说的是一些项目上的表现对于人来讲人怎么会被 burning out 的啊

这这块其实会就是其实每个人你每个阶段你做的事情其实比如说我现在在我遇到一个问题然后我过来然后我解决了然后我走了这叫 burn out 了吗这不是不是我们是 burn out 更多是说是站在维护者的角度上来看的因为很多时候就是嗯麦克老师说这个人他就等于没来过知道吧你就路过你都没停刚才是那个路人很多的这个开源项目的 founder 啊或者是他的主力开发实际上对这个项目是有感情的

他会觉得这个项目是自己养的娃他有这个责任要去维护很多时候其实他可能他的主业已经发生变化所以所以 burning out 的问题指的是项目的那几个核心贡献者而言的对吧对对对主要还是对核心贡献者来说那其实大体就是两种情况就是你个人项目跟公司项目但我觉得这个里面可能公司项目反倒风险更大

因为兴趣可能会渐渐消失但工作可能突然间就没有因为我见到很多在阿巴基软金汇的一些项目有些就是公司的方向发生变化一下子我投资停了然后实际 20 个人没了

后续的支持其实我们也想了很多办法去增加 PMC 的 member 的数目去帮助他去维护但是因为新加进来的人他绝对项目不了解他需要一段时间熟悉这个项目就导致于后面我们即使把人送过去这个项目可能还是会死掉

就是因为阻力突然间撤走了很难就就是这个器官衰竭让你突然间输血输血但他不吸收没有办法没有办法就是有机的在一起但我们其实也做了一些反思啊就是因为商业公司其实是有利益诉求的实际上当时其实他的开源他可能是作为一个

可能有多种目的然后在这个过程中实际上他忽略了一件事情就是要让更多人了解代码然后要鼓励我企业外部的人能够参与其中他如果不做这个事情的话那真的就是一撤而且我觉得当时其实也在想在企业里面做开源的人是不是会有那种个人项目一样的这种情感对项目的这种情感实际上很难说

因为那只是一份工作不是我特别要的那我们直接聊 VIX 吧我们先捋一下我们先捋一下首先第一个问题是我们想问的是持续性问题的表现有哪些通常情况之下对于项目来讲无论是公司项目还是个人项目就是这个项目它的活跃度版本发布可能就会要么出现一个

肉眼可见的那种程度的下跌对吧那我们这个问题我简单来说就是我看一看项目我先是看他最后一次 commit 的时间然后我要看他最近的发版最近的发版时间是多少然后我要看他留了多少 issue 尤其是稍微知名一点的就是他一直不处理可能有成百剩千个堆在那我会觉得这个问题会比较大其实挂在那的 issue 他有多种情况我们可以打开来看

其实我觉得它的响应程度会是一个方面然后另外一块的话它可能会当成是一个 backlog 对就我倒不会去直接看数但是如果你挂的很多但每个都有回复那可以但如果是挂一排然后后面也都是空的对如果是回复零是空的就没有人去做对应的响应了对的就是另外一个我们第一个问题刚才不说了一个项目本身的一些本项然后对于人的这种表现就是说

你热心的参加开源一段时间之后你离开了这个

开源或者说离开了你当时的那些比较喜欢的项目或者你投入时间比较多的项目这两个我们都可以把它视之为可持续性的问题对吧对那我们今天的讨论就基于这两个现象来展开那么下半一个问题我想大家这个比较简单大家快速快速的回答一下就是什么类型的项目或者是什么类型的这个开源参与者爱好者也好贡献者也好会比较容易遇到这种可持续性的问题

谈那个现象的时候说过这可能基础是类的对两个最下面和最上面对我感觉主要还是资源的问题就是你指的什么资源其实能不能持续其实是他能不能有持续的收益这个收益可能是可能是名声上的也有可能是经济上的其实有很多的开运项目他扮演了很重要的作用就像老佛街一样虽然很多项目都在用但是呢

其实是没有专门的资助的刚才跟你说的 OpenSSL 的情况一样有很多这种生态链里面的一些很基础的项目就大量的其他的项目都在使用这个项目但这个项目的维护人员其实很少现在的话其实也是因为出了 Log4Jet 事件之后

临时基金会那边其实也在 OpenSSF 那边他们有一个项目叫 Alpha Omegam 的项目 Alpha 的话就是依赖更重要的这种项目然后 Omega 的话可能就是稍微次一点的他就会根据项目的重要程度然后去提前把它识别出来然后对应的会给予相应的一些支持去从经济层面上面去保证因为很多时候

我们项目要持续发展现在是需要有程序员这个程序员可能是免费的也有可能是被雇过来的就在这个层面上其实我们是外地是可以做一些处理的那什么样的开源的参与的人会容易遇到这种可追星的问题其实我觉得就是靠爱发电的吧

德福你觉得我也觉得靠 JS 这个就是很典型的一个就麦克老师说为什么说最下层和最上层我比较认可就是你如果是在中间那层的话你跟上下游无论是跟上下游的项目还是上下游的人接触比较多但是如果你做底层的话你其实是比较自闭的你的连接会比较少

那么这种情况下就是你容易被人忽略和看不见就像江江老师提到大家那种心态我们都以为就是这个比如说我们在这个四合院或者我们在这个街上这大街上很干净它自然而然就应该很干净它没有想到是有环卫工每天四五点来清理这个大街但是你看街脏了就会说这不行那怎么整这么脏这么乱那就做底层的人就是这样子他不被人看到然后他又总被人抱怨

然后他又没有很好办法去变现然后最后这人还是因为出了一些生活上的意外才对不然他好像还能坚持一下

这稍微有点悖论就是 Linux 这个项目可能不大是这样它也是非常底层的对吧就这一个好像意外不我觉得这是它其实是形成了一个比较好的一个商业笔环其实各个公司都能在上面赚到钱但你想 Linux 它下面还有驱动还有其实还有更底层的东西就 Linux 经费成立其实就是给他发工资背后有很大原因还有就是红帽上市的时候实际上是给了他股票的

就是我觉得他其实就是 NAS 来看的话就是这个其实是商业相对来说是比较晚辈一点的就至少我们作为开发的人其实大部分而且做内核的人大部分其实都是被公司顾着的

相对来说我觉得不用为生计担忧第一是它有存在感第二是它其实有很大的二创二次开发但是靠 GS 并不多大家都把它当做一个黑盒在用嗯

它是一个黑盒就没有人关心这个盒子里面的人过得好不好这个盒子到底是几个人他不关心他就只关心这个东西当做一个商品但他本身没有赚钱那不是商品然后你又用商品的标准去要求他那我们先说一下 CoreJS 因为这个当时影响比较大另外那个山宫跑路是 Node.js 里面的那个什么东西 LeftPed 对 LeftPed 其实就几行这种项目它到什么阶段了才会遇到这种问题了

我觉得维护人员他已经相对来说走到一些绝路上了其实他就可能看到别人基于他这个东西赚到钱了而且他有很大的用户但是他自身赚不到钱

然后从某些层面上面可能就是做出了一些过激的一些动作跟他项目本身的跟这种阶段上有什么关联性吗我觉得这个关联性其实没有那么大就在你各个阶段的话其实都可能会出现这样的这种我觉得主要是还是

还站在他自身的这个角度上来说我们参与到开源的时候实际上就是你你求的是什么就他的权利跟义务非常的不对等嗯对你就像像 view 也好像 react 也好像前端这些大家会知道他背后的作者是谁这个作者在这个领域里面也是有话语权的但靠 GS 这件事就是作者他也没有话语权他也没有收益就无论是精神上还是物质上他没有做过收益但是他的

责任又很大就别人会告诉你说整个前端生态都建立在你这嗯

我是谁啊为什么建立在我这啊但又没有又没有给你钱又不像 Linux 一样有商业公司去给他做一些支出因为整个开源软件链里面它有总有一些闪亮的一些项目这些项目可能得到大家很多的关注但有一些又基础但是又相对又角落的一些项目的话可能没有人关注到想当然是就这样是能够工作的然后这些人其实维护人员是能得到很好的这个照顾的嗯

就每当有一些开源软件比如现在一些公用链安全上会说某某某开源组件里边报了一个什么什么级别特别严重的漏洞然后大家都会去催说你这赶紧修这个漏洞啊是但实际上开源当然说的很清楚啊就我这项目是有免责是免责我有免责声明对我基于某种协议然后你可以怎样怎样用但是呢你用出了问题我不负责

对吧就比如说你出了问题我没有说承担这种必然的这种连带性的责任对吧至少从开源协议本身上或者是从参与开源的那一刻起

作为一个用户也好或者是一个开源的参与者也好你应该理解这个问题你应该清楚的认识到这个问题假设你是一个用爱发电的开源爱好者你加入了一个项目别人提了一些或者别人提了一些什么 PR 你并不一定非要把这个问题去 fix 掉这一点就是你作为一个被 burn out 的人

你一开始你是不是应该意识到这个问题第二个就是作为一个用开源软件的人比如说现在很多跟 clash 有关的项目是 clash 还是 class 人不让他发音怎么怎么怎么念都上古跑路了对吧

那作为我们这种用户来讲我们也应该知道说人家山谷跑路那我现在没得用那就是没得用那你找谁去你整天给我提各种问题说你为什么在你电脑上装了之后它也跑不起来或者为什么你这个地方就报错了对吧像这种我有必要有义务解决你的问题吗其实是没有的对吧然后如果我们把这个事情说清楚了或者这个理念被广泛的认可了很多

很多 Burning out 的问题不会这么严重的发生算是一方面对于开源来说的话其实大家会虽然我们有开源协议学科协议有免责声明但是大家就会尽力去修复项目的口碑还是建立在即时响应的基础之上所以有些时候我觉得有责任心的开发其实它还是会很

很在意这些事情因为如果他不是这么做的话其实他很难去赢得用户的信任这个响应肯定不是义务就只是说我确实想把这事做好旁边有人提醒了我一下说对啊是应该这么做我就去做这是正向的就我在海边我在这堆沙子我堆个城堡别人说这个弄一下挺好那个弄下挺好这是正向的那要是人过来逼逼你你这个不行你那也不行那我就生气了我一脚就踹了老子不堆了

我就不干了本来就是凭我的兴趣爱好但你这是跟我来提要求来了我说很多人他可能不是说我兴趣没了他就是生气了跑到那种所以就是阿帕奇基金会没有心理辅导这种方面的这种其实会比较少一些但一般来说我们其实会去 monitor 你邮件列表里面其实那个吵架那个事情或多或少会有发生但一般来说就是你像刚德夫说的那种去

胡乱去指责别人一番的话其实我们最近其实也有看到然后里面讲的更多的是说这个讨论我们有可能要关帖我们就不理这个人或者就把这个人就封掉了或者就是说大家都一直认为这是一个烂人坏人我们就不理他就完了因为公道其实自然在人心这个我觉得相对来说会比较好而且

这个应该要比什么 B3 人评论要友好的很多所以这样还是要有社区大家能互相去支持一下一个人就容易被搞心态对那我们再继续来明确一下因为我发现我们在讨论这个问题的时候一会儿在说项目一会儿在说个人一会儿在说项目一会儿在说人所以把它分成两 part 就第一 part

关于这个项目本身程序员特别喜欢重复造轮子我今天看你这不爽了我就造一个轮子然后我造了这个轮子可能我玩了一段时间我觉得这轮子不好玩然后我把它给扔了这种算是可持续性的问题吗不断的涌现又不断的死掉江宁你们俩怎么看这个就 GitHub 上面放的这个项目绝大部分其实都是一次性的代码就放在那放在那五年十年其实我的个人

然后下面其实也有好多死窟这种我觉得是挺常见的这不算可言的可执行发展问题对不对对对我觉得这个其实不算因为这个话我们可能压根其实就没有想到要这样但是另外一块的话我觉得可能会比较重要就是说一旦你想把这个项目长期的发展起来 10 年 20 年的话这些就是需要考虑的问题

首先就是你要去看你这个项目是不是能吸引到足够多的用户用户基础是我们这个 community 的一个很重要的基础然后大家都是要解决同类的问题之后然后你有没有把门槛降下来就让更多的人能够参与其中然后能帮着人一起来维护这些项目

很多时候其实我们之前在 LC 北京播客聊的时候实际上大家其实对于自己的项目吸引人然后参与进来都有很多的想法里面有一点比较重要 Shinee Spell 其实他们就提到为了能让用户更好的参与进来其实他们把它们架构其实是要把它拆成 v 模块的方式就是说很多人他可以直接用插件的方式去实现它一个功能他不需要对内部有太多的了解

然后内部的这些核心的这些模块可能还是有 core team 来维护这样我外面的人他能比较快的能够参与其中这样的话其实生态是能够比较快的能够增长起来的然后还有一块的话就是

其实我们有一个体系就是 monitor 这个孵化这个项目就是看他有没有持续的有新人就是成为 commit 有没有新人成为这个 PMC 的这个成员因为就是就就就有点像大学一样每年每就有新新同学入学其实这样的话就项目能够以一个比较好的一个方式来发展其实能发现就有些项目他就进入到维护期了他就没有什么新的一些需求或者大家

用户也就相当于稳定实际上就在那个层面然后还有一些项目那就可能没有多少人关注了那就后面我们可能就要把它退休掉就是把这个库设成止图的其实它也是一个正常的一个现象就是慢慢慢慢的可能这个项目就没有人关注了没有人用了那就自然而然就

就归档了刚才是在项目程度如果但是对于人来说可能就会有更多感情色彩因为他可能会造成一个问题他觉得他是这个项目的支柱这个带来了带来了我觉得这种产生这种 bun out 可能会更严重一些因为他没有想着要退出

我们一般来说去孵化项目的时候其实都对于这种核心开发人员都在不断的教育他就是说你的代码提高量得降下来怎么降下来就是你要去发展更多人把你的 knowledge 去传递下去这样的话他出现这种单个人员去 burnout 的这种情况就会少很多

其实我觉得更多时候是我们依托于社区的力量然后让大家都来分担而不是说只是一个人来去做这个事情明白德福你们公司也是做开源项目的然后你是你怎么看这个

或者你们有没有考虑这种可持续性的问题因为我们现在才开源一年所以现在肯定是靠我们的核心开发者去做的到了新的一个时期应该是确实要像江老师那样说你减少核心人员的依赖是更安全的

那么阶段不同我们现在其实不太会面临这个问题其实我觉得你们的问题是你公司要能长期存在这个项目其实就能够得到持续发展但后面确实要考虑说怎么样让我们这些核心的人的工作量减下来但是我们的开发的速度还要能保持对吧然后我们能更健康的去迭代

但像比如 CMS 如果大家都不去用了就是需求侧慢慢枯竭了那么我供给侧也就慢慢的我觉得这是一个算是善始善终就是一个自然结束的过程这不是突然停掉的但这是必然会这样的

也就是需求色如果已经不健康了那你这次肯定会慢慢慢慢断下来这个项目自然结束的其实这块我需要再加一下还有跟技术发展趋势也有关系就你像云嗯很火以前的话就是在 Cognitive 出来之前

其实 Methos 其实是很火的其实我们现在 Methos 马上就要归党了其实我觉得也是因为技术迭代就导致于虽然大家还是有同样的需求但是我们可能会有一些更优的解决方案对那可能还是这些人然后我们用就去做新场景下解决问题他们可以继续用他们的领域经验对然后旧的项目就自然而然结束掉这是健康的嘛

那从这个人的角度来看呢人的话我觉得核心就是你的收益跟付出不对等或者你的责任跟权利不对等我承担过大的责任我一开始我有热情我多干点我不计较无所谓就是我凭兴趣做一做然后那么多人用但是没有给我更多的好处然后反倒有更大的责任和压力了当这个不对等之后它就变得很危险这个结构就可能因为各种原因

我的工作上调动啊我的生活上有任何的变化啊或者我情绪上有任何变化他就有问题了对于公司也说公司项目我大家晋升了大家这个业务不盈利了方向改变了那就是最先就会就调整掉了嗯

另外一个是啥呢我想在接着节目里边重复的跟大家介绍一下一个事情就是什么呢你花钱你买了一个商业软件随便任何一个商业软件你用它过程中发现任何问题你试试去找官方沟通一下试试我告诉你我花钱买过一些软件然后也是很知名的一个软件然后我在使用中遇到了问题我就去我去官方的渠道去问因为你是付了钱呢它会有一个官方的渠道

一样也不会有人鸟你的他觉得这个问题就无足轻重你是一个小白用户你没有搞明白怎么用我的软件这是这是商用软件尚且如此所以开软件的你如果用开软件遇到问题我想作为一个用户应该想想这个问题就是到底应该怎么去解决

对你去看有的你去买的时候他写的是有客服而且是五成八的他都不一定是对吧你一个开源的你还有这七成二十四小时的对对对这要求太高了所以大家对这个问题一定要有一个清晰的认识并不是说你在使用过程中遇到了问题别人就一定有义务帮你解决而且你在使用过程之中遇到了问题你自己有责任有义务自己先尝试解决解决不了的时候你再想办法把你的怎么讲就提问的艺术

描述清楚你的问题然后祈求别人能过来帮你解决一下如果别人不帮你解决这是理所当然的如果帮你解决了你应该感恩戴德才对对吧对我觉得 Mickey 提的那个其实挺好的就是这样能让我们的这个开明圈少一些力气然后大家多和谐一些然后另外一块就我想更多提的就是如果这个项目真的帮到你了

然后给你节省时间了实际上你也应该有所感谢其实在 GitHub 上面有 sponsorship 的这个功能实际上我觉得可能咱们大部分人都很少在用其实我为什么知道这块是不是因为我前段时间去跟公司的一个同事去有

有交流就他自己花了很多时间在做业余在做这个项目的这个维护就有人会给他 sponsor 但可能国外的人会比较多一些相对来说的话其实就跟那个 CoreJS 那个其实是很类似的他也是就希望大家在用的过程中

然后你真的帮到我的话你就给一点点帮助其实就可以扩建 S 我还给他珠宝打了钱我不知道最后能不能到他手上但我觉得相对来说的话大家其实都多有些善意然后这样其实可以让我们开源其实是能够更加的美好一些

然后就是不要让外发店的这个人心寒然后我们也把我们的爱送出去传递出去我觉得可能这就是我们这期节目的

节目一个非常重要的一个目的吧 OKOK 我也来补充一下江静老师说的这个事情就比如说你可能对于普通用户来讲这个你用这个 GitHub 那个 sponsorship 有点难度比如说它那个货币的币种的支持啊然后那个操作的整个流程啊相对稍微复杂一些但是呢对于我们这些做开源播客的大家也可以这个来支持一下吧比如说这个爱发店啊就如果你喜欢一个东西

你一定要用脚投票要来支持他如果你不支持他这个世界就是劣币驱逐良币最后你就剩下的全都是你没得选的那些比较糟糕的东西对对对是这样就是你如果喜欢我们播客我们持续一生播客的话你会发现我们音质比较一般因为我们买的都是 30 块钱的麦克风如果有人赞助我买罗德我们的音质会变得更好的

话风有点变了下面这个问题是什么意思呢就是大家要展开说一说就是遇到可持续性问题的主要的原因有哪些当然我们的前面也有一些提及啊我想我们还是从两方面讲吧一个是从项目本身就我们分成两部分就是大家分别聊一下这个遇到可持续性问题的主要的原因有哪些大家可以自己归纳总结一下江青老师还是你先来嗯

其实刚才也聊了就是就把这个项目看成跟公司一样的话其实它就是它的投入和就是它的投入和产出之间如果不对等的话其实就会出现不平衡然后就必然就会就会有很大的这个问题那从项目本身来说的话那我觉得可能更多的是从它商业化商业化的角度来说就是我们看到的绝大部分的开发项目其实它

都会涉及到就是它也会存在变现的这个问题后面可能如果有商业公司参与其中的话其实它的可持续性可能会更好一些因为单纯靠爱发电的话这个是不可能长久的我正好中间想插一个问题作为一个项目

除了这个商业化本身可能会遇到可持续性问题比如说他没钱了他确实就 run 不下去了那么他在选择赛道的时候是不是也是一个影响比如说我现在选了一个非常底层非常小众的一个领域那他可能会遇到可持续性问题的概率比大一些但如果我想前端对吧所有人现在前端多火呀对吧我随便选一个前端的项目有可能遇到的问题会会更少一些吗我觉得前端项目其实刚才德夫那边其实也提到过其实前端项目因为精神太激烈了

非常卷是吧对对你说两种就是吃法不一样一种是冷死的一种是急死的对对对其实我觉得我看到的就是大家都就是说这个阿帕奇软金会的这个项目因为金融会不给开发人员发钱对

这些项目怎么活下去其实我看到绝大部分他背后都有公司然后大家是依托于这块做商业板然后去养活他自己然后雇这些开发人员然后接着来去做开发基本上是用这个模式来去维系的回过来有些可能是一些个人的一些项目因为我们现在其实也能看到其实你个人项目其实最后最终其实也会存在你要变现要商业化这个层面的我们能看到之前

孵化成功的这些项目大家也融到资了在阿巴企业里面这些项目来说的话我觉得它能够持续发展下去的话其实背后跟商业公司是有密切的关系但是阿巴企业这边做的比较好的是说要做一个隔离隔离指的是什么因为基金会这边的话其实它要扮演更中立的角色就不能被厂商裹起明白一直强调是 wender neutral

就是就厂商中立然后还有另外一块的话其实它是让大家以个人身份加入到基金会

这样带来好处就是说如果这个人换工作的话,他还可以做这个项目,反正我之前的经历就是我的公司换了换去,起码换了四个,但是那个项目我还可以一直做,这样就其实就是一个比较好的一个可持续发展的项目,对于个人来说的话,真的就是因为我参与了这个项目也是某一个阶段我可能在项目里面,

其实我也会因为工作的变化或者人生的变化这个发生这种 switch 这个其实是我觉得是一个必然的有些时候我也坦然了就是那个项目虽然我跟他还是有很深的感情我只不过说的是去看一看但前提是那个项目还能在的话德福就刚才接着原因嘛接着那个说就是

你说赛道不好而前端这种事情呢它就是很挤比如说在那个 view 框架 view2 升到 view3 的时候它的写法上和很多的这种方式上有很大的变化就导致原来的一些库不能兼容那这时候就有些人就非常快的反应说我就把原来支持就是 2 的我就做一个 3 的版本我自己从头做做一个

那我比你更快那对于原来那个库就很尴尬了他们可能没有想象那么快也可能这个原因就是大家升了三发现女儿的库用不了了我就用新的库了他们就突然间也是需求侧就降下来了那这个从二升到三它的技术难度很大吗

细节很多但是写法上有变要改一些代码主要就是代码要修改对啊然后有些结构上的东西也要变而且它周边依赖的很多东西也都变了你无论是数据管理的东西路由全部要升级一整套东西都要升级跟着升就大家很卷总有新人会比你睡觉睡得少对

还有什么其他的原因吗就在你那边看来再一个就是前端的很多项目它不是全职开源人在做的它是在职的因为你也知道就公司的一个前端团队他们想获得一些话语权或者晋升的时候想证明自己的技术影响力其实没有太多的好的办法开源是一个但是因为他们这个团队的调整

会对这些库的影响非常的对这个比较明显公司 KPI 导致的而且有的时候他们会比如同类的出了几个就大家在某种有需求的历史时期对很密集的发布了几个类似的东西但你说这两个都挺好的但万一你压错了可能

你用的那个最后是被他们内部淘汰了就不同大厂之间他们不经常发这种同类的项目吗是这样就作为第三方你也不知道他们两家哪个可能会倒掉了就这项目就倒掉了对对就像组件库图形库就每个公司都会有自己的但你万一压错了这个东西可能就没了那个人层面呢个人层面就实话说

我会觉得就除非像 Viu 做的这么大的吧否则的话我觉得大部分个人层面东西他是娃娃而已那我也就娃娃而已我不会很重度的在生产环境去用它所以就是在你看来个人遇到 burning out 的问题基本上原因就是个人的状态的不稳定性对吧我能我甚至就是从他提交的这个历史能感觉到他的情绪的变化就是一开始很亢奋

你看他提交的提交代码时间都是晚上 10 点 11 点甚至后半夜慢慢的可能就变成了中午晚上七八点慢慢就时间越来越长你就能感觉到他好像不是那么有兴趣了那个频度就降下来了对频度也下来了然后时间也不那么拼了我想感觉到但是这种时候我其实心态就是一种祝福觉得挺好他成熟了他没有那么大的执念了

就他一直也没有很成功的真的走到社区的这个层面他一直是自己那自己一个人总有稍晚的那一天嘛明白刚才咱们还提到了一些这种这种来自于白嫖党的一些这种比较 bosing 的一些反馈比如说啊我这出问题了然后你你们怎么回事这么这样提起说然后要来解决潮流闹闹的这种会更偏靠近用户侧的这种应用

硬的项目一些对吧你说底层的项目不大可能会遇到这种问题他是搞心态不一定会跑路游语系还说过你们赶紧学游语是这样 OK 江老师你觉得无论你是在公司里边还是说你是一个单打独斗的一个个人遇到这种可执行的问题的原因大概有哪些稍微给我们捋一捋

我觉得个人的话实际上就是其实主要还是兴趣慢慢被消磨掉很多时候其实我们也是有有有激励的就是这个无非看远来说的话他这种及时的激励可能会相对来说少一点但是如果长期的激励也没有办法保证我烧我我肯定会很快就烧烧没了就是你知道突然间一个聚光灯打到你你就说哇塞好亮啊

但你天天这么亮着灯你就慢慢就适应了觉得也就这样吧可能你的问题也解决了你的痛点已经解决了因为我接触到很多情况就是很多是人因为做开源然后被公司雇过来了然后但公司雇过来的话他也不是说让他做开源项目

然后他就不得不要去虽然他还有很大的兴趣但是因为他要去养家糊口他要去解决他那个更高优先级的这个问题所以他会把更多的时间投入到公司的项目里所以也会导致这个问题还有刚才德夫提到那个晋升那个事情这是一个好的现象但是就是一个好的激励但是他会带来一个问题一旦晋升完了他对这个项目他也没有没有目的

就是一块砖对吧个人像很多时候它的起点就是我个人痛点比如我做了一个非数的 SDK 是因为我真的要用然后我随着我的过程中我又有一些新的功能我那段时间迭代非常快我一边做应用一边做 SDK 但到了某个节点第一是我的需求没有那么多了第二是有大量的维护的事情有个人用了对那个是不好玩的事情对他们就这个事情就麻烦我好像跟每次跟江丁老师录播客我都会讲谈恋爱的段子

这也是一样的就是你谈恋爱那时候很冲动我要结婚结了婚之后发现你生活中其实你要面对的是那些日常琐事那个事情就很烦了然后那时候你会觉得哎呀还是一个人好这段不得播

我觉得有点这个类似对就是你那个时候是很充满热情跟激情的但是之后你发现开源所要面对的其实是这种繁琐的事情对因为你回答用户的那个问题其实你收益性并没有那么大还有就是比如他提一个 bug 那个 bug 你自己遇不到但是确实在他那个场景下是可能遇到然后这玩意呢又特别不好改

你就很烦你又觉得好像你应该对他负责任但有时候你觉得好烦啊跟我又没关系我又不用你们谁愿意改谁自己改呗这就很矛盾其实最好是提问题的时候因为代码其实都有嘛然后其实他能 debug 出来然后能把 patch 提上来对这种的时候维护的成本也不高的情况下我觉得是可以的你这些人是有开发能力的可能他们又不够然后我也说一下我对产生 burnout 问题的一些看法比较肤浅的一些看法

是我看到很多项目啊他一开始的时候他把他想到这个就怎么讲想得太美好了他觉得我这东西一出来横扫一片大多数的这种重复造的轮子在你造这个轮子之前你想解决的那些问题别人可能都已经想过了

别人可能得的那个结论给出的那个解法未必是最优的但是你的这个未必也能超过别人的一个为什么他造了轮子他就玩两天就丢了玩两天就丢了这个是怎么讲我上我也行结果一上发现自己也不一定行这是一个很重要的原因就是个人就个人项目然后公司项目呢初衷本身啊不是我要解决一个什么样的我遇到的问题

大多数情况之下是先以这个商业目的为导向我怎么把它卖得更好呢好像开源是一个国内打引号啊叫商业模式啊我只要把东西开源了我就能可能会收获更多的这种客户就是他的目的和动机一开始就是不是奔着说我要做一个什么样的开源项目来的而是说我通过做一个开源项目我能达到什么什么样的商业目的来的所以这也是特别容易这个项目就是搞一半就扔了这公司就是项目调整啊

然后那个第三个呢就是我说的那种就是特别底层没有什么人去关注类似于 OpenSSL 这种项目啊

他们都是默默的在那里也不大出来说我们需要怎样的关注就导致的一个结果就是在那里被消耗被消耗被消耗一直被消耗到最后可能就很惨刚才不是想吗这个 Burning Out 会从两个角度去看一个是项目本身一个是人从我的角度来看就是我特别认同你们阿帕奇的一句话上次跟吴盛录节目的时候也单独聊过这件事情就 Community Overcode 它人其实是比代码更重要的也不是说代码不重要

代码当然很重要项目当然很重要尤其是那个非常非常大的非常厉害非常牛的项目它很重要但是你想想如果假设现在有一个非常厉害的水利工程

建成了这个水利工程之后呢将造福什么多少多少人产生多大的经济效益听起来很伟大很牛逼对吧这个假设你是一个工程师你就知道这个项目你看恰好需要人才我又是这方面领域的我参与了这个非常宏伟的项目我也予有容颜对吧然后你就参与进去了比如说你在这个地方建了一个大

大的水坝这个水坝把这个水拦住对吧会形成一大片人工的蓄水的区域那些被淹没的区域里边的人原来可能还有很多野生动物然后还有很多不能跑不能走的花草树木这些东西怎么办然后他们会受到什么样的影响他们会觉得我参与这个伟大的项目我又有容颜吗他们大概不会这样想对不对所以我更愿意想就从人的项目去聊一聊这个问题你是一个再牛的项目

你的代码总会随着技术的不断发展和迭代成为古董级的代码对吧就不会有人用你比如说现在还有人用 Ajax 吗阿贾克斯后来 GS 现在一统天下了你看还有人除了 GS 以外还用别的这个前端的就是浏览器这边的一些东西吗包括现在你看那个 Mozilla 跟谷歌他们在搞那个那个叫什么 API 的那个机制他不也改吗

你基于之前写的那些比如说 Ublock 那些东西你随着技术的一代你不马上要被淘汰掉了吗所以项目固然重要但是呢人是更重要的你这个项目你现在建的一砖一瓦你建成了一个土木结构的东西我们技术发展我们要建钢结构的钢结构混凝土的东西了那你这个土木结构你再厉害再好你也只是一个文物会存在那里而不会说

我在持续的人在这里投入修缮然后你无非也是一个文物嘛就像公共一样你去去看参观这些个文物所以从人的角度来讲呢我我就是呼吁吧我们更愿意呼吁大家呃去关注 burning out 的问题去关注人本身关注项目里边的参与者无论你是一个公司组织还是说你是一个纯个人的这种参与者然后我们回到那个我们最后一个问题啊这个到底有有什么人有多少人在关注这个肯实性发展的问题我

我的观察是没什么太多人关心这个问题我觉得这个要比原来要好很多其实也是因为最近出了一些事情之后你说的是那供应链安全的事情对 供应链安全的话其实这个故事其实大家都能想得到而且这个是跟

就很容易理解有切身的利益我觉得这块其实反而是因为出了事之后然后大家做一些反思然后去把一些资源去投到该投入的地方开发者燃尽的问题最开始其实我觉得有点矫情就是说作为一个开源的开发者其实你是要有这种意识你要有这种准备的

就是要要被人白票或者是哎我也想查语就是说这个 browt 的话最终这个结果是什么呢是说他推出这个项目会加其他项目还是说我不想写代码了还是我不开源了嗯其实不是不是不是其实我觉得他是要有一个机制其实

其实那个 Working Public 写这个书的拿点他其实在 GitHub 工作过一段时间实际上他们也做了很多访谈就是直接推动了 GitHub Sponsorship 的展开我觉得就是一个很好的一个例子就是大家用开源受益了之后实际上有人其实他是有这种想法他想去回馈的

但是呢他可能没有找到合适的路径对我就原来像工地悲剧一样就是我可能想去帮但我又不觉得我就不知道怎么帮对对对我不知道怎么出力对对吧

其实我觉得这块的话我们可能要制定行动方案的话其实我觉得更好的是从这个角度来去看一看我们能不能就是能让更多的人了解到还有这么一个途径或者有些其他的一些途径在某种程度上我们也是实现一些生产平衡能让这些可持续发展的问题能得到更多人的关注就是说我们要建立更多的正反馈的机制和渠道对

通过这种方式的话基本上是我们能直接的帮助到人而不是说就跟扣 JS 一样的哭一哭才有其实这个不是说长期能解决这个问题我们只是说要把这个现象能让更多人知道要不然我们就交一个开源税或者什么的其实是让这些项目能够更持续的发展然后不出现那些问题

对这种反馈不光是对个人我觉得对于企业内的也会有帮助因为企业的管理者也许不会知道说开源项目这件事怎么去评价它但是来自同行和来自用户的反馈如果足够多足够强烈的话他们能感觉到说这些人

做开源这件事情是非常厉害的然后甚至可能对我公司声誉有帮助然后他们做这件事情在技术上在业界也是领先的解决方案也是很好的而且很多外部的人也贡献过来虽然我们公司没有发工资他们也在支持这个项目所以不管是对于个人还是对于企业化我觉得这种所有的声音的反馈一定是都很有意义的现在也有一些商业模式然后现在就有这种公司然后他会去雇那些开源的开发者

然后以一种类似于重包的这种形式就是作为最终的用户我要出一些钱然后去根据它的使用量然后去给它做一些付费的一些操作然后去保证这个项目还能持续能到个个

持续能得到更新然后它的安全漏洞问题能够有效的得到解决从这个可持续发展的角度上来就让这个反馈链能有效的运作下去或者说我们的商业能有商业的闭环听起来我有点悲观在于说你看江老师讲的这件事情听起来就不酷了

就我只是为了活着为了生存我去维护他然后我收一点钱这可能跟我一开始想做开源那个冲动是不符合的所以我觉得个人开发者很多时候他就是留不住或者他反正他冲完这一段之后要交给其他的人去维持这个东西但很可能会

不能靠这个创始人对不一定是创始人其实创始人其实他是他做这件事情他的动机和那个维护人员去做这件事情这个东西是完全不一样的其实我们是有需要有一定的分工的然后这个时候我们的商业或者我们

所以是不是说这件事其实应该把情怀的比例降得更低一点最好是不要讲情怀我们就只讲商业这个事会更稳定我觉得大多数情况之下其实不是说是不是商业不商业的问题你比如说我迫不得已我动手造了一个轮子然后造完这个轮子之后解决完了我的问题我就要走了总得有人来接棒没有人接棒我也可以把项目直接一归档我就走了对吧我拍拍屁股走了这是我的自由我的权利

而不是说这个事情一定要你买我费让我把这个项目持续维持下去你一边给再多钱我不想维护他那又如何呢这事学校没教过我开园的时候谁教过我怎么找接班人呢

对我觉得这个是需要大家就做项目的时候你需要去考虑尤其是作为这个啊方的刚才我其实我在想啊米奇提提了这个问题就是说我一旦激情退去的时候我怎么来去维护一个是把它变成一个视野我觉得可能会是一个好的一个方向就是我可以依托于这个项目我可能能做商业化能

我可以雇一些人然后来帮我来实现这个梦想我觉得这个其实是很多人都在做的然后另外一块的话那的确我就要么我就退出反正这块的话我觉得作为激情过去之后琐碎的那种柴米油盐的这个事情其实是需要有一些其他的借助于一些其他的一些外力来去做这个可持续性的事情

OK 真的刚才我们聊到的这些跟这个开源项目也好开源人也好有关的这种 burnout 的问题以及这个可持续性的问题大家有什么自己的建议或者思考吗

我觉得前面其实也基本上是聊到比较多一点就是我们可能还是要往后看一看就是当激情退去了之后可能是一地金毛也有可能是 Community 如果能建起来的话这些事情都好说如果 Community 建不起来的话那就说撤那真的就撤掉了那个德福呢我这听着就觉得是说

最好呢在你们结婚之前就给你先告诉我这个过日子有多不容易让你们最后呢尽可能依靠这个大家族啊不要你们两个人过日子容易

有很多的这个琐碎的小的事情你依靠一个大的家族里面会有人帮你丰丹一些东西对吧你尽量的还是去做你喜欢跟快乐那一部分有些东西可以让别人去一起来平摊可能是帮你做些事情也可能是分担一些情绪价值或者去推动一些东西这最终是你牵头去建立了这个社区后来社区又支持着你去走

然后我们能够在这个过程中是积极健康的无论从物质上还是从情绪上都有足够的一个收益就哪怕走不到最后因为大环境的原因因为个人原因什么的我们也能够平稳的去结束掉这件事情我们让我们的用户都呃

妥善的去离开找到新的东西所以整件事情我觉得还是要多去科普就是开源这件事情不是代码放出去不要钱结束了它只是那一小瞬间对可能是高光的那一瞬间对其他时候只是其中的一面对如果大家有这个心理准备的话就是如果我早知道说我开一个 SDK 就会有人追着我要那么多东西的话

我会重新考虑一下这件事情我要放出来对吧但是你有这个准备之后会好很多然后你也会有意识的去引导说哎有没有你们想用哪个东西然后你们一起来加入进来啊如果有一些社区的方式能给一些帮助其实就更好了嗯就是我们可能需要的帮助也不是很多就是一些认同吧大家互相支持大家都有这个需求并且有这个动手能力的时候

对我觉得德芬那个就拿大家族比喻我觉得是特别特别好的一个事情其实你需要有一些扭断然后让大家一同来去分担这件事情这样其实就没有那么难了

就是一群人其实你可以走的更远一些对多性者速中性者远嘛那我最后也来谈一点我的感想啊我个人啊因为我个人对开源的理解是一直在变化的就比如我从最早年的时候我觉得开源是一个很神圣的东西一直到现在我发现开源就是好多的江湖我现在的看法是这样的 Brain out 的问题主要是遇到了很多负反馈

其实不光是做开源项目会这样的你就做内容本身的这个做自媒体的你不也会遇到很多负反馈吗我觉得就是第一个还是赚不到钱钱够多骂我可以哈哈

对商业化固然是一个你可能一开始不一定能解决掉的问题有可能会解决有可能会解决不掉但是呢富凡哥一定会随之而来面对富凡哥的时候你一定要清楚你有这个 CNO 的权利你如果是一个开源的个人然后不要老是用爱发电飞到最后搞得自己

怎么样对对我这种讨好型人格那种就不适合对对对对对不要干这样的事情先把这个心理问题解决了再开是是因为开源的很多开源项目的初衷就是让你永远有另外一个选择你会发现就是说这选择有选择你才自由对吧这是我今天想说的好要不我们今天都到这里跟大家说再见好再见拜拜拜拜拜拜