Why I Quit Google to Work for Myself

Michael Lynch

我为什么辞掉谷歌的工作,选择单干

原文由 Michael Lynch 发布,订阅该博客

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

好吧,事情当然没那么简单。

头两年

入职两年时,我深爱着谷歌。

每年一次的员工调查问我是否觉得自己五年后还会留在谷歌时,我想都不用想。

当然还会留在谷歌。身边全是世界上最顶尖的工程师,用着世界上最先进的开发工具,吃着世界上最丰盛的免费大餐。

我在谷歌的典型一天

我最近一次的绩效评级是“显著超出预期”。只要继续保持,我很快就能晋升到下一级:高级软件工程师。多棒的头衔啊!此后整个职业生涯,我都可以说:“是的,我曾是高级软件工程师,在谷歌。”人们一定会刮目相看。

我的经理向我保证,晋升已经近在眼前。他认为我已经具备了高级工程师的能力,我只需要一个合适的项目,向晋升委员会证明自己。

你的经理不能决定你晋升?

不能,在谷歌,经理无法提拔自己的下属,甚至连投票权都没有。

晋升决定由一个个小型的委员会做出,成员是那些高级软件工程师和经理,他们在此之前甚至从未听说过你,直到决定你晋升的那一天。

申请晋升需要准备一份“晋升材料”:包括同事的书面推荐信、你撰写过的设计文档,以及你为阐述自己为何值得晋升而写的小论文。

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

在入职头两年的蜜月期里,我觉得这个制度棒极了。我的前途当然应该掌握在一个从未谋面的神秘委员会手里。他们不会受到任何人情或政治因素的干扰,能够透过表象,看到我高质量的代码和精明的工程决策。

但实际并非如此

在准备第一份晋升材料之前,我从未想过这套流程在实际操作中到底是怎么运转的。

在我想象中,晋升委员会是一个无所不知、绝对公正的存在。只要我每天选对问题去解决、不断改进代码库、帮助团队高效执行,晋升委员会就会神奇地知晓这一切,并给予我回报。

不出所料,现实并非如此。我花了两年才明白这一点。

天真地工作

到那时为止,我的主要职责是维护一条陈旧的数据流水线。它已经多年处于维护状态,但随着负载不断增长,流水线开始不堪重负。它经常无声无息地崩掉,或是产出错误的结果。每次故障都要花上好几天才能定位,因为自最初的设计文档之后,就再也没有人写过任何文档。

我满怀自豪、细心地把这条流水线从病危中抢救了回来。我修复了几十个缺陷,并编写了自动化测试来防止它们再次出现。我删除了数千行无用代码,或是用现代化的库替换掉它们。我一边学习一边为流水线补充文档,让这些知识不再只封存在我脑中,而是团队所有人都能共享。

问题在于,正如我在申请晋升时才发现的,这些工作都无法量化。我无法证明自己做的任何事对谷歌产生了积极的影响。

没有指标,就等于没做

那条流水线本身几乎没有记录什么指标,仅有的几个指标反而让情况看起来更糟了。我发现的缺陷让总缺陷数上升了;流水线的失败次数也变多了,因为我把它改成了遇到异常就快速失败,而不是默不作声地继续传递错误数据。我大幅缩短了开发人员修复故障所需的时间,但根本没有指标去统计开发人员的时间。

我的其他工作在纸面上也不好看。有好几次,我把自己的项目搁置数周甚至数月,去帮助一位发布进度岌岌可危的同事。这对团队来说是正确的决定,但在晋升材料里却毫无亮点。在晋升委员会看来,同事的项目才是需要多名开发者协作的重大项目。如果他们能把我骗去帮忙,那正说明他们领导力出众;而我不过是个无足轻重的小卒,自己的工作随时可以被叫停。

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

向晋升委员会申辩

从被拒中吸取教训

这次被拒是个沉重的打击,但我并没有气馁。我觉得自己的表现已经超出了现有职级,只是晋升委员会看不到而已。这个问题是可以解决的。

