站长译:我为什么离开GOOGLE为自己工作。本文来自 https://mtlynch.io/ 翻译:葫芦娃,术语校正:站长

For the past four years, I've worked as a software developer at Google. On February 1st, I quit. It was because they refused to buy me a Christmas present.

在过去的四年里,我在谷歌做软件开发。2月1日,我辞职了。因为他们拒绝给我买圣诞礼物。

Well, I guess it's a little more complicated than that.

好吧,我想的复杂了

The first two years

最初的两年

Two years in, I loved Google.

两年过去了,我爱谷歌。

When the annual employee survey asked me whether I expected to be at Google in five years, it was a no-brainer.

当年度员工调查问我是否希望在五年内一直呆在谷歌时,我毫不犹豫地答应了

Of course I'd still be at Google in five years. I was surrounded by the best engineers in the world, using the most advanced development tools in the world, and eating the free-est food in the world.

当然,五年后我还会在谷歌工作。我被世界上最好的工程师包围,使用世界上最先进的开发工具,吃世界上最免费的食物。

My typical day at Google

My most recent performance rating was “Strongly Exceeds Expectations.” If I just kept going, I'd soon be promoted to the next level, Senior Software Engineer. What a great title! Forever after in my career, I'd be able to say, “Yes, I was a Senior Software Engineer. At Google.” People would be so impressed.

我最近的业绩评价是“大大超出了预期”,如果我坚持下去,我很快就会晋升到下一个级别,高级软件工程师。多好的头衔!在我的职业生涯中,我可以说,“是的,我是一个高级软件工程师。在谷歌,人们会很佩服我的

My manager assured me that my promotion was close. He felt that I was already capable of senior-level work. I just needed the right project to prove it to the promotion committee.

我的经理向我保证我升职在即。他觉得我已经能胜任高级工作了。我只是需要一个合适的项目来向推广委员会证明。

Your manager doesn't promote you?

你的经理不提拔你?

No, managers at Google can't promote their direct reports. They don't even get a vote.

不,谷歌的经理们不能推广他们的直接下属。他们连选票都没有。

Instead, promotion decisions come from small committees of upper-level software engineers and managers who have never heard of you until the day they decide on your promotion.

相反,晋升决定来自于由高级软件工程师和经理组成的小型委员会,他们直到决定晋升的那天才告诉你

You apply for promotion by assembling a “promo packet”: a collection of written recommendations from your teammates, design documents you've created, and mini-essays you write to explain why your work merits a promotion.

你通过收集一个“档案”来申请升职:一个来自你的队友的书面推荐,一个你创建的设计文档,一个你写的小论文来解释为什么你的工作值得升职。

A promotion committee then reviews your packet with a handful of others, and they spend the day deciding who gets promoted and who doesn't.

然后,一个晋升委员会会和其他一些人一起审查你的信息,他们会花一天的时间来决定哪些人得到了晋升,哪些人没有。

During my two-year honeymoon phase, this system sounded great to me. Of course my fate should be in the hands of a mysterious committee who's never met me. They wouldn't be tainted by any sort of favoritism or politics. They'd see past all that and recognize me for my high-quality code and shrewd engineering decisions.

在我为期两年的蜜月期里,这个系统听起来很棒。当然,我的命运一直掌握在一个从未见过我的神秘委员会手中。他们不会受到任何偏袒或政治的影响。他们会看穿这一切,并认可我的高质量代码和精明的工程决策。

That's not really how it works

Before I put together my first promo packet, I never thought about the logistics of how it all worked.

In my head, the promotion committee was this omniscient and fair entity. If I spent each day choosing the right problems to solve, making the codebase better, and helping my team execute efficiently, the promotion committee would magically know this and reward me for it.

Unsurprisingly, it doesn't work like that. It took me two years to figure that out.

其实不是这样的

在我整理我的第一个升值档案之前,我从来没有想过它是如何运作的。

在我看来,推广委员会是一个无所不知、公平的实体。如果我每天都花时间选择正确的问题来解决,使代码库更好,并帮助我的团队高效地执行,那么推广委员会就会神奇地知道这一点,并为此奖励我。

毫不奇怪,它不是这样运作的。我花了两年才弄明白。

Working naïvely

天真地工作

My main responsibility until that point was a legacy data pipeline. It had been in maintenance mode for years, but load had increased, and the pipeline was buckling under the pressure. It frequently died silently or produced incorrect output. Its failures took days to diagnose because nobody had written documentation for it since its original design spec.

