在过去四年时间里,我在Google担任软件开发工程师。2月1日,我辞职了。由于他们拒绝给我买圣诞礼物。html
好吧,其实里面还有更深层次的缘由。程序员
这两年,我深深地热爱Google。面试
当“年度员工调查”问我五年后是否指望还留在谷歌时,答案是毋庸置疑的。微信
五年后我固然依然会在谷歌。个人周围有着全世界最优秀的工程师,咱们使用的是全世界最早进的开发工具,咱们还能够免费享受世界各地的美味食物。框架
我在谷歌的典型一天机器学习
我最近的业绩评定是“Strongly Exceeds Expectations”。若是继续保持这种势头的话,我很快就能晋升到更高层次的高级软件工程师。多么高大上的称号!之后,对于个人职业生涯,我就能够自豪地说,“对,我是一名高级软件工程师。在谷歌工做。“听到的人确定会认为我很牛逼。分布式
个人经理向我保证我很快就能晋升了。他以为我已经有能力从事高级工做了。我只须要用合适的项目向晋升委员会证实便可。工具
不是的,这和经理无关,由于Google的经理不能晋升他们的直接下属。他们甚至没有投票权。性能
相反,晋升的决定权在于由高层软件工程师和经理组成的小型委员会,在决定晋升以前他们甚至从未据说过你。学习
申请晋升你须要汇编“晋升数据包”:收集来自队友的书面建议,你建立的设计文档以及你撰写的小型论文,经过这些来解释为何你值得晋升。
而后晋升委员会与其余少数人一块儿审查你的数据包,花一天时间来决定谁能晋升,谁不能。
在我与Google前两年的蜜月期间,这个系统听起来很棒。个人命运掌握在一个从未见过个人神秘委员会手中。他们不会有任何偏袒也不受政治的左右。他们会看到我全部的努力,他们会由于我高质量的代码和精明的工程决策而承认我。
在我整理个人第一个晋升数据包以前,我从未想过它运做流程的后勤方面。
在个人脑海里,晋升委员会就是这样一个站在上帝视角的公正组织。若是每一天我都全心全意地选择要解决的正确问题,努力提升代码库的质量,不遗余力帮助个人团队高效执行,那么晋升委员会就会神奇地无所不知并所以而奖励我。
然而,事实是,它并非这样工做的。而我花了两年才弄明白这一点。
在看清真相前,个人主要责任是一条遗留的数据管道。它多年来一直处于维修模式,随着负荷的增长,管道由于压力而弯曲。它常常悄无声息地死掉或产生不正确的输出。其故障须要数天才能诊断,由于自最初的设计规范开始就没有人为它写过文档。
我自豪又亲切地呵护管道使得它恢复了健康。我修复了数十个bug并编写了自动化测试,以确保它们不会再出现问题。我删除了数千行代码,这些代码要么已经死了,要么彻底能够被现代库所取代。我文档化了管道,以便个人队友能够随时了解结构知识。
问题是,正如我在晋升时发现的那样,这些成果没有一个是能够量化的。我没法证实我所作的任何事情对Google产生了积极的影响。
该管道记录的指标很少。指标确实会使事情看上去更糟。个人bug发现致使总体bug数量增长。管道的故障增长了,由于在异常状况下,它将迅速出现故障,而并不是悄悄地传递坏的数据。我大幅减小了开发人员修复这些故障的时间,可是我没有制定跟踪开发者时间的指标。
个人其余工做用书面形式表达时也是豪不出彩。有几回,我搁置了本身的项目几周甚至几个月时间去帮助队友,由于他的发布有风险。这对团队来讲是正确的决定,但在晋升数据包中则显得平平无奇。对于晋升委员会来讲,我队友的项目是一项重要的工做,须要多个开发者的协助。他们能千方百计地让我帮助他们,这是他们领导素质强大的证据——而我只是一个没有意识的工做傀儡,反而显得我自己负责的工做可有可无,以致于能够随叫随到,立马就能放下手头的工做。
在我提交个人第一个晋升数据包时,最后的结果正如我所担心的那样:晋升委员会说我没有证据证实我能够处理技术复杂性,他们也看不到我对Google的影响。
向晋升委员会辩驳个人能力
被拒绝是一次重大的打击,但我并无气馁。我以为个人表现超出了个人水平,但晋升委员会看不到。不过,这是能够解决的。
我认可头两年我实在是太天真了。我没有提早作足计划,使得我所作的工做成为了一纸空文。如今既然我明白了这个过程是如何运做的,那么我只要在继续作好一样工做的同时,准备更充分地记录保存。
例如,个人团队会由于误报而接收大量使人分心的电子邮件警报。之前的我只会解决这些警报。但如今的我知道为了让这项工做出如今个人晋升数据包中,我首先应该设定指标,以便咱们有警报频率的历史记录。在晋升考察期间,我就能展现一个使人印象深入的警报趋势图。
不久以后,团队分配给我一个看似注定会晋升的项目。该项目很大程度上依赖于机器学习,而这一直是谷歌的热门话题。它能够自动完成须要数百名人工操做员手动完成的任务,所以它将对Google产生显著和客观的影响。同时我还须要在整个项目过程当中领导一名初级开发人员——这一般在晋升委员会眼中也能够加分。
几个月后,Google结束了为全部员工提供奢华节日礼物的悠久传统。相反,他们将礼物预算用于购买(广告上假装成慈善)Chromebook给贫困的中小学生。
此后不久,我亲耳听到两名员工之间的如下对话:
员工A:实际上你仍然获得了礼物。像这些削减会增长Google股票的价值。你能够出售你的股票奖励用于购买所选择的任何礼物。 B员工:这不就是,我告诉个人妻子我没有给她买圣诞礼物,但她能够用咱们银行帐户里的钱购买她想要的任何礼物? 员工A:你与Google构建的是一种业务关系。若是你对谷歌没有像你为你妻子那样准备礼物而感到失望,那么你误解了这种关系。
等等。因此我与Google创建的是业务关系。
我花了两年半的时间才意识到这一点或许会让人以为有点难以想象,但谷歌在组织内部很好地打造了一个社区意识——让咱们以为咱们不只仅是员工,咱们仍是Google自己。
那次谈话让我意识到我不是Google。我不过是一个向Google提供服务以换取金钱的打工者。
所以,若是Google和我之间存在一个能够服务于各方利益的业务关系,那么为何我要花时间在全部这些符合Google利益而不是我本身利益的任务上?若是晋升委员会不奖励bug修复和团队支持工做,那么为何我还要去作这些事情呢?
我第一次晋升的否决让我学到了一个错误的教训。我认为我能够继续作一样的工做,可是能够作一些事情使得晋升委员会看得个人成果。然而其实我应该作相反的事情:弄清楚晋升委员会想要什么,而后专门去作那项工做。
我采用了新的策略。在开始任何任务以前,我会问问本身这是否有助于晋升。若是答案是否认的,那么我就不作。
个人代码质量标准从“可否在将来5年内保持这个水平?”变为“是否能够持续到我被晋升为止?”。我不提交也不修复任何bug,除非它们会威胁个人项目的发布。我设法推脱了全部关于维护工做的职责。我中止了去校园招聘的志愿活动。我从每周执行一次或两次面试下降到零。
优先度被转移了。管理层将个人项目移交给了咱们在印度的姐妹团队。做为交换,该团队向咱们提供了他们的一个项目。这是一个没有文档记录的系统,创建在不推荐使用的基础设施上,但它仍然是产品的关键组成部分。分配给个人工做是将此系统从姐妹团队的代码中清理出来,并迁移到一个新的框架中,同时确保它能在生产环境中运行并达到其性能指标。
就晋升而言,我这几个月的努力都打了水漂。由于我为了那个被取消的项目而没有发布任何东西,因此我耗费在该项目上的两个月时间毫无价值。并且我还得花上几周时间才能加快掌握我继承的系统,而且在为了保持系统可操做这一苦差事中,我一定会耗费许许多多时间。
这是六个月来第三次,个人经理在一个项目的中程从新安排我了。每一次,他都向我保证,这与个人工做质量无关,而是高层管理策略或团队人员的一些变更。
此时,我回过头来想从高层发生的事情。不去想个人经理,他的经理,甚至忽略所谓的晋升委员会。若是我仅仅把另外一边简化为Google,会怎么样?咱们的“业务关系”之间发生了什么?
是的,Google一直告诉我,除非看到我完成了一个项目,不然它没法评判个人工做。可是,由于Google中途不停的中断并将我分配到新的项目,因此我没法完成任何项目。
整个过程荒谬无比。
Google晋升委员会的图书出版方式
个人职业生涯由一个流动的匿名委员会所决定,他们将在一个小时的时间里决定个人前程。一个我抗议无效的管理决策抹杀了我那么多月在事业上取得的进步。
最为糟糕的是,我并不以个人工做为荣。我扪心自问的再也不是:“我该如何解决这个具备挑战性的问题?”而是:“我怎么才能让这个问题从晋升的角度看起来具备挑战性?”我讨厌这样。
即便我得到了晋升,而后呢?主流观念是每一次的晋升都会比上一次更难。为了继续推动个人职业生涯,我须要范围更大、涉及合做团队更多协做的项目。但这意味着该项目可能会失败,由于会有更多我没法控制的因素,从而浪费数月甚至数年时间。
大约在这个时候,我发现了 Indie Hackers。
这是一个面向小型软件业务创始人的在线社区。要强调的重点:小。这些建立者的目标不是成为扎克伯格第二,而是想从一些适中而又有利可图的业务中赚点小钱。
我一直对创办本身的软件公司很是感兴趣,但我只知道硅谷的创业之路。我本来觉得成为一名软件创始人意味着要将大部分时间用于融资,剩下的时间则要担忧如何吸引新的百万用户。
Indie Hackers给出了一个诱人的选项。大多数会员利用本身的储蓄创建企业,或将其做为全职工做以外的业余项目。他们不须要答复投资者,固然也没必要向匿名委员会证实本身。
缺点也是有的。一方面收入不太稳定,另外一方面还面临更多灾难性风险。若是我在Google上犯了一个错误,致使公司损失1000万美圆,我不用承担任何后果——我须要作的是写一篇过后剖析,而后每一个人都会开心于这次学习机会。但对于大多数创始人来讲,1000万美圆的错误将意味着企业的破产以及几辈子的债务。
在Indie Hackers作创始人的念头在我脑海中挥之不去,让我魂牵梦萦。由于不管业务是取得巨大的成功仍是一蹶不振多年,都在本身的掌控之中。在Google,我不以为我能够本身控制项目,更不用说职业成长以及团队方向了。
我思来想去了几个月,最后终于下了决心。我要成为一名独立黑客。
我在Google上还有没完成的业务。在为了晋升投入三年时间后,我本身也不想毫无建树就离开。此时只须要几个月时间我就能够从新申请晋升了,因此我决定给本身最后一次机会。
悲剧的是,距离成果统计结束还有六周,个人项目被取消了。再一次被取消了。
事实上,个人整个团队都被取消了。这在Google是很常见的,并且它还有一个委婉的称呼:碎片整理。管理层将咱们团队的项目移交给咱们在印度的姐妹团队。个人队友和我都必须从不一样领域从新起步。
无论怎么说我已经申请了晋升。几周后,个人经理给我看告终果。个人表现评分是“Superb”,这是最高的分数,每期只给约5%的员工。晋升委员会指出,在过去的六个月中,我清楚地展示了高水准的工做。而这恰好不是我为了最有效晋升而努力的那几个月时间。
但他们以为六个月的跟踪记录时间不够长,因此……祝我下次更好运。
个人经理告诉我,若是我再作六个月的高质量工做,个人晋升机会很大。我不能说我没有受到诱惑,但到那时为止,在过去两年时间给个人鼓励一直都是“六个月后晋升机会很大”。
因此如今是时候离开了。
当我告诉别人我离开了Google的时候,他们认为我必定有一些绝妙的创业点子。只有傻瓜才会辞掉Google软件工程师这份工做。
我到底是不是一个傻瓜,仁者见仁智者见智吧。
个人计划用几个月的时间尝试一些不一样的项目,看看其中有没有迎合人心会流行起来的,例如:
Google是一个伟大的工做场所,我在那里学习了许多宝贵的技术和技能。辞职是一个很艰难的抉择,由于我还有更多须要学习的东西,但要找Google这样的雇主总仍是能够的。我不会一直有这样的自由能够顺从本心地创办本身的公司,不知道我能走多远,期待个人成果吧。
原文连接: https://mtlynch.io/why-i-quit-google/ ,做者 Michael Lynch
最新2017(Android)面试题级答案(精选版) 最新2017(Android)面试题级答案(精选版)
微信公众号:终端研发部