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

好吧,其实里面还有更深层次的原因。

开始两年

这两年,我深深地热爱Google。

当“年度员工调查”问我五年后是否期望还留在谷歌时,答案是毋庸置疑的。

五年后我当然依然会在谷歌。我的周围有着全世界最优秀的工程师,我们使用的是全世界最先进的开发工具,我们还可以免费享受世界各地的美味食物。

spoiled-coder

我在谷歌的典型一天

我最近的业绩评定是“Strongly Exceeds Expectations”。如果继续保持这种势头的话,我很快就能晋升到更高层次的高级软件工程师。多么高大上的称号!以后,对于我的职业生涯,我就可以自豪地说,“对,我是一名高级软件工程师。在谷歌工作。“听到的人肯定会认为我很牛逼。

我的经理向我保证我很快就能晋升了。他觉得我已经有能力从事高级工作了。我只需要用合适的项目向晋升委员会证明即可。

经理不给你晋升?

不是的,这和经理无关,因为Google的经理不能晋升他们的直接下属。他们甚至没有投票权。

相反,晋升的决定权在于由高层软件工程师和经理组成的小型委员会,在决定晋升之前他们甚至从未听说过你。

申请晋升你需要汇编“晋升数据包”:收集来自队友的书面建议,你创建的设计文档以及你撰写的小型论文,通过这些来解释为什么你值得晋升。

然后晋升委员会与其他少数人一起审查你的数据包,花一天时间来决定谁能晋升,谁不能。

在我与Google前两年的蜜月期间,这个系统听起来很棒。我的命运掌握在一个从未见过我的神秘委员会手中。他们不会有任何偏袒也不受政治的左右。他们会看到我所有的努力,他们会因为我高质量的代码和精明的工程决策而认可我。

那并非其真正的运作方式

在我整理我的第一个晋升数据包之前,我从未想过它运作流程的后勤方面。

在我的脑海里,晋升委员会就是这样一个站在上帝视角的公正组织。如果每一天我都全心全意地选择要解决的正确问题,努力提高代码库的质量,竭尽全力帮助我的团队高效执行,那么晋升委员会就会神奇地无所不知并因此而奖励我。

然而,事实是,它并不是这样工作的。而我花了两年才弄明白这一点。

天真地工作

在看清真相前,我的主要责任是一条遗留的数据管道。它多年来一直处于维修模式,随着负荷的增加,管道因为压力而弯曲。它经常悄无声息地死掉或产生不正确的输出。其故障需要数天才能诊断,因为自最初的设计规范开始就没有人为它写过文档。

我自豪又亲切地呵护管道使得它恢复了健康。我修复了数十个bug并编写了自动化测试,以确保它们不会再出现问题。我删除了数千行代码,这些代码要么已经死了,要么完全可以被现代库所取代。我文档化了管道,以便我的队友可以随时了解结构知识。

问题是,正如我在晋升时发现的那样,这些成果没有一个是可以量化的。我无法证明我所做的任何事情对Google产生了积极的影响。

指标亦或是没有发生

该管道记录的指标不多。指标确实会使事情看上去更糟。我的bug发现导致整体bug数量增加。管道的故障增加了,因为在异常情况下,它将迅速出现故障,而并非悄悄地传递坏的数据。我大幅减少了开发人员修复这些故障的时间,但是我没有制定跟踪开发者时间的指标。

我的其他工作用书面形式表达时也是豪不出彩。有几次,我搁置了自己的项目几周甚至几个月时间去帮助队友,因为他的发布有风险。这对团队来说是正确的决定,但在晋升数据包中则显得平平无奇。对于晋升委员会来说,我队友的项目是一项重要的工作,需要多个开发者的协助。他们能想方设法地让我帮助他们,这是他们领导素质强大的证据——而我只是一个没有意识的工作傀儡,反而显得我本身负责的工作无关紧要,以至于可以随叫随到,立马就能放下手头的工作。

在我提交我的第一个晋升数据包时,最后的结果正如我所担忧的那样:晋升委员会说我没有证据证明我可以处理技术复杂性,他们也看不到我对Google的影响。

promo-committee

向晋升委员会辩驳我的能力

从拒绝中学习

被拒绝是一次重大的打击,但我并没有气馁。我觉得我的表现超出了我的水平,但晋升委员会看不到。不过,这是可以解决的。

