Why I Quit Google to Work for Myself

Michael Lynch

我为什么辞去 Google 的工作,选择为自己工作

过去四年里,我一直在 Google 担任软件开发工程师。2 月 1 日,我辞职了。原因是他们拒绝给我买圣诞礼物。

好吧,我想事情其实比这稍微复杂一点。

最初的两年

工作两年后,我热爱 Google。

在年度员工调查中,当被问到我是否预计五年后还会在 Google 工作时,答案显而易见。

当然,五年后我还会在 Google。我身边是世界上最优秀的工程师,使用着世界上最先进的开发工具,还吃着世界上最“免费”的食物。

我在 Google 的典型一天

我最近一次的绩效评级是“远超预期”。只要继续这样干下去,我很快就会晋升到下一级:高级软件工程师。多棒的头衔啊!此后的职业生涯里,我都可以说:“是的,我曾经是高级软件工程师。在Google。”人们一定会对我刮目相看。

我的经理向我保证,晋升已经近在眼前。他认为我已经有能力完成高级工程师级别的工作,只是需要一个合适的项目来向晋升委员会证明这一点。

你的经理不能给你升职?

没错,Google 的经理不能给自己的直接下属升职。他们甚至没有投票权。

相反,晋升决定来自由高职级软件工程师和经理组成的小型委员会,而在决定是否给你升职的那一天之前,他们甚至从未听说过你。

你需要整理一份“晋升材料包”:其中包括队友写的推荐信、你创建的设计文档,以及由你撰写、用于说明为什么你的工作值得晋升的小文章。

晋升委员会随后会把你的材料包和其他几个人的材料放在一起审阅,并花上一整天决定谁能晋升、谁不能。

在我为期两年的蜜月期里,这套制度听起来很棒。当然,我的命运就应该掌握在一个从没见过我的神秘委员会手中。他们不会受到任何偏袒或办公室政治的影响。他们会看穿这一切,凭我的高质量代码和精明的工程决策来认可我。

但事情并不是这样运作的

在准备第一份晋升材料包之前,我从来没有想过这一切在实际操作上是如何运转的。

在我的想象中,晋升委员会是一个全知且公平的实体。只要我每天选择正确的问题去解决,让代码库变得更好,并帮助团队高效执行,晋升委员会就会神奇地知道这些,并因此奖励我。

不出所料,事情并不是这样运作的。我花了两年才弄明白这一点。

天真地工作

在那之前,我的主要职责是维护一个遗留的 data pipeline(数据管道)。它已经处于维护模式多年,但负载增加了,这条管道开始不堪重负。它经常悄无声息地崩溃,或者生成错误的输出。由于自最初的设计规范以来就没人为它编写过文档,因此每次故障都要花上好几天才能诊断出来。

我自豪而又悉心地把这条管道救了回来。我修复了几十个 bug,并编写了自动化测试,确保它们不会再次出现。我删除了数千行已经废弃、或可以由现代库替代的代码。我一边了解这条管道,一边为它编写文档,这样组织知识就能被队友获取,而不是只封存在我的脑子里。

但我在晋升时发现,问题在于这些事情都无法量化。我无法证明自己做的任何事情对 Google 产生了积极影响。

没有指标,就等于没发生

这条管道没有记录多少指标。已有的那些指标反而让情况看起来变糟了。我发现 bug 后,整体 bug 数量增加了。由于我让管道在出现异常时快速失败,而不是悄悄地传递错误数据,管道的故障次数增加了。我大幅缩短了开发人员修复这些故障所花的时间,但没有任何指标记录开发人员耗费的时间。

我的其他工作在纸面上也不太好看。有好几次,为了帮助一位上线工作面临风险的队友,我把自己的项目搁置数周甚至数月。这对团队来说是正确的决定,但放在晋升材料包里却显得毫不起眼。对晋升委员会而言,我队友的项目才是那项重大而重要的工作,需要多名开发人员协调配合。如果他们能把我哄骗来帮忙,这就证明了他们拥有出色的领导能力。而我只是一个没有头脑的小喽啰——我的工作无关紧要到随时都可以被打断。

我提交了第一份晋升材料包,结果正如我所担心的:晋升委员会说,我没有证明自己能够处理技术复杂性,他们也看不出我对 Google 产生了什么影响。

向晋升委员会为自己申辩

从被拒中吸取教训

被拒是一次沉重的打击,但我没有气馁。我觉得自己的表现已经超过了当前职级,只是晋升委员会没能看出来。这是可以解决的。

