裸辞的真相

2024-09-16

没忍住发出来了,哈哈,不吐不快,不好意思。

正好前几天有同事在公司群里说,“我们是一群热爱游戏的传统游戏开发者,区块链跟我们没关系”(他说的话跟我工作一年以来对公司的感受相符)。这样气质组合起来的一家公司,怎么可能搞得好 web3 呢?

而新来公司两个星期的同事,也已经意识到了某些问题……

这些内容不方便写到博客里去,《裸辞了 》中提到的内容都是比较空洞、表面的。而真正裸辞的原因涉及到太具体的人和事,只有当这些人和事成为“过去”的时候,我才能把内容发布出来。

如果这些内容过早发出来,我觉得会带来的影响是:

所以我现在先写到私有的 notes 里,也许一年后等所有事情过去,再发到博客上。这篇文章的内容完成于 2024年09月03日。至于什么时候会 publish 出来,我也不知道。

总体来说,裸辞是因为我和上级之间存在一些意见上的不和,这些不和并没有体现在表面上,没有发生语言或者其他任何形式的冲突,仅仅是在埋藏在我心里,所以我积怨已久,直到某一天选择裸辞——这也是我能想到的最体面的退场方式了。

既然我说长时间忍受了一些痛苦的工作,那这些具体的工作是指什么,引发裸辞的最后一根稻草又是什么?

“你看看吧” (一)

“你看看吧”这句话令人印象深刻,也是这句话引发了辞职的念头。这话发生在什么场景呢?

我的内心OS:我看什么?我已经把问题的前因后果以及解决方法说出来了,我看什么?我再看 10 分钟也不会改变想法,再看 10 天也不会改变想法,我看什么?我已经把能说的都说了啊?

举个更浅显一点的例子:

我看什么?1 加 1 不等于 2 吗?你有其他答案吗?如果不是 2,你就告诉我我说的是错误的。如果等于 2,你就告诉我我说的是正确的。我再看 100 年我的视角里 1 加 1 也是等于 2,我看什么?我已经回答了问题并且把我的结论确定下来了,我看什么?

我经历了很多次 “你看看吧” 的场景,每一次都感觉特别无语,我总是觉得 “我不知道你在说什么” 。

“你看看吧” (二)

“你看看吧” 的另一个含义是,我觉得我在浪费时间不知道看什么。

具体事情是网络上需要部署一个 USDC 合约,关键是这个合约的 owner 权限、admin 权限、各种权限最终都不可能是我控制。在我看来就只是部署一个合约的事情,然后反复的 “让我看看”。我看什么?这个合约最终一定是他来操作,具体调用某个函数来进行一些操作,那我看什么?我看着玩?我看完了以后讲一遍?关键是他不会单纯相信我说的,为什么不自己看?

软件的 Benchmark (一)

压垮骆驼的倒数第二根稻草,是一个做测试软件性能数据的工作。这件工作我甚至没有写到简历上,因为我感觉确实没做什么,不值得写。

网络用了 5 种以太坊的客户端,这项工作的内容,是测试这 5 种客户端执行 EVM 指令的速度,通过统计每秒钟的 Gas 消耗量来进行对比。到这里其实还没什么问题,关心 EVM 性能明明是一件有意义的事情。

但让我不能理解的是,进行这项工作的本意并不是关心 EVM 的性能,而是想到深入到具体的 function 上,定位到某个客户端的某一个功能模块的某一个函数,对比在语言层面写法上带来的性能差异,调用了多少 CPU 或者占用了多少内存,甚至用了哪种架构的指令集这种。对于他来说,物理机器方面的性能指标是非常重要的。

那么我为什么会对此表示不能理解呢?因为关注太过底层方面的性能,和区块链就完全无关了。任何一个软件,任何用 Go 语言或者 Java 或者什么语言写的软件,都可以有 Benchmark 来测试某些方面的性能,都可以来对比什么 CPU、内存、磁盘的占用情况,都可以进行指令层面的优化。但是这一切,都和区块链无关。