我承认头两年我实在是太天真了。我没有提前做足计划,使得我所做的工作成为了一纸空文。现在既然我明白了这个过程是如何运作的,那么我只要在继续做好同样工作的同时,准备更充分地记录保存。

例如,我的团队会因为误报而接收大量令人分心的电子邮件警报。以前的我只会解决这些警报。但现在的我知道为了让这项工作出现在我的晋升数据包中,我首先应该设定指标,以便我们有警报频率的历史记录。在晋升考察期间,我就能展示一个令人印象深刻的警报趋势图。

不久之后,团队分配给我一个看似注定会晋升的项目。该项目很大程度上依赖于机器学习,而这一直是谷歌的热门话题。它可以自动完成需要数百名人工操作员手动完成的任务,因此它将对Google产生显著和客观的影响。同时我还需要在整个项目过程中领导一名初级开发人员——这通常在晋升委员会眼中也可以加分。

节日礼物与叫醒电话

几个月后,Google结束了为所有员工提供奢华节日礼物的悠久传统。相反,他们将礼物预算用于购买(广告上伪装成慈善)Chromebook给贫困的中小学生。

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

员工A:实际上你仍然得到了礼物。像这些削减会增加Google股票的价值。你可以出售你的股票奖励用于购买所选择的任何礼物。 B员工:这不就是,我告诉我的妻子我没有给她买圣诞礼物,但她可以用我们银行账户里的钱购买她想要的任何礼物? 员工A:你与Google构建的是一种业务关系。如果你对谷歌没有像你为你妻子那样准备礼物而感到失望,那么你误解了这种关系。

等等。所以我与Google建立的是业务关系。

我花了两年半的时间才意识到这一点或许会让人觉得有点不可思议,但谷歌在组织内部很好地打造了一个社区意识——让我们觉得我们不仅仅是员工,我们还是Google本身。

那次谈话让我意识到我不是Google。我不过是一个向Google提供服务以换取金钱的打工者。

因此,如果Google和我之间存在一个可以服务于各方利益的业务关系,那么为什么我要花时间在所有这些符合Google利益而不是我自己利益的任务上?如果晋升委员会不奖励bug修复和团队支持工作,那么为什么我还要去做这些事情呢?

最有效地为了晋升

我第一次晋升的否决让我学到了一个错误的教训。我认为我可以继续做同样的工作,但是可以做一些事情使得晋升委员会看得我的成果。然而其实我应该做相反的事情:弄清楚晋升委员会想要什么,然后专门去做那项工作。

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

我的代码质量标准从“能否在未来5年内保持这个水平?”变为“是否可以持续到我被晋升为止?”。我不提交也不修复任何bug,除非它们会威胁我的项目的发布。我设法推脱了所有关于维护工作的职责。我停止了去校园招聘的志愿活动。我从每周执行一次或两次面试降低到零。

然后我的项目被取消了

优先度被转移了。管理层将我的项目移交给了我们在印度的姐妹团队。作为交换,该团队向我们提供了他们的一个项目。这是一个没有文档记录的系统,建立在不推荐使用的基础设施上,但它仍然是产品的关键组成部分。分配给我的工作是将此系统从姐妹团队的代码中清理出来,并迁移到一个新的框架中,同时确保它能在生产环境中运行并达到其性能指标。

就晋升而言,我这几个月的努力都打了水漂。因为我为了那个被取消的项目而没有发布任何东西,所以我耗费在该项目上的两个月时间毫无价值。而且我还得花上几周时间才能加快掌握我继承的系统,并且在为了保持系统可操作这一苦差事中,我必定会耗费许许多多时间。

我还能说什么呢?

这是六个月来第三次,我的经理在一个项目的中程重新安排我了。每一次,他都向我保证,这与我的工作质量无关,而是高层管理策略或团队人员的一些变动。

此时,我回过头来想从高层发生的事情。不去想我的经理,他的经理,甚至忽略所谓的晋升委员会。如果我仅仅把另一边简化为Google,会怎么样?我们的“业务关系”之间发生了什么?

是的,Google一直告诉我,除非看到我完成了一个项目,否则它无法评判我的工作。但是,因为Google中途不停的中断并将我分配到新的项目,所以我无法完成任何项目。

整个过程荒谬无比。

book-publisher

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