I proudly and lovingly nursed the pipeline back to health. I fixed dozens of bugs and wrote automated tests to make sure they wouldn't reappear. I deleted thousands of lines of code that were either dead or could be replaced by modern libraries. I documented the pipeline as I learned it so that the institutional knowledge was available to my teammates instead of siloed in my head.

The problem, as I discovered at promotion time, was that none of this was quantifiable. I couldn't prove that anything I did had a positive impact on Google.

在此之前,我的主要职责是遗留数据管道(注: 数据传输 )。多年来一直处于维护模式,但负荷增加,管道在压力下发生屈曲。它经常死机或产生不正确的输出。它的故障需要几天的时间来诊断,因为从最初的设计规范开始就没有人为它编写文档。

我自豪而热情地护理着管道恢复健康。我修复了几十个错误,并编写了自动测试以确保它们不会再次出现。我删除了数千行代码,这些代码要么已经死了,要么可以被现代的库所取代。我在学习的过程中记录了这条管道,这样我的团队成员就可以获得机构知识,而不是在我的头脑中孤立起来。

正如我在升职时发现的,问题是这些都不能量化。我无法证明我所做的任何事情对谷歌都有积极的影响。

Metrics or it didn't happen

去衡量,不然它就不会发生(翻译时有疑问)

The pipeline didn't record many metrics. The ones it did have made it look like things had gotten worse. My bug discoveries caused the overall bug count to increase. The pipeline's failures increased because I made it fail fast on anomalies instead of silently passing along bad data. I drastically reduced the time developers spent repairing those failures, but there were no metrics that tracked developer time.

My other work didn't look so good on paper either. On several occasions, I put my projects on hold for weeks or even months at a time to help a teammate whose launch was at risk. It was the right decision for the team, but it looked unimpressive in a promo packet. To the promotion committee, my teammate's project was the big, important work that demanded coordination from multiple developers. If they hornswoggled me into helping them, it's evidence of their strong leadership qualities. I was just the mindless peon whose work was so irrelevant that it could be pre-empted at a moment's notice.

I submitted my first promo packet, and the results were what I feared: the promotion committee said that I hadn't proven I could handle technical complexity, and they couldn't see the impact I had on Google.

数据管道没有记录很多指标。它确实让事情看起来更糟。我的错误发现导致了错误总数的增加。管道的故障增加了,因为我让它在异常情况下快速故障,而不是默默地传递坏数据。我大大减少了开发人员修复这些故障的时间,但没有跟踪开发人员时间的指标。

我的其他工作在纸上也不怎么好看。有几次,我把我的项目一次搁置几个星期甚至几个月,以帮助一个队友。这对团队来说是个正确的决定,但在宣传资料中却显得不起眼。对于推广委员会来说,我的队友的项目是一项大而重要的工作,需要多个开发人员的协调。如果他们强迫我帮助他们,那就证明他们有很强的领导能力。我只是一个没头脑的苦工,他的工作太无关紧要了,一接到通知就可以先发制人。

我提交了我的第一个宣传档案,结果是我不满的:委员会说,我还没有证明我能处理技术复杂度,他们无法看到我对谷歌的作用

Arguing my case to the promotion committee

Learning from rejection

从拒绝中学习

The rejection was a difficult blow, but I wasn't discouraged. I felt I was performing above my level, but the promotion committee couldn't see it. That was solvable.

I decided that I had been too naïve in my first couple years. I didn't do enough planning up front to make sure the work I was doing left a paper trail. Now that I understood how the process worked, I could keep doing the same good work, just with better record-keeping.

For example, my team was receiving tons of distracting email alerts due to false alarms. Old me would have just fixed these alerts. But now I knew that for this work to appear in my promo packet, I should first set up metrics so that we'd have historical records of alert frequency. At promotion time, I'd have an impressive-looking graph of the alerts trending downward.

Shortly after, I was assigned a project that seemed destined for promotion. It depended heavily on machine-learning, which was and still is the hot thing at Google. It would automate a task that hundreds of human operators were doing manually, so it had a clear, objective impact on Google. It also required me to lead a junior developer throughout the project, which generally won points with promotion committees.

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

我觉得我在最初的几年里太天真了。我没有做足够的前期计划,以确保我正在做的工作留下了一个书面记录。现在我明白了这个过程是如何工作的,我可以继续做同样好的工作,只需要更好的记录。

例如,我的团队因为错误警报而收到大量分散注意力的电子邮件警报。我老了,会把这些警报修好的。但现在我知道,为了让这项工作出现在我的宣传资料包中,我应该首先设置指标,以便我们有警报频率的历史记录。在促销的时候,我会有一张令人印象深刻的图表,上面的警告趋势是向下的。

