写点什么

绩效远超预期却无法晋升,我于是离开了谷歌

  • 2020-02-17
  • 本文字数:4539 字

    阅读完需:约 15 分钟

绩效远超预期却无法晋升,我于是离开了谷歌

我作为一名开发者在谷歌呆了四年。今年 2 月 1 号,我辞职了,因为他们不肯给我买圣诞节礼物。


好吧,刚才只是开个玩笑,我辞职的真正原因比这个要复杂得多。

在谷歌的头两年

在头两年,我爱过谷歌。


在年度员工调查时被问及是否希望在谷歌呆满 5 年,我想都不用想,答案是肯定的。


我当然愿意在谷歌呆上 5 年了。我身边有世界上最好的工程师,我们使用着世界上最好的开发工具,吃着免费的美食。



我最近的绩效评级是“远超出预期”。如果我坚持下去,很快就会晋升——成为高级软件工程师。这是一个多么棒的头衔!在我的职业生涯中,我可以很自豪地告诉别人:“我曾经是谷歌的一名高级软件工程师“。


我的上司向我保证,我的晋升近在咫尺。他觉得我已经能够胜任高级工程师的工作了,只是需要一个合适的项目向晋升委员会证明我自己。

上司没有提拔你?

在谷歌,上司是不能直接提拔下属的,他们甚至连投票的资格都没有。


相反,谷歌的晋升是由更高级别工程师组成的委员会和你不认识的管理者决定的。


你需要提交晋升申请材料:一些团队成员提供的推荐信、你曾经写过的设计文档,以及一些可以用来解释为什么你值得晋升的小文章。


晋升委员会评审申请材料,并决定谁可以晋升。


在谷歌的头两年,我认为这个晋升机制很棒。当然,你的晋升命运交到了委员会手中。他们不受任何偏见或政治因素的影响,他们可以看到你过去的一切,并认可你的高质量代码和精明的工程决策。

但事实并非如此

在我第一次提交晋升申请材料之前,我并没有想过这种机制背后的逻辑。


在我的印象中,晋升委员会是公平公正的。如果我每天都选择正确的问题来解决,让代码库变得更好,帮助团队有效地完成任务,那么委员会也会看到这些,并嘉奖我。


但事实并非如此,我花了两年时间才知道背后的真相。

天真地工作

在那之前,我的主要工作是负责处理遗留数据。这个工作主要是维护数据管道,有时候工作量会增加,因为在负载压力下数据管道会出问题,经常悄无声息地出故障或产生错误的输出。这些故障需要几天才能诊断出来,因为从最开始就没有人写过文档。


我自豪而深情地维护着数据管道,让它慢慢走向正轨。我修复了几十个 bug,并编写了自动化测试,确保它们不会再出问题。我删除了几千行代码,这些代码要么已经没有用了,要么可以用更新的库来代替。在了解数据管道的过程中,我记录了很多东西,同事们也可以看到这些东西,而不只是我一个人。


但到了申请晋升时,我发现这些都是无法量化的。我无法证明我所做的事情给谷歌带来了积极的影响。

要么给出指标,要么跟什么都没发生一样

数据管道没有记录太多的指标,它记下的那些指标反而表示事情变得更糟。我修复的 bug 反而让整体的 bug 数增加了。之所以会这样,是因为我让管道在异常情况下快速抛出错误,而不是暗地里还把坏数据传递下去。我的工作极大地减少了开发人员修复这些故障的时间,但没有提供用于衡量时间的指标。


从表面上看,我的其他工作做得也不太好。有几次,为了帮助一个面临发布延迟风险的同事,我将自己的项目搁置了几周,甚至是几个月。这对整个团队来说是好事,但对于晋升来说却显得平淡无奇。在晋升委员会看来,同事的项目更大更重要,需要多个开发人员协作。如果他们能够说服我去帮助他们,那说明他们有很强的领导力,而我只是一个没有头脑的工人,自己的工作无关紧要,别人叫我去帮忙,说去就去。


我提交了第一个晋升申请,结果就像我所担心的那样:晋升委员会说我无法证明自己可以处理复杂的技术问题,他们看不到我给谷歌带来的影响。

从被拒绝中学习

被拒绝算是一个沉重的打击,但我并没有气馁。我觉得我的表现是超水平的,只是晋升委员会没有看到。我可以解决这个问题。