我的职业生涯由一个流动的匿名委员会所决定,他们将在一个小时的时间里决定我的前程。一个我抗议无效的管理决策抹杀了我那么多月在事业上取得的进步。

最为糟糕的是,我并不以我的工作为荣。我扪心自问的不再是:“我该如何解决这个具有挑战性的问题?”而是:“我怎么才能让这个问题从晋升的角度看起来具有挑战性?”我讨厌这样。

即使我获得了晋升,然后呢?主流观念是每一次的晋升都会比上一次更难。为了继续推进我的职业生涯,我需要范围更大、涉及合作团队更多协作的项目。但这意味着该项目可能会失败,因为会有更多我无法控制的因素,从而浪费数月甚至数年时间。

有什么其他选项?

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

这是一个面向小型软件业务创始人的在线社区。要强调的重点:小。这些创建者的目标不是成为扎克伯格第二,而是想从一些适中而又有利可图的业务中赚点小钱。

我一直对创办自己的软件公司非常感兴趣,但我只知道硅谷的创业之路。我原本以为成为一名软件创始人意味着要将大部分时间用于融资,剩下的时间则要担心如何吸引新的百万用户。

Indie Hackers给出了一个诱人的选项。大多数会员利用自己的储蓄建立企业,或将其作为全职工作之外的业余项目。他们不需要答复投资者,当然也不必向匿名委员会证明自己。

缺点也是有的。一方面收入不太稳定,另一方面还面临更多灾难性风险。如果我在Google上犯了一个错误,导致公司损失1000万美元,我不用承担任何后果——我需要做的是写一篇事后剖析,然后每个人都会开心于此次学习机会。但对于大多数创始人来说,1000万美元的错误将意味着企业的破产以及几辈子的债务。

在Indie Hackers做创始人的念头在我脑海中挥之不去,让我魂牵梦萦。因为无论业务是取得巨大的成功还是一蹶不振多年,都在自己的掌控之中。在Google,我不觉得我可以自己控制项目,更不用说职业成长以及团队方向了。

我思来想去了几个月,最后终于下了决心。我要成为一名独立黑客。

辞职前的最后一件事

我在Google上还有没完成的业务。在为了晋升投入三年时间后,我自己也不想毫无建树就离开。此时只需要几个月时间我就可以重新申请晋升了,所以我决定给自己最后一次机会。

悲剧的是,距离成果统计结束还有六周,我的项目被取消了。再一次被取消了。

事实上,我的整个团队都被取消了。这在Google是很常见的,而且它还有一个委婉的称呼:碎片整理。管理层将我们团队的项目移交给我们在印度的姐妹团队。我的队友和我都必须从不同领域重新起步。

不管怎么说我已经申请了晋升。几周后,我的经理给我看了结果。我的表现评分是“Superb”,这是最高的分数,每期只给约5%的员工。晋升委员会指出,在过去的六个月中,我清楚地展现了高水准的工作。而这刚好不是我为了最有效晋升而努力的那几个月时间。

但他们觉得六个月的跟踪记录时间不够长,所以……祝我下次更好运。

我的经理告诉我,如果我再做六个月的高质量工作,我的晋升机会很大。我不能说我没有受到诱惑,但到那时为止,在过去两年时间给我的鼓励一直都是“六个月后晋升机会很大”。

所以现在是时候离开了。

那么,下一步呢?

当我告诉别人我离开了Google的时候,他们认为我一定有一些绝妙的创业点子。只有傻瓜才会辞掉Google软件工程师这份工作。

我究竟是不是一个傻瓜,仁者见仁智者见智吧。

我的计划用几个月的时间尝试一些不同的项目,看看其中有没有迎合人心会流行起来的,例如:

  • 继续致力于KetoHub,看看我能否实现盈利
  • 在Sia上建立业务,这是我经常用到的分布式存储技术
  • 花更多时间编写代码,并寻找从中赚钱的途径

Google是一个伟大的工作场所,我在那里学习了许多宝贵的技术和技能。辞职是一个很艰难的抉择,因为我还有更多需要学习的东西,但要找Google这样的雇主总还是可以的。我不会一直有这样的自由可以顺从本心地创办自己的公司,不知道我能走多远,期待我的成果吧。

你可能感兴趣的内容
0条评论
JO

Johnny

这家伙太懒了,什么都没留下
Owner