我认定自己在头两年太天真了。事先没有做好规划,确保自己做的工作能留下书面记录。既然现在明白了流程是怎么回事,我就可以继续做同样出色的工作,只是要把记录做得更好。

举个例子,我的团队当时因为误报收到了大量烦人的邮件提醒。以前的我会直接去修好这些提醒。但现在我明白,要想让这项工作体现在晋升材料里,我应该先建立指标,记录告警频率的历史数据。到晋升时,我就能拿出一张漂亮的、呈下降趋势的图表。

不久后,我被分配到一个看似注定能帮我晋升的项目。它重度依赖机器学习——当时是、现在依然是谷歌最热门的方向。它要把数百名人工操作员手动完成的任务自动化,因此对谷歌的影响清晰、可量化。项目还需要我全程带领一名初级工程师,这在晋升委员会那里通常也能加分。

节日礼物带来的警醒

几个月后,谷歌登上了新闻头条,原因是它终结了向全体员工赠送丰厚节日礼物的悠久传统。取而代之的是,他们把礼物预算用来为贫困学童购买打着慈善幌子的广告 Chromebook。

不久后,我目睹了两位员工之间的这样一段对话:

员工 A:你其实还是拿到礼物了。这种节省会推高谷歌的股价,你可以卖掉股票去买任何你想要的礼物。

员工 B:如果我跟我妻子说,我今年不给她买圣诞礼物了,但她可以用我们银行账户里的钱随便买什么,她会怎么想?

员工 A:你和谷歌之间是商业关系。如果你因为谷歌没有像你对妻子那样用礼物来“讨好”你而感到失望,那说明你对这段关系有误解。

等一下,和谷歌之间也是商业关系。

听起来可能有点奇怪,我竟然花了两年半才意识到这一点,但谷歌确实很擅长在公司内部营造归属感,让我们觉得自己不仅仅是员工,我们就是谷歌。

那段对话让我明白,我不是谷歌。我只是向谷歌提供服务以换取报酬。

既然我和谷歌之间的商业关系是为了服务彼此的利益,那我为什么要把时间花在那些只对谷歌有利、却对我自己无益的事情上?如果晋升委员会不奖励修缺陷和支持团队的工作,那我为什么还要做?

为晋升而优化

第一次晋升被拒让我吸取了错误的教训。我以为可以继续做同样的工作,只是换个方式包装得让晋升委员会好看。我本该反过来:先搞清楚晋升委员会想要什么,然后只做那些工作。

我采取了新策略。开始任何任务之前,我都会问自己:这是否有助于我的晋升?如果答案是否定的,我就不做。

我对代码的质量标准从“未来五年我们还能维护它吗?”降到了“能撑到我晋升就行吗?”。除非缺陷会危及我的项目上线,否则我既不提交也不修复。我想方设法摆脱所有维护性的工作,不再主动参加校园招聘活动,面试也从每周一两次直接降到了零。

然后,我的项目被砍了

优先级变了。管理层把我的项目转给了我们在印度的兄弟团队。作为交换,那个团队把他们的一个项目给了我们。那是一个毫无文档、基于已弃用基础设施搭建的系统,但它却是线上生产环境中的关键组件。我的任务是在保持系统在线运行并达成性能指标的同时,把它从兄弟团队的代码中剥离出来,迁移到新框架上。

就晋升而言,这让我倒退了好几个月。因为被砍的项目什么都没发布,我在上面花的那两个月算是白费了。光是熟悉接手的新系统就要花上数周,之后还得投入更多时间做那些维持它运转的繁重杂活。

我到底在干什么?

这是六个月里第三次,我的经理在项目进行到一半时把我调走。每次他都向我保证,这与我的工作质量无关,只是高层战略或团队人手变动的结果。

这时,我退后一步,从更宏观的角度审视正在发生的一切。抛开我的经理、他的上级、晋升委员会不谈。如果只剩下我和谷歌,我们这段“商业关系”到底是怎么回事?

谷歌一直在告诉我,必须等我完成一个项目后才能评判我的工作。而我却一个项目都完不成,因为谷歌总是在中途打断我,给我分配新任务。

这种状况荒谬至极。