我认定自己在头几年太天真了。我没有在一开始做好足够的规划,确保自己做的工作能留下书面记录。现在我已经了解了这套流程,可以继续做同样有价值的工作,只是要更好地留存记录。

例如,由于误报,我们团队收到了大量令人分心的邮件提醒。过去的我会直接修复这些提醒。但现在我知道,要让这项工作出现在晋升材料包中,我应该先设置好指标,以便留下提醒频率的历史记录。到了晋升时,我就能拿出一张看起来很有说服力的图表,显示提醒数量呈下降趋势。

不久之后,我被安排负责一个看起来注定能带来晋升的项目。它高度依赖 machine-learning(机器学习),而这在 Google 当时以及现在都是热门技术。它会把数百名人工操作员手动完成的任务自动化,因此对 Google 的影响清晰而客观。项目期间我还需要带领一名初级开发人员,这通常也能赢得晋升委员会的加分。

节日礼物敲响警钟

几个月后,Google 终止了长期以来向所有员工赠送奢华节日礼物的传统,此事登上了新闻头条。他们没有把礼物预算花在礼物上,而是购买了伪装成慈善的广告Chromebooks,送给贫困学校的孩子。

不久后,我听到了两名员工之间的以下对话:

员工 A:实际上你还是得到了礼物。这样的削减会提高 Google 股票的价值。你可以卖掉股票奖励,然后买任何你想要的礼物。

员工 B:如果我告诉妻子我不打算给她买圣诞礼物,但她可以用我们银行账户里的钱买任何她想要的礼物,你会怎么想?

员工 A:你和 Google 是商业关系。如果你因为 Google 没有像你对妻子那样用礼物来“追求”你而感到失望,那你对这段关系的理解就是错的。

等一下。和 Google 的确是商业关系。

听起来可能很奇怪,我竟然花了两年半才意识到这一点,但 Google 很擅长在组织内部营造社区感,让我们觉得自己不只是员工,而且就是 Google。

那段对话让我意识到,我不是 Google。我为 Google 提供服务,换取报酬。

既然 Google 和我之间的商业关系是为了服务双方各自的利益,那我为什么要把时间花在所有这些服务于 Google 利益、而不是我自身利益的任务上?如果晋升委员会不会奖励修复 bug 或支持团队的工作,我为什么还要做这些事?

以晋升为目标进行优化

第一次晋升被拒教会了我错误的一课。我以为自己可以继续做同样的工作,只是把它包装得更符合晋升委员会的口味。其实我应该反过来:弄清楚晋升委员会想要什么,然后专门做那类工作。

我采取了新的策略。每开始一项任务前,我都会问自己,这件事是否有助于证明我应该晋升。如果答案是否定的,我就不做。

我对代码质量的标准从“我们能否在未来 5 年维护它?”降到了“它能否撑到我晋升?”除非 bug 会危及项目上线,否则我既不提交也不修复。我设法摆脱了所有维护工作的责任。我不再主动报名参加校园招聘活动。我原本每周进行一到两次面试,后来变成了一次也不做。

然后我的项目被取消了

优先级发生了变化。管理层把我的项目换给了印度的姊妹团队。作为交换,那支团队给了我们他们的一个项目。那是一个没有文档、构建在已弃用基础设施上的系统,但它仍然是生产环境中的关键组件。我的任务是把它从姊妹团队的代码中拆解出来,迁移到新框架,同时确保它继续在生产环境中运行并达到性能指标。

就晋升而言,这让我倒退了好几个月。由于我没能为被取消的项目发布任何成果,在它上面花费的两个月就等于白费。我光是熟悉继承来的系统就要花上几周,而维持它正常运行的苦差事还可能再耗掉我几个月。

我到底在做什么?

这是六个月内我的经理第三次在项目进行到一半时重新给我分配任务。每一次,他都向我保证,这和我的工作质量无关,而是因为高层管理策略或团队人员编制发生了变化。

这时,我退后一步,从更高的层面评估正在发生的事情。别管我的经理,别管他的经理们,也别管晋升委员会。假如把问题简化为我和 Google 两方,那我们的“商业关系”到底发生了什么?

Google 一直告诉我,只有看到我完成一个项目,才能评判我的工作。与此同时,我根本无法完成任何项目,因为 Google 总是在项目中途打断我,把新的项目分配给我。

这种互动简直荒谬。

