源 / 码农网  文 / 码农网 – 小峰

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

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

开始两年

这两年,我深深地热爱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软件工程师这份工作。

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

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

  • 继续致力于KetoHub,看看我能否实现盈利

  • 在Sia上建立业务,这是我经常用到的分布式存储技术

  • 花更多时间编写代码,并寻找从中赚钱的途径

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

译文链接:http://www.codeceo.com/article/why-i-quit-google-to-work-for-myself.html
英文原文:Why I Quit Google to Work for Myself
翻译作者:码农网 – 小峰

公众号内回复“1”带你进粉丝群

为什么我从 Google 辞职而为自己工作相关推荐

  1. 我为什么从 Google 辞职?

    译者 | 弯月     责编 | 晋兆雨 出品 | CSDN(ID:CSDNnews) 每当人们听到我从Google辞职的消息,都会不约而同地问我:"那么,接下来你打算去哪儿?" ...

  2. 年前辞职,年后找工作

    年前辞职,年后找工作 今天向差不多工作了十年的公司辞职了,离过年还有5天,年后得好好找工作了,希望一切顺利. posted on 2018-02-11 12:24 黄尚 阅读(...) 评论(...) ...

  3. 【转】Google Earth究竟是怎样工作的

    [转]Google Earth究竟是怎样工作的 2011-03-03 19:54 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lichong.blogbus.com ...

  4. 浅谈Google蜘蛛抓取的工作原理(待更新)

    浅谈Google蜘蛛抓取的工作原理 什么是爬行器? 爬行器如何工作? 爬行器如何查看页面? 移动和桌面渲染 HTML 和 JavaScript 渲染 什么影响爬行者的行为? 内部链接和反向链接 单击深 ...

  5. 数字营销分析工具Google Analytics(分析)工作原理

    数字营销需要数据分析工具来调整.考核KOL,我在上篇文章"新一代智能Google Analytics助力营销分析"中对Google Analytics新版工具做了使用说明.今天来聊 ...

  6. 说说 Google 软件测试开发工程师的工作内容

    一个完美的开发过程是这样的:测试先行,开发人员会些设计一些边界场景的测试用例,比如数据的取值范围从极大到极小.循环语句超出限制范围等等许多极端情况.这些测试代码会作为产品代码的一部分,以自检代码或者单 ...

  7. 程序员裸辞后,在家全职接单一个月的感触

    关注公众号 前端开发博客,回复"加群" 加入我们一起学习,天天进步 背景 鄙人本科毕业一年有余,计算机专业.全栈工程师,但更喜欢前端的工作,于是在一家游戏公司任职前端工作.在这个内 ...

  8. 谷歌顶级量子科学家详述他为何从谷歌辞职

           加州大学圣塔芭芭拉分校(UCSB)的教授John Martinis 作者 | Paul Smith-Goodson 译者 | 天道酬勤,责编 | Carol 约翰·马丁尼斯(John M ...

  9. Google 包庇 Android 之父还给了 9000 万美元,女工程师们怒了!

    以「Don't be evil」为企业文化的 Google,在这一次,没有使用技术作恶,但却因触及道德的底线而再次被推至风口浪尖.上周,据美国<纽约时报>报道,Google 内部曾有多名高 ...

  10. Google 工作 4 年,我最终还是选择了离开

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 声明:本文已获作者授权翻译,封面图为付费下载自视觉中国. [CSDN编者按]作为全球领先的科 ...

最新文章

  1. windows系统杀掉explorer.exe进程后黑屏
  2. poj2976(0-1分数规划)
  3. CSS background属性
  4. linux桥接实现交换机功能
  5. 2014年最新前端开发面试题
  6. POJ-2400 Supervisor, Supervisee 带权值匹配+枚举所有匹配情况
  7. notepad自动对齐html代码,notepad如何存储为html格式化
  8. config修改php背景颜色,动态永久修改config
  9. jquery 访问.ashx ashx取所传参数的值
  10. Python DearPyGui 基础
  11. 心情随笔之纸包子假新闻 [2007年7月25日]
  12. html ui 下拉列表,html - 如何给样式Material-ui选择字段下拉菜单?
  13. mysql外键约束_mysql 外键约束
  14. 基于STM32设计的掌上游戏机(运行NES游戏模拟器)详细开发过程
  15. H5 游戏主流引擎和编程语言
  16. 易源接口showapi的使用
  17. Unity Shader 绘制朱利亚集合 Julia 奇幻图形
  18. BubbleGum96 开箱杂谈与软件资源
  19. 营养素的基础知识1(非技术文)
  20. oracle 认识点概述(一)

热门文章

  1. python使用pip离线安装库(本机环境)
  2. JAVA最强工具类之一HuTool
  3. Check Exception or Uncheck Exception
  4. 思科模拟器企业网站服务器配置,cisco模拟器配置域名web服务器
  5. css ico图标不显示,网站后台ico图标不显示的解决方法
  6. 在上海社保千万不要断,如果断了,一定要这样做!
  7. 效率直接起飞的PPT技巧,你知道吗
  8. navicat 解析sql_Navicat使用详解
  9. 网络基础---NAT穿越技术
  10. Notepad++删除空白行