那什么性能指标和区块链有关?我举几个例子:

在我看来,有许许多多区块链领域、区块链行业方向的性能问题可以去关心,而上级选择了一个和区块链完全无关的方向,并且接下来一段时间,可能是几个月、甚至一年的工作,都会围绕这个和区块链无关的 Benchmark 展开,让我觉得实在无法忍受,我没法再继续作为他的下属来给他完成这些工作了。

而作出这个选择背后的原因,我说的稍微过分一点,是他其实不懂区块链开发。整家公司是一家游戏公司,他本人也是做游戏开发出身,根本不具备区块链方面的技术基础,也不会从区块链开发的角度去思考问题、从而决定下一步的工作内容。

如果一个人非常懂区块链,在许许多多事情中挑了一件和区块链无关的工作,我是非常接受的,因为这么选择一定有更深层的原因。而如果一个人不太懂区块链,就选择了一件和区块链无关的事情,因为在这方面自己比较擅长、工作内容和工作成果可控,这种模式我是有点难以接受的。

其实从加密货币用户的交易,关心的问题就两个:手续费能不能更低?交易速度能不能更快?

现在的区块链根本没有成熟到体系已经完整、去拼谁少占用了 2GB 内存的阶段。如果一条链具有各方面优势而仅仅只是对硬件性能稍微高,不会有人否认这条链。如果一条链不行,哪怕用再低的硬件资源,又能吸引多少开发者和用户呢。

软件的 Benchmark (二)

面对上述这种情况,我有没有提出过自己的想法呢,我为什么选择辞职,而不是和上级好好沟通,说服对方并且进行一些我提到的方向上的工作呢?如果我无法说服别人,是否证明我是错的?

首先我有可能是错的。其次不知道大家有没有一种感觉,就是很难让一个不懂的人明白你懂,并且相信你。再深入一点,想让一个不太懂的人能够站在懂的角度思考问题,是不太可能的事情。

在日常的工作中,我已经很多次感受到两点:1.他的思路和我不一样;2.他不相信我。所以我后期没有太多尝试去改变什么。

举例来说,比如我提到过在网络中提高 ENS 的使用。其实公司有很好的用户基础,都是游戏玩家,把 ENS 用上我觉得是挺有意思的一件事情,比如把游戏身份和 ENS 绑定起来。Vitalik 曾经说 ENS 是以太坊上非金融领域最成功的 DAPP,前段时间 Base 网络也正是推出了由官方运行的 ENS 服务。很多钱包里也可以看到,现在凡是搞链的都会搞一搞 ENS,大家都在搞。那么我上级的说法是什么呢,“即使是 web2 领域,需要域名的也只是少数”,因此这件事情是没有任何后续的。

再举个例子就是我提到过更多的使用 DAO,同样是因为有那么好的用户基础,一批真实的游戏玩家,DAO 简直太合适了,其他链想用都没地方用。ATOM 在钱包里直接集成了根据 ATOM 持有量来对提案投票的能力,Cardano 两天前完成的 Chang 大版本升级最大的宣传点,就是“链上治理”(我没了解这个词的含义)。总之 DAO 是一个挺有意思的东西,但是这个方向在上级眼里仍然是不值得被关注的方向。

再比如,我提到可以在 Benchmark 中增加对共识层投票效率方面的数据,他的说法是,“咱们也不关心这个啊”。(从这里就可见工作内容的出发点是他本人的兴趣,而不是公司或者行业或者某些外部需要,也不是什么技术方面的逻辑。当然人家是老板/CTO/Cofounder,想做什么事情还不是人家说了算吗)

以及其他一些事情,总之因为经历过许多次,所以后期并不期望他会接受我的提议,去做某些方向的工作,而是我直接选择了辞职。

软件的 Benchmark (三)