不久之后,我被分配了一个似乎注定要升职的项目。它在很大程度上依赖于机器学习,这在过去和现在都是谷歌的热门话题。它将自动化一项由数百名人工操作人员手动完成的任务,因此对谷歌产生了明确、客观的影响。它还要求我在整个项目中领导一个初级开发人员,这通常会赢得推广委员会的分数。

The holiday gift wake up call

节日礼物叫醒了我

A few months later, Google made headlines when they ended their long-standing tradition of giving lavish holiday gifts to all of their employees. Instead, they used the gift budget to buy advertising disguised as charity Chromebooks for underprivileged schoolchildren.

Shortly after this, I witnessed the following conversation between two employees:

Employee A: You effectively are still getting the gift. Cuts like these increase the value of Google's stock. You can sell your stock grants and buy any present you choose.

Employee B: What if I told my wife that I wasn't buying her a Christmas gift, but she could use the money in our bank account to buy any present she wants?

Employee A: You're in a business relationship with Google. If you're disappointed that Google isn't “romancing” you with gifts like you do for your wife, you have a misguided notion of the relationship.

Wait a second. I was in a business relationship with Google.

It may sound strange that it took me two and a half years to realize it, but Google does a good job of building a sense of community within the organization. To make us feel that we're not just employees, but that we are Google.

That conversation made me realize that I'm not Google. I provide a service to Google in exchange for money.

So if Google and I have a business relationship that exists to serve each side's interests, why was I spending time on all these tasks that served Google's interests instead of my own? If the promotion committee doesn't reward bugfixing or team support work, why was I doing that?

几个月后,谷歌(Google)结束了长期以来向所有员工赠送奢华节日礼物的传统,成为头条新闻。取而代之的是,他们用礼品预算为贫困学童购买伪装成慈善彩电的广告。

此后不久,我目睹了两名员工之间的以下对话:

员工甲:你实际上还是得到了这份礼物。这样的削减增加了谷歌股票的价值。你可以卖掉你的股票和购买你选择的任何礼物。

员工乙:如果我告诉我妻子我没有给她买圣诞礼物,但她可以用我们银行账户上的钱买任何她想要的礼物呢?

员工甲:你和谷歌有业务关系。如果你对谷歌没有像为你妻子那样用礼物来“浪漫”你感到失望,你对这段关系的看法是错误的。

等等。我和谷歌有业务关系。

我花了两年半的时间才意识到这一点,这听起来可能有些奇怪,但谷歌在组织内部建立社区意识方面做得很好。让我们觉得我们不仅仅是员工,我们还是谷歌。

那次谈话让我意识到我不是谷歌。我为谷歌提供服务以换取金钱。

因此,如果谷歌和我有一个服务于双方利益的商业关系,为什么我要花时间在所有这些为谷歌利益而不是我自己利益的任务上?如果晋升委员会不奖励修复或团队支持工作,为什么我要这么做?

Optimizing for promotion

优化升级

My first denied promotion taught me the wrong lesson. I thought I could keep doing the same work but package it to look good for the promotion committee. I should have done the opposite: figure out what the promotion committee wants, and do that work exclusively.

I adopted a new strategy. Before starting any task, I asked myself whether it would help my case for promotion. If the answer was no, I didn't do it.

My quality bar for code dropped from, “Will we be able to maintain this for the next 5 years?” to, “Can this last until I'm promoted?” I didn't file or fix any bugs unless they risked my project's launch. I wriggled out of all responsibilities for maintenance work. I stopped volunteering for campus recruiting events. I went from conducting one or two interviews per week to zero.

我第一次被拒绝升职给了我一个错误的教训。我原以为我可以继续做同样的工作,但把它包装起来,让它看起来很适合升职委员会。我应该做相反的事情:弄清楚推广委员会想要什么,然后专门做这项工作。

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

我的代码质量条从“我们能在未来5年内维护它吗?”?“到,”这能持续到我升职吗?“我没有提交或修复任何错误,除非他们冒着启动项目的风险。我逃避了维护工作的所有责任。我不再志愿参加校园招聘活动。我从每周进行一两次面试变成了零

Then my project was canceled

我的项目被取消了

Priorities shifted. Management traded my project away to our sister team in India. In exchange, that team gave us one of their projects. It was an undocumented system, built on deprecated infrastructure, but it was nevertheless a critical component in production. I was assigned to untangle it from our sister team's code and migrate it to a new framework, all while keeping it running in production and hitting its performance metrics.

As far as my promotion was concerned, this was a setback of several months. Because I hadn't released anything for my canceled project, the two months I spent on it were worthless. It would take me weeks just to get up to speed on the system I was inheriting, and I was liable to lose several more in the gruntwork of keeping it operational.