我觉得我在谷歌的头两年太天真了。我没有提前做足准备,确保我的工作可以留下书面记录。现在,我知道这个机制是如何运作的,我可以继续把工作做好,只是需要把它们更好地记录下来。


例如,我的团队因为错误警报收到了大量电子邮件。如果是以前,我只会把这些警报修复掉,但现在我知道,要让这项工作出现在我的晋升申请材料中,首先需要设置指标,这样就有了警报频率的历史记录。在申请晋升时,我会向委员会展示警报的下降趋势图。


不久之后,我接到了一个似乎注定要让我晋升的项目。它重度依赖机器学习,而机器学习在谷歌一直都很热门。它将原本需要数百个人手动执行的任务自动化了,所以给谷歌带来明显且客观的影响。在整个项目过程中,我还要带一名初级开发人员,这通常会给晋升加分。

节日礼物,如梦初醒

几个月后,谷歌结束了向员工赠送奢华节日礼物的传统,他们用原本购买礼物的预算为贫困学生购买 Chromebook。


不久之后,我注意到了两名员工之间的一段对话:


员工 A:你其实还是可以拿到礼物的。谷歌的股票升值了,你可以把股票卖掉,然后为自己买份礼物。

员工 B:如果我跟老婆说,我没有为她准备圣诞季礼物,但她可以用我银行卡里的钱买她想要买的礼物,那会怎样?

员工 A:你现在与谷歌之间只是一种商业关系。如果你把你和妻子之间的那种“浪漫”关系与你和谷歌之间的关系相提并论,那么你就错了。


等等,我与谷歌之间只是一种商业关系。


我居然花了两年半的时间才意识到这一点,这个听起来是不是有点奇怪?不过不得不说,谷歌在组织内部建立社区意识方面做得太到位了,让我们觉得我们不只是员工,我们就是谷歌。


那段对话让我意识到我不是谷歌,我只是为谷歌提供服务,以此来换取金钱。


所以,如果谷歌和我之间的商业关系只是为了服务双方各自的利益,那为什么我要把时间花在这些服务谷歌利益的任务上,为什么不是为我自己呢?如果晋升委员会不嘉奖我在 bug 修复或团队支持方面所做的工作,我为什么要做这些事情呢?

为了晋升而改变

我的第一次晋升申请给了我一个错误的教训。我原以为只需要继续把工作做好,但要把它们记录下来,让晋升委员会看到就可以了。但其实我应该反其道而行之:弄清楚晋升委员会想要什么,然后专门去做那些工作。


我采用了新的策略。在开始做一件事情之前,我会先问自己这样做是否有助于晋升。如果答案是否定的,我就不做了。


我的代码质量标准从“5 年之后还具有可维护性”变成了“能持续到我晋升就可以了”。我不记录或修复任何 bug,除非它们会影响项目发布。我避开了所有维护工作。我不再热心校园招聘志愿者工作。我原本每周参加一到两次面试,后来就不去了。

我的项目被取消了

后来,优先级发生了变化。管理层把我的项目交给了印度的姐妹团队。作为交换,那个团队给了我们一个他们的项目。这是一个没有文档的系统,基于几乎已被弃用的基础设施而构建的,但不管怎样,它仍然是生产环境的一个关键组件。我被安排去清理代码,并迁移到新的框架,同时又要保持它能够在生产环境中运行,并且要求性能要达标。


从晋升来看,这是几个月以来我所经历的一次挫折。因为我没有为交出去的项目发布任何东西,但我花了两个月时间,什么都没有留下。接下来,我需要花上几周的时间才能熟悉接手的系统,而要保持它能够运行,可能要多花上几个礼拜。

我还在做什么?

这是 6 个月来上司第三次在项目进行到一半时给我重新分配工作。每一次他都向我保证这与我的工作质量无关,完全是高层管理策略或团队人员变化导致的。


我开始高屋建瓴地看待正在发生的事情。撇开我的上司、上司的上司、晋升委员会不说,如果只看我和谷歌之间的“商业“关系,我们之间究竟发生了什么?


谷歌一直告诉我,在我完成一个项目之前,它是无法对我所做的工作作出任何评判的。但另一方面,我又无法完成任何一个项目,因为谷歌总是中途打断,然后分配给我新的项目。


这种感觉实在是很荒谬。


我的职业生涯被委员会支配着,他们只花了一个小时来考虑我是否可以晋升,他们的一个决策可以抹去我职业生涯几个月的进步。