还有一个事情是关于网络的 Solo Staker。网络使用了以太坊的客户端,所有机制和以太坊一样,也就有 Solo Staker 的问题。他采用的方式是,将网络原生的质押收益率翻倍,原先是 12% 的收益率,有额外奖励后变成了 24%,以此来鼓励更多的人加入到 Solo Staker 的行列,让网络变得更加去中心化。

在质押刚上线的时候,社区里有人质疑为什么收益率才 15%(刚上线的时候)这么点,当时他的态度是,这个收益率已经很高了,不能和那些人一般见识。

我也提到过要不要举行一种一次性奖励形式的活动,比如成功成为质押者就奖励一点钱那种,单靠收益率是不可能吸引到人的,举办一场活动也许还能有一些留存的用户,至少让大家能玩起来。当然结果就是,只要不是他自己提出的想法,就是没有后续的。

24% 的收益率高吗?中规中矩吧。Polkdot 在钱包里直接质押的收益率是 17%,Cosmos 在钱包里直接质押的收益率是 15%。这是在完全不需要额外技能以及硬件服务器资源的情况下,加上钱包已经抽取手续费之后的数值。其他乱七八糟的高收益率小币种就不用提了。而且 DOT 和 ATOM 的价格一定比小币种的价格稳的多,作为一个想赚点利息的 crypto 用户,我会选择哪种方式来进行质押呢?

这个问题本身不重要,重要的是说明他本人不是 crypto 用户,我盲目猜测,他没有炒币方面的经验。如果和传统金融行业的利息率相比,15% 的收益绝对很高,但这是 crypto 行业,比特币都能一天涨跌 10%,何况是小币种呢。在这样的前提下,一个不是 web3 用户的人,是无法成为 web3 行业好的 builder 的。这个道理就类似于,有人吐槽很多链游公司不可能做出好游戏,因为那些人不喜欢玩游戏,也不懂做游戏,怎么可能做得出好游戏呢?同样的道理,不是 web3 行业的玩家,又怎么能构建出更好的 web3 世界呢?

信任问题(一)

在具体的工作方面,也存在一个长期让人不爽的地方,就是当工作遇到问题的时候,他会优先怀疑你而不是怀疑软件。

比如,当使用某个软件的时候,我说这个软件用参数 a 会运行异常,所以建议暂时不要用参数 a。当我把这个问题告诉他后,他的第一反应不是接受 “暂时不要用参数 a” 这个建议,而是首先怀疑 “是吗?你是怎么操作的?具体日志是什么?”

还有的时候我说这里有问题那里有问题,他会直接说 “不可能,那么大一个软件,肯定是你的使用方法有问题”。

我好奇的一点是,抛开开发者的身份,我哪怕作为一个普通的用户,去使用一个开源软件,我按照软件的文档操作然后遇到了问题,那是我的问题吗?对于用户有可能遇到的异常,软件本身应该发出提醒,对于用户有可能的配置错误,软件应该作出容错的处理。如果是软件本身的逻辑问题,那就更和我无关了。

然后经常出现的情况是,我说通过 a->b->c->d 四个操作步骤后,我提议 a 方案解决或 b 方案解决。这个场景下问题就来了,因为他会优先怀疑我而不是怀疑软件,要么他自己亲自操作一遍所有步骤,遇到了相同的问题,要么我把所有步骤操作的详细过程截图给他看,把整个运作流程说清楚,再结合他自己查一堆资料,他才会相信确实会出现问题,然后开始讨论怎么解决。而我从一开始就提出了解决方案。

这样的模式下,解决问题需要花费成倍的时间和精力,简单来说就是我了解一遍然后他了解一遍,时间是两倍,而且在他了解的过程中我还需要陪同作出一些解释,详细描述我的操作和对问题的理解。而这些冗余的过程,对于解决问题几乎没有帮助,解决的只是让他相信 “软件确实存在问题” 这个问题。