重点转移。管理层把我的项目卖给了我们在印度的姐妹团队。作为交换,那个团队给了我们一个他们的项目。它是一个没有文档记录的系统,建立在废弃的基础设施上,但它仍然是生产中的一个关键组件。我被指派将它从我们姐妹团队的代码中分离出来,并将其迁移到一个新的框架中,同时保持它在生产环境中运行并达到其性能指标。

就我的晋升而言,这是几个月来的挫折。因为我没有为我取消的项目发布任何东西,我花在这上面的两个月毫无价值。我要花上几个星期的时间来加快我继承的系统的速度,而且我很可能在维持系统运行的繁重工作中再损失几个。

What am I even doing?

我在做什么?

It was the third time in six months that my manager had reassigned me midway through a project. Each time, he assured me that it had nothing to do with the quality of my work, but rather some shift in upper management strategy or team headcount.

At this point, I took a step back to assess what was happening from a high level. Forget my manager, forget his managers, forget the promotion committee. What if I boiled it down to just me and just Google? What was happening in our “business relationship?”

Well, Google kept telling me that it couldn't judge my work until it saw me complete a project. Meanwhile, I couldn't complete any projects because Google kept interrupting them midway through and assigning me new ones.

The dynamic felt absurd.

这是六个月来我的经理第三次在一个项目进行到一半时把我调职。每次,他都向我保证,这与我的工作质量无关,而是与高层管理策略或团队人数的一些变化有关。

在这一点上,我退了一步,从更高的层面来评估正在发生的事情。忘了我的经理,忘了他的经理,忘了晋升委员会。如果我把它归结为只有我和谷歌呢?我们的“商业关系”发生了什么?”

好吧,谷歌一直告诉我,在看到我完成一个项目之前,它无法判断我的工作。同时,我不能完成任何项目,因为谷歌一直在中途打断他们,给我分配新的项目。

上司让我感到荒谬

The Google promotion committee approach to book publishing

My career was being dictated by a shifting, anonymous committee who thought about me for an hour of their lives. Management decisions that I had no input into were erasing months of my career progress.

Worst of all, I wasn't proud of my work. Instead of asking myself, “How can I solve this challenging problem?” I was asking, “How can I make this problem look challenging for promotion?” I hated that.

Even if I got the promotion, what then? Popular wisdom said that each promotion was exponentially harder than the last. To continue advancing my career, I'd need projects that were even larger in scope and involved collaboration with more partner teams. But that just meant the project could fail due to even more factors outside my control, wasting months or years of my life.

我的职业生涯是由一个不断变化的匿名委员会决定的,他们用一个小时的时间来考虑我。我没有参与的管理决策抹去了我几个月的职业发展。

即使我升职了,那又怎样?每次升职都比上一次难得多。为了继续推进我的职业生涯,我需要更大范围的项目,包括与更多合作伙伴团队的合作。但这只意味着这个项目可能会因为更多我无法控制的因素而失败,浪费我数月或数年的生命。

What's the alternative?

有什么选择呢?

Around this time, I discovered Indie Hackers.

大概在这个时候,我发现了独立黑客。

Screenshot of Indie Hackers website

It's an online community for founders of small software businesses. Emphasis on small. These weren't Zuckerberg hopefuls, but rather people who wanted to build modest, profitable businesses that pay their bills.

I had always been interested in starting my own software company, but I only knew of the Silicon Valley startup path. I thought being a software founder meant spending most of my time fundraising and the rest of it worrying about how to attract my next million users.

Indie Hackers presented an attractive alternative. Most members built their businesses with their own savings or as side projects to their full-time jobs. They didn't answer to investors, and they certainly didn't have to prove themselves to anonymous committees.

There were downsides, of course. Their income was less steady, and they faced more numerous catastrophic risks. If I ever made a mistake at Google that cost the company $10 million, I would suffer no consequences. I'd be asked to write a post-mortem, and everyone would celebrate the learning opportunity. For most of these founders, a $10 million mistake would mean the end of their business and several lifetimes of debt.

Founders on Indie Hackers captivated me because they were in control. Whether their business became a runaway success or stagnated for years, they were calling the shots. At Google, I didn't feel in control of my own projects, much less my career growth or my team's direction.

I thought about it for months and finally decided. I wanted to be an Indie Hacker.

这是一个面向小型软件企业创始人的在线社区。强调小。这些人不是扎克伯格的希望之星,而是那些想建立起能支付账单的微薄、盈利的企业的人。