最糟糕的是,我对自己的工作不满意。我不再问自己“如何才能解决这个具有挑战性的问题”,而是想着“怎样才能让这个问题看起来对晋升有帮助”。我讨厌这样。


就算我晋升了,那又怎样?人们普遍认为,每一次晋升都比上一次要难得多。为了继续推进我的职业生涯,我需要参与更大的项目,与更多的团队协作。但这也意味着项目可能会因为更多的因素而失败,因为超出了我的可控范围,这可能会浪费我几个月甚至几年的时间。

除了晋升还有什么路可走?

在这个时候,我发现了Indie Hackers这个网站。


它是一个为小型软件公司创始人提供的在线社区。这些人并不是要成为下一个扎克伯格,他们只想要建立适度可盈利的业务,用以支付他们的账单。


我一直很想创立自己的软件公司,但我只知道硅谷的创业模式。我认为,作为一名软件公司的创始人,大部分时间都会花在融资上,剩下的时间则花在了如何吸引下一批百万用户上。


Indie Hackers 为我们提供了另一种选择。大多数会员都是用自己的积蓄创办自己的业务,或者将其作为副业。他们不需要向投资人汇报,也不需要向委员会证明什么。


当然,也有不好的一面。他们的收入不那么稳定,而且面临着更多灾难性的风险。如果我在谷歌犯了一个让公司损失 1000 万美元的错误,我不需要承担任何后果。我只会被要求写一篇事后分析报告,让每个人都学习一下。对于 Indie Hackers 上的大多数创始人来说,一个 1000 万美元的错误就意味着业务的终结和几辈子的债务。


Indie Hackers 上的创始人引起了我的注意,因为他们可以掌控一切。不管是让业务大获成功还是让它多年停滞不前,都是他们在发号施令。但在谷歌,我感觉无法掌控自己的项目,更不用说我的职业发展或团队的发展方向了。


我想了几个月,最后决定了,我想成为一名 Indie Hacker。

在离开谷歌之前做的最后一件事

我在谷歌还有未完成的工作。在为晋升这件事投入了三年时间之后,我不想在离开时一无所获。再过几个月我又可以重新申请晋升了,所以我决定再试一次。


但在绩效考评期前的六周,我的项目又被取消了。


事实上,我的整个团队都被解散了。这在谷歌是很常见的,他们甚至委婉地把这个叫作碎片整理。管理层把团队的项目转给了印度的姐妹团队。我和其他成员必须在不同领域重新开始。


我还是申请了晋升。几周后,上司向我宣布了结果。我的绩效评级是“极好”,这可能是最高的分数,每轮考核大约只有 5%的员工能够拿到。晋升委员可以看到我过去 6 个月所做的工作,刚好那几个月正是我为晋升而做出改变的时期。


但他们觉得 6 个月不够长,所以,祝我下次好运吧。


上司告诉我,如果在接下来的 6 个月里我能够完成同样质量的工作,就有很大的晋升机会。我不能说上司的话完全没有诱惑力,但在过去的两年里,我已无数次听过“6 个月内有很大的晋升机会”这句话。


是该走的时候了。

接下来该怎么办

当我告诉别人我离开谷歌了,他们认为我一定有什么绝妙的创业点子,只有傻瓜才会放弃谷歌软件工程师这样轻松的工作。


但我确实是一个没有绝妙创业点子的白痴。


我的计划是去尝试不同的项目,每个项目花上几个月时间,看看有没有能够上道的,例如:


  • 继续在KetoHub上投入,看看能否让它盈利;

  • 基于 Sia(我经常提到的一种分布式存储技术)构建业务;

  • 多花点时间写作,想办法从中赚到钱。


谷歌是一个非常棒的工作场所,在那里我学到了很多有价值的技能。离开谷歌对我来说很艰难,因为我还有很多东西要学,但除了谷歌,也有很多其他很棒的公司。我不会一直有机会创办自己公司,我只是期待我将去向何处。

原文链接

Why I Quit Google to Work for Myself

延展阅读

为什么我离开了 BAT 们


2020-02-17 15:424832
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 392.2 次阅读, 收获喜欢 1983 次。

关注

评论 4 条评论

