公众号关注 “前端开发博客”
设为“星标”,重磅干货,第一时间送达
转载:JavaGuide
不知道今天还有小伙伴坚持在工作岗位不?我已经回家几天了!走的时候还带了电脑以及两本比较中意的技术书籍。本来准备好好利用这难得的时间充充电,结果,发现回来之后就想躺着刷刷手机,出去瞎转转。
前几天,刷推的时候,我看到一篇不错的文章《我为什么从 Google 辞职开始为自己工作?》。我非常感兴趣。
在我看来,每个开发者或许都有一个自由开发的梦想,这意味着我们可以花更多的时间做自己想做的事情。
虽然,我也才没有工作几年,但是,平时也会经常幻想着有朝一日能够成为“自由”开发者。
这篇文章的作者 Michael Lynch 于 2007 年毕业于哥伦比亚大学,获得了计算机科学学士学位。他曾在 Microsoft 和 Google 担任软件工程师,后来他离开了 Google,开始成为一个自由开发者。
原文是英文版本,我简单用谷歌翻译并校对了一下(翻译的比较烂 ????)。下面是正文~
原文地址:https://mtlynch.io/why-i-quit-google/[1] 。
在过去四年时间里,我在 Google 担任软件开发工程师。(2018 年)2 月 1 日,我辞职了。因为他们拒绝买圣诞礼物给我。
好吧,其实里面还有更复杂的原因。
刚开始的两年
这两年,我深深地热爱 Google。
当“年度员工调查”问我五年后是否期望还留在谷歌时,答案是毋庸置疑的。
五年后我当然依然还会在谷歌。我的周围有着全世界最优秀的工程师,我们使用的是全世界最先进的开发工具,我们还可以免费享受世界各地的美味食物。
![](https://i-blog.csdnimg.cn/blog_migrate/48a760c9a798eac3f0ea34ffbc69ab5a.png)
我最近的业绩评定是”远超乎预期”。如果继续保持这种态势的话,我很快就能晋升到更高一级的资深软件工程师。多么厉害的头衔!以后在我的职业生涯,我就可以自豪地说,“对,我曾在 Google 担任资深软件工程师。“听到的人肯定会十分印象深刻。我的经理向我保证我很快就能晋升,他觉得我已经有能力从事进阶工作了,我只需要用合适的专案向晋升委员会证明即可。
经理不给你晋升?
不是的,这和经理无关,因为 Google 的经理不能晋升他们的直接下属。他们甚至没有投票权。
相反,晋升的决定权在于由资深软件工程师和经理组成的小型委员会,在决定晋升之前他们甚至从未听说过你。
申请晋升你需要整理”晋升资料集”:收集来自队友的书面建议,你创建的设计文件以及你撰写的小型论文,通过这些来解释为什么你值得晋升。
然后晋升委员会与其他少数人一起审核你的资料集,花一天时间来决定谁能晋升,谁不能。
在我与 Google 前两年的蜜月期,这个系统听起来很棒。我的命运掌握在一个从未见过我的神秘委员会手中。他们不会有任何偏袒也不受政治的左右。他们会看到我所有的努力,他们会因为我高品质的程式码和精明的工程决策而认可我。
但事情其实并不是这样运作的
在我整理我的第一份晋升资料集之前,我从未想过它运作流程的后勤方面。
在我的脑海里,晋升委员会就是这样一个站在上帝视角的公正组织。如果每一天我都全心全意地选择要解决的正确问题,努力提高程式码的品质,竭尽全力帮助我的团队高效执行,那么晋升委员会就会神奇地无所不知并因此而奖励我。
然而,事实是,它并不是这样工作的。而我花了两年才弄明白这一点。
天真地工作
在看清真相前,我的主要责任是一条老旧的资料管线。它多年来一直处于维修模式,随着负荷的增加,管线因为过大流量而不稳。它经常悄无声息地停止运作或产生不正确的输出。其故障需要数天才能诊断,因为自最初的设计规范开始就没有人为它写过文件。
我自豪又亲切地呵护管道使得它恢复了健康。我修复了数十个 bug 并撰写了自动化测试,以确保它们不会再出现问题。我删除了数千行程式码,这些程式码要嘛已经没用了,要嘛完全可以被现代函式库所取代。我为管线添加了文件,以便我的队友可以随时了解其结构知识。
问题是,正如我在晋升时发现的那样,这些成果没有一个是可以量化的。我无法证明我所做的任何事情对 Google 产生了积极的影响。
不能测量 = 不存在
我大幅减少了开发人员修复这些故障的时间,但是我没有制定追踪开发者时间的指标。
我的其他工作用书面形式表达时也是毫不出色。有几次,我搁置了自己的专案几周甚至几个月时间去帮助队友,因为他的新发布版本有风险。这对团队来说是正确的决定,但在晋升资料集中则显得平平无奇。对于晋升委员会来说,我队友的专案是一项重要的工作,需要多个开发者的协助。他们能想方设法地让我帮助他们,这是他们领导素质强大的证据——而我只是一个没有意识的工作傀儡,反而显得我本身负责的工作无关紧要,以至于可以随叫随到,立刻就能放下手头的工作。
在我提交我的第一个晋升资料集时,最后的结果正如我所担忧的那样:晋升委员会说我没有证据证明我可以处理技术复杂性,他们也看不到我对 Google 的影响。
![](https://i-blog.csdnimg.cn/blog_migrate/330230051aeeed5b53b857785481a991.png)
从拒绝中学习
被拒绝是一次重大的打击,但我并没有气馁。我觉得我的表现超出了我的程度,但晋升委员会看不到。不过,这是可以解决的。
我承认头两年我实在是太天真了。我没有提前做好计划,使得我所做的工作成为了一纸空文。现在既然我明白了这个过程是如何运作的,那么我只要在继续做好同样工作的同时,准备更充分地记录保存。
例如,我的团队会因为误报而接收大量令人分心的电子邮件警报。以前的我只会解决这些警报。但现在的我知道为了让这项工作出现在我的晋升资料集中,我首先应该设定测量指标,以便我们有警报频率的历史记录。在晋升考察期间,我就能展示一个令人印象深刻的警报趋势图。
不久之后,团队分配给我一个看似注定会晋升的项目。该项目很大程度上依赖于机器学习,而这一直是谷歌的热门话题。它可以自动完成需要数百名人工操作员手动完成的任务,因此它将对 Google 产生显著和客观的影响。同时我还需要在整个专案过程中带领一名初级开发人员——这通常在晋升委员会眼中也可以加分。
节日礼物与叫醒电话
几个月后,Google 结束了为所有员工提供奢华节日礼物的悠久传统。相反,他们将礼物预算用于购买伪装成慈善的广告(X) Chromebook (O) 给贫困的中小学生。
此后不久,我亲耳听到两名员工之间的以下对话:
员工 A :实际上你仍然得到了礼物。像这样的花费消减会增加 Google 股票的价值。你可以出售你的股票奖励用于购买所选择的任何礼物。
员工 B:这不就像是,我告诉我的妻子我没有为她买圣诞礼物,但她可以用我们银行账户里的钱购买她想要的任何礼物?
员工 A :你与 Google 构建的是一种商业关系。如果你对 Google 没有像你为你妻子那样准备礼物而感到失望,那么你误解了这种关系。
等等。所以我与 Google 建立的是商业关系。
我花了两年半的时间才意识到这一点或许会让人觉得有点不可思议,但谷歌在组织内部很好地打造了一个社群意识——让我们觉得我们不仅仅是员工,我们还是 Google 本身。
那次谈话让我意识到我不是 Google。我不过是一个向 Google 提供服务以换取金钱的打工者。
因此,如果 Google 和我之间存在一个可以服务于各方利益的商业关系,那么为什么我要花时间在所有这些符合 Google 利益而不是我自己利益的任务上?如果晋升委员会不奖励 bug 修复和团队支援工作,那么为什么我还要去做这些事情呢?
为晋升之路做最佳化
我第一次晋升的否决让我学到了一个错误的教训。我认为我可以继续做同样的工作,但是可以做一些事情使得晋升委员会看得我的成果。然而其实我应该做相反的事情:弄清楚晋升委员会想要什么,然后专门去做那项工作。
我采用了新的策略。在开始任何任务之前,我会问问自己这是否有助于晋升。如果答案是否定的,那么我就不做。
我的程式码品质标准从“能否在未来 5 年内仍能维护这份程式码?”变为“是否可以维护到我被晋升为止?”。我不提交也不修复任何 bug,除非它们会威胁我的专案的新版本发布。我设法推脱了所有关于维护工作的职责。我停止了去校园招聘的志愿活动。我从每周执行一次或两次面试降低到零。
然而我的专案被取消了
优先度被改变了。管理层将我的专案移交给了我们在印度的姐妹团队。作为交换,该团队向我们提供了他们的一个专案。这是一个没有文件记录的系统,建立在不推荐使用的基础设施上,但它仍然是产品的关键组成部分。分配给我的工作是将此系统从姐妹团队的程式码中清理出来,并搬迁到一个新的框架中,同时确保它能在正式环境中运作并达到其性能指标。
就晋升而言,我这几个月的努力都白费了。因为我为了那个被取消的专案而没有发布任何东西,所以我耗费在该专案上的两个月时间毫无价值。而且我还得花上几周时间才能加快掌握我继承的系统,并且在为了保持系统可操作这一苦差事中,我必定会耗费许许多多时间。
我到底在做什么?
这是六个月来第三次,我的经理在一个专案的中间重新安排我了。每一次,他都向我保证,这与我的工作绩效无关,而是高层管理策略或团队人员的一些变动。
此时,我回过头来想从高层发生的事情。不去想我的经理,他的经理,甚至忽略所谓的晋升委员会。如果我仅仅把另一边简化为 Google,会怎么样?我们的“商业关系”之间发生了什么?
是的,Google 一直告诉我,除非看到我完成了一个专案,否则它无法评判我的工作。但是,因为 Google 中途不停的中断并将我分配到新的专案,所以我无法完成任何专案。
整个过程荒谬无比。
![](https://i-blog.csdnimg.cn/blog_migrate/f274348f71b486ff6bdcf75429dba993.png)
我的职业生涯由一个流动的匿名委员会所决定,他们将在一个小时的时间里决定我的前途。一个我抗议无效的管理决策抹杀了我那么多月在事业上取得的进步。
最为糟糕的是,我并不以我的工作为荣。我扪心自问的不再是:“我该如何解决这个具有挑战性的问题?”而是:“我怎么才能让这个问题从晋升的角度看起来具有挑战性?”我讨厌这样。
即使我获得了晋升,然后呢?主流观念是每一次的晋升都会比上一次更难。为了继续推进我的职业生涯,我需要范围更大、涉及合作团队更多协作的专案。但这意味着该专案可能会失败,因为会有更多我无法控制的因素,从而浪费数月甚至数年时间。
有什么其他选择?
大约在这个时候,我发现了Indie Hackers[2]。
![](https://i-blog.csdnimg.cn/blog_migrate/b977d1bf86d3404c5ff5980d229dd5b6.png)
这是一个面对小型软件创始人的线上社群。要强调的重点:小。这些创建者的目标不是成为第二个扎克伯格,而是想从一些适中而又有利可图的业务中赚点钱糊口。
我一直对创办自己的软件公司非常感兴趣,但我只知道矽谷的创业之路。我原本以为成为一名软件创始人意味着要将大部分时间用于融资,剩下的时间则要担心如何吸引新的百万用户。
Indie Hackers 给出了一个诱人的选项。大多数会员利用自己的积蓄建立企业,或将其作为全职工作之外的业余项目。他们不需要答覆投资者,当然也不必向匿名委员会证明自己。
缺点也是有的。一方面收入不太稳定,另一方面还面临更多灾难性风险。如果我在 Google 上犯了一个错误,导致公司损失 1000 万美元,我不用承担任何后果— — 我需要做的是写一篇事后报告,然后每个人都会开心于此次学习机会。但对于大多数创始人来说,1000 万美元的错误将意味着企业的破产以及几辈子的债务。
在 Indie Hackers 做创始人的念头在我脑海中挥之不去,让我魂牵梦萦。因为无论业务是取得巨大的成功还是一蹶不振多年,都在自己的掌控之中。在 Google,我不觉得我可以自己控制专案,更不用说职业成长以及团队方向了。
我反覆思索了几个月,最后终于下了决心。我要成为一名独立开发者。
离职前的最后一件事
我在 Google 上还有没完成的事情。在为了晋升投入三年时间后,我自己也不想毫无建树就离开。此时只需要几个月时间我就可以重新申请晋升了,所以我决定给自己最后一次机会。
悲剧的是,距离成果统计结束还有六周,我的专案被取消了。又一次被取消了。
事实上,我的整个团队都被取消了。这在 Google 是很常见的,而且它还有一个委婉的称呼:碎片整理(defrag)。管理层将我们团队的专案移交给我们在印度的姐妹团队。我的队友和我都必须从不同领域重新起步。
不管怎么说我已经申请了晋升。几周后,我的经理给我看了结果。我的表现评分是“极为杰出的”,这是最高的分数,每期只给约 5%的员工。晋升委员会指出,在过去的六个月中,我清楚地展现了高水准的工作。而这刚好不是我为了最有效晋升而努力的那几个月时间。
但他们觉得六个月的追踪记录时间不够长,所以……祝我下次更好运。
我的经理告诉我,如果我再做六个月的高水准工作,我的晋升机会很大。我不能说我没有受到诱惑,但到那时为止,在过去两年时间给我的鼓励一直都是“六个月后晋升机会很大”。
所以现在是时候离开了。
那么,下一步呢?
当我告诉别人我离开了 Google 的时候,他们认为我一定有一些绝妙的创业点子。只有傻瓜才会辞掉 Google 软件工程师这份工作。
我究竟是不是一个傻瓜,见仁见智吧。
我的计划用几个月的时间尝试一些不同的专案,看看其中有没有迎合人心会流行起来的,例如:
继续致力于KetoHub[3],看看我能否实现盈利
在 Sia 上建立业务,这是我经常用到的分散式储存技术
花更多时间撰写程式,并寻找从中赚钱的途径
Google 是一个伟大的公司,我在那里学习了许多宝贵的技术和技能。辞职是一个很艰难的抉择,因为我还有更多需要学习的东西,但要找 Google 这样的雇主总还是可以的。我不会一直有这样的自由可以顺从本心地创办自己的公司,不知道我能走多远,期待我的成果吧。
参考资料
https://mtlynch.io/why-i-quit-google/: https://mtlynch.io/why-i-quit-google/
Indie Hackers: https://www.indiehackers.com/
KetoHub: https://mtlynch.io/ketohub-month-3/推荐阅读
3. 撸了一个「合成大西瓜」
每天推荐前端相关的教程,项目和经验等。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~