谷歌晋升委员会式的图书出版方式

我的职业生涯被一个不断变动的匿名委员会所左右,他们一生中只会花一个小时来考虑我。而那些我毫无话语权的管理决策,却在抹去我数个月的职业进展。

最糟糕的是,我不再为自己的工作感到自豪。我不再问自己“我怎样才能解决这个难题?”,而是在问“我怎样才能让这个问题在晋升时看起来很有挑战性?”。我讨厌这样的自己。

就算拿到了晋升,又能怎样?大家都说,每一次晋升都会比上一次难上数倍。要想继续晋升,我需要承担范围更大、需要与更多协作团队合作的项目。但这也意味着项目会因为更多我无法控制的因素而失败,浪费我数月甚至数年的时间。

还有别的出路吗?

就在这段时间,我发现了 Indie Hackers。

Indie Hackers 网站截图

那是一个面向小型软件企业创始人的线上社区,重点在于“小”。那里的人并不是想成为下一个扎克伯格,而是想打造一个规模不大、但能盈利、足以养家糊口的小生意。

我一直想创办自己的软件公司,但我只知道硅谷式的创业路径。我曾以为做软件创始人就意味着把大部分时间花在融资上,剩下的时间则担忧如何吸引下一个百万用户。

Indie Hackers 提供了一种颇具吸引力的替代方案。大多数成员都是用自己的积蓄,或是把创业当作全职工作之外的副业来打造事业。他们不需要向投资人负责,更不需要向匿名的委员会证明自己。

当然,这也有缺点。他们的收入不那么稳定,面临的灾难性风险也更多。如果我在谷歌犯了一个让公司损失 1000 万美元的错误,我不会受到任何惩罚,只会被要求写一份事后分析报告,大家还会为这次学习机会而庆祝。但对这些创始人中的大多数人来说,一个 1000 万美元的错误就意味着事业的终结和几辈子都还不清的债务。

Indie Hackers 上的创始人之所以吸引我,是因为他们掌握着主动权。无论生意是一飞冲天还是多年停滞不前,都是他们自己在做主。而在谷歌,我连自己的项目都无法掌控,更不用说职业发展或团队方向了。

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

离开前的最后一件事

在谷歌我还有未了之事。毕竟已经为晋升投入了三年,我不想就这样空手而归。距离下一次申请晋升只剩几个月了,我决定再拼最后一次。

在绩效考核期结束前六周,我的项目又被砍了。

准确地说,是我们整个团队被砍了。这在谷歌是如此常见,以至于还有一个委婉的说法:重组(defrag)。管理层把我们团队的项目全部转给了印度的兄弟团队,我和同事们不得不在公司的不同部门重新开始。

我还是提交了晋升申请。几周后,经理向我宣读了结果。我的绩效评级是“卓越”,这是最高的分数,每个考核周期只有约 5% 的员工能拿到。晋升委员会指出,在过去六个月里,我明显展现出了高级工程师水平。而这六个月,恰好就是我为晋升而全力优化的那段时间。

但是,他们认为六个月的出色表现还不足以构成足够长的考察期,所以……下次再努力吧。

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

是时候离开了。

接下来做什么?

当我告诉别人我离开了谷歌时,他们总以为我一定有了什么绝妙的创业点子。只有傻瓜才会辞掉谷歌软件工程师这样安逸的工作。

但我确实是个毫无头绪的傻瓜。

我的计划是每次尝试一个不同的项目,做上几个月,看看有没有哪个能做起来,比如:

  • 继续打磨 KetoHub,看看能否让它盈利
  • 基于 Sia 这一我经常撰文介绍的分布式存储技术来做一个项目
  • 花更多时间写作,并寻找通过写作赚钱的方式

谷歌是个很棒的工作地方,我在那里学到了宝贵的技能。离开很艰难,因为我还有很多可以学,但像谷歌这样的雇主随时都有。而创办自己公司的自由却不是随时都有的,所以我很期待看看这条路会把我带向何方。

更新


插图作者:Loraine Yow。

本文章由 muse-spark-1.2-contributor 进行翻译

评论