Google 晋升委员会式的图书出版流程

我的职业生涯被一个不断变化、匿名的委员会支配着,而他们一生中只会花一个小时考虑我。那些我无权参与的管理决策,抹去了我数月来的职业进展。

最糟糕的是,我并不为自己的工作感到自豪。我不再问自己:“我该如何解决这个棘手的问题?”而是在问:“我该如何让这个问题在晋升时看起来很棘手?”我讨厌这样。

即使我获得了晋升,又会怎样?普遍的看法是,每次晋升的难度都比上一次呈指数级增加。要继续推进职业生涯,我就需要负责范围更大的项目,还要和更多合作团队协作。但这只意味着项目可能因为更多我无法控制的因素而失败,白白浪费我数月甚至数年的生命。

还有什么选择?

大约在这时,我发现了 Indie Hackers。

Indie Hackers 网站截图

这是一个面向小型软件企业创始人的在线社区。重点是“小型”。这里的人不是梦想成为 Zuckerberg 的创业者,而是想建立规模适中、能够盈利并足以支付生活开销的企业。

我一直对创办自己的软件公司感兴趣,但我所知道的只有硅谷创业道路。我以为做软件创始人意味着大部分时间都要筹集资金,剩下的时间则要担心如何吸引下一百万名用户。

Indie Hackers 展示了一条颇具吸引力的替代道路。大多数成员用自己的积蓄创业,或者把企业作为全职工作之外的副业。他们不需要向投资者负责,当然也不必向匿名委员会证明自己。

当然,这也有缺点。他们的收入没那么稳定,面临的灾难性风险也更多。如果我在 Google 犯了一个让公司损失 1000 万美元的错误,我不会承担任何后果。我可能会被要求写一份 post-mortem(事后复盘),然后大家会庆祝这是一次学习机会。对这些创始人中的大多数来说,一个 1000 万美元的错误就意味着企业倒闭,以及数辈子都还不清的债务。

Indie Hackers 上的创始人之所以吸引我,是因为他们掌控着局面。无论他们的企业取得巨大成功,还是停滞多年,做决定的人都是他们自己。在 Google,我感觉自己连项目都无法掌控,更不用说自己的职业发展或团队方向了。

我思考了几个月,最终做出了决定。我想成为一名 Indie Hacker。

离开前的最后一件事

我在 Google 还有未竟之事。在晋升上投入了三年后,我讨厌自己一无所获地离开。距离我可以再次申请晋升只剩几个月,于是我决定再试最后一次。

在绩效周期结束前六周,我的项目又一次被取消了。

实际上,整个团队都被取消了。这在 Google 已经常见到有了一个委婉说法:defrag(碎片整理)。管理层把我们团队的项目转给了印度的姊妹团队。我和队友们都不得不从头开始,在公司不同的部门重新工作。

我还是申请了晋升。几周后,我的经理向我宣读了结果。我的绩效评级是“卓越”,这是最高分,每个周期大约只有 5% 的员工能获得。晋升委员会指出,在过去六个月里,我清楚地展现了高级工程师级别的工作能力。毫不巧合的是,这正是我以晋升为目标进行优化的那几个月。

但是,他们认为六个月还不足以形成足够长的记录,所以……下次好运吧。

我的经理告诉我,如果再保持六个月同样高质量的工作,我晋升的机会很大。我不能说自己没有动心,但那时的我已经连续两年听到“六个月后很有希望晋升”这句话了。

是时候离开了。

接下来做什么?

当我告诉别人我离开了 Google,他们都以为我一定有某个绝妙的创业点子。只有傻瓜才会离开 Google 软件工程师这样舒服的工作。

但我确实是一个没有任何点子的傻瓜。

我的计划是每次花几个月尝试不同的项目,看看有没有哪个能发展起来,例如:

  • 继续开发 KetoHub,看看能否让它盈利
  • 基于 Sia(这项分布式存储技术我曾多次撰文介绍)建立一项业务
  • 花更多时间写作,并寻找靠写作赚钱的方法

Google 是一个很棒的工作场所,我在那里学到了宝贵的技能。离开很困难,因为我还有更多东西要学,但像 Google 这样的雇主永远都会存在。而我并不总是有自由创办自己的公司,所以我很期待看看这条路会把我带向哪里。

后续更新


插图:Loraine Yow(洛林·尤)。

原文由 Michael Lynch 发布

本文章由 openai/gpt-5.6-luna 进行翻译