大厂不需要英雄

大厂不需要英雄

原始链接: https://www.seangoedecke.com/heroism

大型科技公司是靠系统运转的。这意味着,公司的主要结果------乃至整个公司的成败------都是由错综复杂的流程和激励机制决定的。这些系统不受任何个人的控制。就像庞大的代码库一样,它们是随着时间推移不断积累和演变而来的,而不是从零开始完美设计的。

这些流程和机制中,有些是"明面上的",比如 OKR 或晋升标准;有些则是"暗地里的",比如在正式做出决定前,私底下达成的共识。但无论如何,决定最终结果的是这些流程和激励机制,而不是个人的英雄主义

大厂里的"英雄"是如何诞生的

这种依靠系统运转的状态,其实不利于高效产出优秀的软件。在大厂里,好软件的诞生往往像是一场"意外",仅仅是个人在追逐激励机制时产生的副产品。但这无可避免。如果只是一个几十人的小团队,大家可以为了共同的使命,短暂地把代码质量看得比个人利益更重。但如果是成千上万名工程师,绝不可能几十年如一日地这么做。规模达到一定程度后,公司就必须依赖系统的力量。

很多工程师对这个事实感到反感。毕竟,他们 渴望写出高质量的软件。为什么周围的人看起来都那么功利,只关心自己的职业发展?更何况,很多软件工程师当初入行,就是因为他们天生有一种想要优化系统、提升效率的冲动。对这类人来说,在一家低效的公司上班会让他们浑身难受。于是,他们准备不惜一切代价去修补系统里那些局部的低效问题。

当然,提升团队效率并不总是需要"英雄救场"。改善流程、写测试、清理老旧代码------适度的优化本身就是本职工作的一部分,做好了也能像做其他工作一样得到公司的奖励和晋升。但这中间有一条界限。越过这条界限,如果你总是把时间花在所谓的"提升效率"上,而忽视了自己实际负责的项目,你就会受到惩罚,而不是奖励。敢于越过这条界限,为了"好的工程质量"而牺牲自己职业发展的人,就是所谓的英雄

大厂不需要英雄

你当然可以牺牲自己的晋升和奖金,让公司某个不起眼的角落短暂地高效运转一段时间。但是,正如前面所说,公司的整体走向几乎从来不是由一个人决定的。如果整个产品注定要失败,你把 Google Wave 团队的某个小模块优化得再好也没有意义。反过来,哪怕是管理得很糟糕的软件团队,只要他们做的事情踩中了公司重点支持的业务方向,他们通常也能赢(想想大多数赚钱的企业级软件的代码质量就懂了)。

更重要的是,英雄主义会让真正的变革难以发生 。如果公司的系统本身就是奖劣罚优,而此时有英雄站出来做了好事却受到惩罚,这只会掩盖公司系统本身的缺陷,让公司感受不到后果。倒不如让公司为自己的失误付出代价,这样它才能(非常缓慢地)自我调整,或者干脆被运作得更好的公司淘汰掉。

......但大厂会压榨英雄

虽然长远来看大厂不需要英雄,但英雄依然有其角色定位------那就是被压榨 。公司里从不缺掠夺者 (predators),他们非常乐意招募英雄来为自己谋取短期利益。

有些产品经理心里有一份其他团队工程师的名单,这些人被视为"容易下手的目标":他们很容易被忽悠去干额外的活儿,而这些项目只对产品经理有利,对工程师自己毫无帮助。在项目上线前的紧张时期,不同产品线之间有时会爆发"冷战",大家都在死死护住自己团队的开发资源,同时又试图从别人的阵营里忽悠工程师来给自己做幕后苦力。

同样,有些主管也很乐意让手下的工程师把所有时间都花在"胶水工作" (glue work) 上。这些协调和打杂的工作本来应该是主管的责任,工程师干了,主管就轻松了。当然,到了晋升评估的时候,这位工程师会因为没有完成核心的开发工作而受到惩罚。

这就是为什么工程师必须关注实际的奖励。晋升、奖金和加薪是软件公司的硬通货。把这些发给谁,就代表公司真正看重什么。"掠夺者"通常控制不了这些硬通货(如果他们能控制,就不叫掠夺者了)。因此,他们只能另辟蹊径,利用英雄们"想要发挥作用"或"想要清理低效代码"的内在冲动来占便宜。

总结

  • 大型科技公司的组织结构天然容易诱发工程师的英雄主义行为。
    • 这在很大程度上是个意外。大厂的规模太庞大了,个人的英雄主义根本无法对其产生实质性影响,所以英雄主义对大厂的长远发展并没有什么好处。
    • 然而,大厂里的一些主管和产品经理已经学会了为了个人利益,去压榨这些过剩的英雄主义。
  • 作为一名软件工程师,你应该克制住那种想要"英雄救场"般去修补组织明显低效之处的冲动。
  • 除非这项工作得到了公司明确的奖励,否则你的所有努力,只会延缓公司被迫去改变流程的时间。
  • 一定程度的低效就是大型科技公司的常态。
    • 这是它们规模庞大所必须付出的代价(作为回报,它们获得了规模效益和"清晰度" (legibility))。
    • 你越能学会与这种低效共存,就越能把精力策略性地用在对自己有利的地方。

补充:这篇文章在 lobste.rs 上获得了一些很好的评论。排名第一的评论理性地指出,一点点"英雄情结"可以促使工程师承担有野心的项目,从而获得巨大的职业回报。没错!但这并不是我在这里所写的"英雄主义",因为它不需要牺牲(只需要承担风险)。另一位评论者指出,英雄往往从不向别人吹嘘自己做过的工作,这与我的经验非常吻合。



如果你喜欢这篇文章,可以考虑订阅获取我新文章的邮件推送,或者[在 Hacker News 上分享](news.ycombinator.com/submitlink?... tech companies don't need heroes)。下面是一篇带有相同标签的相关文章预览。

抓住最关键的事情 (Getting the main thing right)

当你在科技公司负责一个项目时,明白你的首要任务是把项目交付上线 ,这会让你少走很多弯路。太多工程师把时间花在边缘问题上(比如选技术 X 还是技术 Y),而关于如何交付产品的核心问题(比如所有关键路径到底该怎么跑通)却还是个未知数。
继续阅读...


相关推荐
Baihai_IDP6 小时前
HackerNews 热榜第一名:AGI 的 A,原来代表的是 Ads(广告)
人工智能·程序员·llm
kymjs张涛6 小时前
借助 API 手写一个 Transformer 架构
程序员
SimonKing8 小时前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
小兵张健20 小时前
Antigravity 403 账号可用了!!!
程序员
程序员飞哥1 天前
Block科技公司裁员四千人,竟然是因为 AI ?
人工智能·后端·程序员
我要改名叫嘟嘟1 天前
年后上班三天之后,忽然想作的一次记录
人工智能·程序员
兔丝1 天前
拒绝被“背刺”!用Python Flask打造友情链接监控工具,守护博客推广成果
程序员
CodeSheep1 天前
同事去年绩效是C,提离职领导死活不让走,后来领导私下说他走了,就没人背这个绩效了
前端·后端·程序员