发布
用户头像
这个哥儿们对晋升还是有误解的,晋升不是对你辛苦工作对奖励,而是你满足下一个level的要求,而且确实也有对应的空缺。
2020-04-01 14:47
回复
用户头像
所以不论国内国外,都这个德行,容易晋升都都是可量化可得见摸得着的
2020-02-29 22:19
回复
用户头像
什么叫有技术没脑子,这个就算是范本了。总觉得被团队低估,总是被自身高估……
2020-02-18 14:28
回复
这样说太露骨了吧。可能只是经常和电脑打交道,而忘记了与人沟通的不同吧。毕竟人比电脑更复杂
2020-02-19 11:39
回复
没有更多了
发现更多内容

终极套娃 2.0 | 云原生交付的封装

尔达Erda

云计算 程序员 微服务 云原生 开发

2022秋招,Java岗最全面试攻略,吃透25个技术栈Offer拿到手软

程序猿阿宇

Java 面试题 面经 Java工程师 秋招

物理防火墙是什么?有什么作用?

行云管家

网络安全 防火墙

行云管家V6.5.1/2/3系列版本发布:数据库OpenAPI能力持续强化

行云管家

数据库 版本 IT运维 行云管家

用GaussDB(for Redis)存画像,推荐业务轻松降本60%

华为云开发者联盟

数据库 redis 存储 GaussDB ( for Redis ) 用户画像

众人呼唤的 Java 单商户系统,究竟有什么过人之处?

CRMEB

墨天轮高分技术文档分享——数据库安全篇(共48个)

墨天轮

MySQL 数据库 oracle postgresql 数据库安全

优必选大型仿人服务机器人Walker X的核心技术突破

优必选科技

机器人

敞开大门的支付宝,是商家的新掘金地吗?

ToB行业头条

如何构建面向海量数据、高实时要求的企业级OLAP数据引擎?

字节跳动数据平台

数据仓库 云原生 OLAP Clickhouse

一次性把Docker的概念、容器与虚拟机的区别、容器交付的优势讲清

程序员啊叶

Java 编程 程序员 架构 java面试

华为2023届提前批预热开始!左 神的程序代码面试指南终派上用场

程序猿阿宇

Java 算法 后端 Java工程师 算法刷题

闭关吃透Java性能手册,成功拿到字节Offer!不愧是阿里内部资料

程序猿阿宇

Java 后端 阿里 Java工程师 构架

兆骑科创高质量海归人才双创服务平台,线上直播路演

兆骑科创凤阁

手把手教你在 Vue3 中自定义指令

江南一点雨

产品动态丨Android 13 高效适配全新升级

MobTech袤博科技

android

兆骑科创海内外高层次创新创业人才服务平台,双创成果转化平台

兆骑科创凤阁

怒冲GitHub榜首!京东T8幕后打造高并发面试手册,狂虐阿里面试官

程序猿阿宇

Java 高并发 阿里 构架 面试‘

不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了

冉然学Java

Java 高并发系统设计 技术栈 构架 高并发处理

1000个字带你一次性搞懂JavaAgent技术,反正我是彻底服了

程序员啊叶

Java 编程 程序员 java面试 构架

HDD杭州站·HarmonyOS技术专家分享HUAWEI DevEco Studio特色功能

HarmonyOS开发者

HarmonyOS

十字链表的存储结构

乔乔

7月月更

哪个led显示屏厂家更好

Dylan

LED显示屏 led显示屏厂家

BATM面试Java岗:精选200+面试题及答案、6大重点规划和经验总结

程序员啊叶

Java 编程 程序员 架构 java面试

测试驱动开发(TDD)在线练功房 | 9月17日开课

ShineScrum

敏捷 测试 TDD 代码 测试驱动开发

Okaleido上线聚变Mining模式,OKA通证当下产出的唯一方式

鳄鱼视界

华为被迫开源!从认知到落地SpringBoot企业级实战手册(完整版)

程序猿阿宇

Java 程序员、 秋招 构架 面试‘

CircleIndicator组件,使指示器风格更加多样化

OpenHarmony开发者

OpenHarmony

Beyond Compare 4 实现class文件对比【最新】

白粥

工具 Beyond Compare 文件对比

阿里Java架构师面试高频300题:集合+JVM+Redis+并发+算法+框架等

程序员啊叶

今天去 OPPO 面试,被问麻了

程序员啊叶

Java 编程 程序员 架构 java面试

绩效远超预期却无法晋升,我于是离开了谷歌_文化 & 方法_MTLYNCH.IO_InfoQ精选文章