所以到后来我就明白了,我自己得出的结论他是不会信的,我到后面直接就放弃思考、放弃得出结论了。我也学会了,如果他需要让我做什么事情,我会从一开始就保留操作记录,有问题直接丢截图、找到具体的代码位置给他,把能找到的周边资料都发给他,而不是自己的出结论,更不会自己去浪费脑力思考解决方案。既然最终解决问题的前提是需要他完全理解整个问题,那为什么不从一开始就由他自己来发现问题呢?(也可能是我这种做法的缘故,他才开始说 “你看看吧”)

而这种不信任的做事模式,还会给我带来两个副作用:1.做事没有成就感;2.没有责任方面的负担。既然他事必躬亲,事实上所有大大小小的决定都是他作出的,那么我其实没有选择的余地。没有成就感是一方面,另一方面是我不需要这方面的责任心,不是我做的决定就不需要我承担责任,后续产生问题也和我无关了。但是,但是,不需要承担责任难道不是好事吗?问题在于,他会要求你明白事情的前因后果、了解事情有可能出现的问题、希望你以责任人的身份去思考问题,而并不会给你真正承担责任的机会。(这也就引起了我最近在吐槽工作的时候老说 “关我啥事?”)

所以在信任方面,我始终是感受到存在很大问题的。他可能会说信任你,但是这种信任在我看来,是对 “我会认真工作” 的信任,而不是对 “我的技术决策是正确的” 的信任。

提到信任,我想起在我提离职后,他也发出过试图解决问题、挽留人的态度,说挺相信我、认可我之类。在我看来,这种相信和认可都是对于 “我会负责任工作”、“我会勤奋工作”、“我会加班工作” 这些方面,并不是相信和认可 “我的技术理念”、“对某些问题的理解”、“面对问题会作出的决策” 等。所以这种信任和认可算是好事吗,也许算吧。

打个比方来说,我家里养了一头牛(我还真是属牛),这头牛勤勤恳恳干活,从来没有过抱怨。我对这头牛说,我很欣赏你,相信你会认真完成好你的工作,希望你能一直给我干活。这种认可牛听了会开心吗?简直是骂人好吧,奴隶当惯了?牛也许会想,凭什么我不是人?如果牛发明了一种耕地的机器,不但工作的效率增加了,牛自己还变得轻松了,这个时候我去夸奖我的牛,牛才会真的开心吧。

信任问题(二)

信任问题和 “你看看吧” 相结合的场景,比较典型的问题是,当一个方案不可行,我怎么证明这个方案不可行?

家人们谁懂啊,你们理解这种奔溃吗,一种做法不可行,我怎么证明这种做法不可行?如果一种做法可行,我把它做出来了,我就证明这件事情完成了。如果一种做法不可行,那要我怎么证明?我应该作出什么样的行为,才能证明方案不可行这一点?不可行我看什么?

结语

我想说的都在这里了。希望不会给我带来不良的影响。带来了也没办法。我还是会说出我想说的话。

虽然我表达了种种对公司和上级的不满,但我本身并没有敌意,其实我还是希望上级能够招到称心如意、志同道合的员工,来继续发展项目和网络,只不过那个人不是我。

补充(2024.09.08)

关于裸辞的的时间,在我来看也是比较突然的,背后的大概逻辑是,提出辞职的时间点差不多是我入职刚满一周年的时间。

相信公司从我入职起就对我抱以某种方面的信任——否则公司不会让我入职的,那么我也用至少一年的工作时间来完成了对公司信任的回报,至于是否值得就看公司怎么想了。我想我已经做了所有能做的事情,而接下来公司几乎没有我能做的事情了,辞职是我唯一的选择。

其实说再多裸辞的原因,把各种理由一一列举出来,也无非是找足理由去支撑自己选择裸辞的这一决定,而这个决定是对是错,我自己也没底。要离职没太大悬念,形式上是不是裸辞也无关紧要,主要没底的还是自己对公司前景(web3 方向)的判断。