我一直对创办自己的软件公司感兴趣,但我只知道硅谷的创业之路。我以为做一个软件创办人意味着我大部分时间都在筹款,剩下的时间都在担心如何吸引下百万用户。

独立黑客提出了一个有吸引力的选择。大多数会员用自己的储蓄建立自己的企业,或者作为全职工作的辅助项目。他们没有回答投资者的问题,当然也不必向匿名委员会证明自己。

当然,也有缺点。他们的收入不太稳定,面临着更多的灾难性风险。如果我在谷歌犯了一个让公司损失1000万美元的错误,我不会承担任何后果。我会被要求写一篇验尸报告,每个人都会庆祝这个学习机会。对于这些创始人中的大多数人来说,一个1000万美元的错误将意味着他们的业务的终结和几辈子的债务。

独立黑客的创始人吸引了我,因为他们控制着我。不管他们的生意是一飞冲天的成功,还是多年来停滞不前,他们都在发号施令。在谷歌,我觉得自己无法控制自己的项目,更不用说我的职业发展和团队的方向了。

我考虑了好几个月,终于决定了。我想成为一名独立黑客。

One last thing before I leave

我离开前的最后一件事

I still had unfinished business at Google. After investing three years into my promotion, I hated the idea of leaving with nothing to show for it. There were only a few months left until I could reapply for promotion, so I decided to give it one last shot.

Six weeks before the performance period ended, my project was canceled. Again.

Actually, my whole team was canceled. This was a common enough occurrence at Google that there was a euphemism for it: a defrag. Management transferred my team's projects to our sister team in India. My teammates and I all had to start over in different areas of the company.

I applied for the promotion anyway. Weeks later, my manager read me the results. My performance rating was “Superb,” the highest possible score, given to around 5% of employees each cycle. The promotion committee noted that in the past six months, I clearly demonstrated senior-level work. These were, uncoincidentally, the months when I was optimizing for promotion.

But they felt that six months wasn't a long enough track record, so… better luck next time.

My manager told me I had a strong chance at promotion if I did the same quality work for another six months. I can't say I wasn't tempted, but by that point, I'd been hearing, “great shot at promotion in six months,” for the past two years.

It was time to go.

我在谷歌还有未完成的工作。我花了三年的时间来提升自己,但我讨厌这样一个想法:离开时没有什么可炫耀的东西。只剩下几个月的时间,我就可以重新申请升职了,所以我决定给它最后一次机会。

演出结束前六周,我的项目被取消了。再一次。

实际上,我的整个团队都被取消了。这在谷歌已经是司空见惯的事情,以至于有一个委婉的说法:defrag。管理层把我团队的项目移交给我们在印度的姐妹团队。我的队友和我都必须重新开始在公司的不同领域。

我还是申请了升职。几周后,我的经理给我看了结果。我的绩效评分是“极好”,是可能的最高得分,每个周期给大约5%的员工。促进委员会注意到,在过去六个月里,我清楚地展示了高级工作。这几个月,我正为升职而优化。

但他们觉得六个月的记录不够长,所以…下次运气会更好。

我的经理告诉我,如果我再干六个月同样质量的工作,我就有很大的晋升机会。我不能说我没有受到诱惑,但在过去的两年里,我一直听到“六个月升职的好机会”。

该走了。

What's next?

接下来是什么?

When I tell people I left Google, they assume I must have some brilliant startup idea. Only an idiot would leave a job as cushy as Google Software Engineer.

But I am indeed an idiot with no idea.

My plan is to try different projects for a few months each to see if any of them catch on, for example:

  • Continue working on KetoHub to see if I can make it profitable
  • Build a business on top of Sia, a distributed storage technology I've written about frequently
  • Spend more time writing, and look for ways to earn money from it

Google was a great place to work, and I learned valuable skills during my time there. Leaving was difficult because I had more to learn, but there will always be employers like Google. I won't always have the freedom to start my own company, so I look forward to seeing where this takes me.

当我告诉人们我离开了谷歌,他们认为我一定有一些聪明的创业想法。只有白痴才会辞去谷歌软件工程师这样轻松的工作。

但我真的是一个不知道的白痴。

我的计划是每个月尝试不同的项目,看看是否有任何项目能够流行起来,例如:

继续研究KetoHub,看看我能不能盈利

在Sia(一种我经常提到的分布式存储技术)之上建立业务

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

谷歌是一个很好的工作场所,我在那里学到了宝贵的技能。离开是困难的,因为我有更多的东西要学,但总会有像谷歌这样的雇主。我不可能总是有自由创办自己的公司,所以我期待着看到这一点。


暮春三月,江南草长,杂花生树,群莺乱飞