Why I Quit Google to Work for Myself

Michael Lynch

為什麼我辭掉 Google 的工作,選擇為自己工作

原文由 Michael Lynch 發布,訂閱此部落格

過去四年,我一直在 Google 擔任軟體工程師。二月一日那天,我辭職了。原因是他們不肯送我一份耶誕禮物。

好吧,我想實際情況比這稍微複雜一點。

前兩年

到 Google 滿兩年的時候,我愛死 Google 了。

當年度員工調查問我,五年後是否還想留在 Google 時,我想都不用想。

當然五年後我還會在 Google 啊。我身邊圍繞著全世界最頂尖的工程師,用著全世界最先進的開發工具,還吃著全世界最免費的食物。

我在 Google 典型的一天

我最近一次的績效評等是「Strongly Exceeds Expectations(大幅超越期待)」。只要我繼續這樣做下去,很快就能升到下一個職等:資深軟體工程師(Senior Software Engineer)。多棒的頭銜啊!往後職涯的每一天,我都可以說:「對,我曾是資深軟體工程師。在 Google 喔。」大家一定會刮目相看。

我的主管向我保證,升遷已經很近了。他覺得我已經具備資深等級的能力。我只需要一個對的專案,向升遷委員會證明這點就好。

你的主管不能幫你升遷?

不行,在 Google,主管不能直接讓直屬部屬升遷。他們甚至連投票權都沒有。

相反地,升遷決定是由一群資深軟體工程師和主管組成的小型委員會做出的,而這些人在決定你升遷的那一天之前,根本沒聽過你的名字。

你要自己申請升遷,方法是組裝一份「升遷資料包(promo packet)」:裡面包含同事給你的書面推薦、你撰寫的設計文件,以及你自己寫的小短文,說明你的工作為什麼值得升遷。

升遷委員會接著會把你的資料包和其他幾份一起審查,花上一整天決定誰能升遷、誰不能。

在我那兩年的蜜月期裡,這套制度聽起來棒極了。當然我的命運應該要交給一個從未見過我的神秘委員會啊。他們才不會被偏袒或政治所污染。他們會看穿這一切,肯定我高品質的程式碼和精明的工程決策。

但實際上不是這樣運作的

在整理第一份升遷資料包之前,我從來沒想過這整套流程實際上是如何運作的。

在我的想像中,升遷委員會是個全知又公正的存在。只要我每天都選擇去解決對的問題、把程式碼庫變得更好、幫助團隊更有效率地執行,升遷委員會就會神奇地知道這一切並獎勵我。

不意外,事情根本不是這樣運作的。我花了兩年才明白這點。

天真地工作

到那時為止,我的主要職責是一條老舊的資料管線(data pipeline)。它已經多年處於維護模式,但負載不斷增加,管線在壓力下搖搖欲墜。它經常無聲無息地掛掉,或是產出錯誤的結果。而每一次出錯都要花上好幾天才能找出原因,因為自從最初的設計文件之後,就再也沒人為它寫過任何文件。

我驕傲又用心地把這條管線從病危中搶救回來。我修了數十個 bug,還寫了自動化測試來確保它們不會再出現。我刪掉了數千行不是無用就是可以用現代函式庫取代的程式碼。我一邊摸索一邊為管線補上文件,讓這些知識不再只鎖在我的腦袋裡,而是讓團隊的每個人都能取得。

問題是,到了要升遷的時候我才發現,這些全都無法量化。我沒辦法證明我做的任何事對 Google 有正面的影響。

沒有數據,就等於沒發生

這條管線本來就沒記錄多少指標,而僅有的那些指標還讓情況看起來變得更糟。我找出來的 bug 讓整體 bug 數量上升。管線的失敗次數也增加了,因為我把它改成遇到異常就快速失敗,而不是默默地把錯誤資料往下傳。我大幅縮短了開發者修復這些失敗所花的時間,但根本沒有任何指標在追蹤開發者所花的時間。

我的其他工作在紙面上看起來也不怎麼樣。有好幾次,我把自己的專案擱置數週甚至數月,去幫一位發佈時程岌岌可危的同事。這對團隊來說是正確的決定,但在升遷資料包裡卻毫不起眼。對升遷委員會而言,同事的專案才是那個需要多位開發者協作的重大、重要工作。如果他們把我哄騙過去幫忙,那正好證明了他們強大的領導能力。而我,只是一個無足輕重的小卒,工作不重要到可以隨時被插隊。

我送出了第一份升遷資料包,結果正如我所擔心的:升遷委員會說我沒有證明自己能處理技術上的複雜度,他們也看不出我對 Google 有什麼影響力。

向升遷委員會據理力爭

從被拒絕中學習

被拒絕是個沉重的打擊,但我沒有氣餒。我覺得自己的表現已經超越了現有職等,只是升遷委員會看不見而已。這是可以解決的。

我認定是自己在頭兩年太天真了。我事前沒有做足夠的規劃,確保自己做的工作能留下書面紀錄。現在我已經了解流程怎麼運作了,我可以繼續做一樣好的工作,只是要把紀錄做得更好。

舉例來說,我的團隊因為誤判而收到大量惱人的電子郵件警示。以前的我會直接把這些警示修好。但現在我知道,為了讓這份工作能在升遷資料包裡呈現,我應該先建立指標,這樣我們才會有警示頻率的歷史紀錄。到了升遷的時候,我就能拿出一張警示數量穩定下降、看起來很漂亮的圖表。

不久後,我被分派到一個看起來註定能幫我升遷的專案。它高度依賴機器學習,那在當時是、到現在仍是 Google 最熱門的領域。它要把數百位人力操作員手動執行的工作自動化,對 Google 有著明確、客觀的影響力。而且整個專案中我還需要帶領一位資淺的工程師,這通常能在升遷委員會那裡加分。

耶誕禮物的當頭棒喝

幾個月後,Google 登上了新聞頭條,因為他們終止了長久以來送給全體員工奢華耶誕禮物的傳統。取而代之的是,他們把禮物預算拿去為弱勢學童購買偽裝成慈善的廣告 Chromebook。

不久之後,我目睹了兩位員工之間的這段對話:

員工 A:你其實還是有拿到禮物。像這樣的撙節會提升 Google 的股價。你可以賣掉你的股票配股,去買任何你想要的禮物。

員工 B:如果我跟我老婆說,今年我不買耶誕禮物給她,但她可以用我們戶頭裡的錢去買任何她想要的禮物,會怎麼樣?

員工 A:你跟 Google 之間是商業關係。如果你因為 Google 沒有像你對老婆那樣「討好」你、送你禮物而感到失望,那你對這段關係的認知就有誤。

等一下。跟 Google 之間也是商業關係啊。

這樣講也許很奇怪,我竟然花了兩年半才意識到這點,但 Google 確實很會在組織內部營造社群感。讓我們覺得自己不只是員工,而是就是 Google 本身。

那段對話讓我醒悟,我不是 Google。我只是提供服務給 Google 來換取報酬。

所以,如果我跟 Google 之間的商業關係是為了服務彼此的利益,那我為什麼要把時間花在那些只對 Google 有利、對我自己卻沒好處的事情上?如果升遷委員會不獎勵修 bug 或支援團隊的工作,那我為什麼還要做?

為升遷而優化

第一次升遷被拒讓我學到了錯誤的教訓。我以為我可以繼續做同樣的工作,只是把它包裝得讓升遷委員會看起來很厲害。我其實應該反過來做:先搞清楚升遷委員會想要什麼,然後只做那些工作。

我採取了新的策略。在開始任何任務之前,我都會問自己:這對我的升遷有幫助嗎?如果答案是否定的,我就不做。

我對程式碼的品質標準,從「我們未來五年還能維護這段程式嗎?」降到了「這段程式能撐到我升遷嗎?」除非 bug 會危及我專案的上線,否則我既不回報也不修。我想盡辦法推掉所有維護工作。我不再自願參加校園徵才活動。面試次數也從每週一到兩場,直接降到零。

然後,我的專案被取消了

優先順序變了。管理層把我的專案交易給了我們在印度的姊妹團隊。作為交換,那個團隊把他們的一個專案給了我們。那是一個沒有文件、建在已被棄用的基礎架構上的系統,卻又是線上環境中關鍵的一環。我被指派去把它從姊妹團隊的程式碼中拆解出來、遷移到新的框架,同時還要讓它在線上持續運作並達到效能指標。

就升遷而言,這讓我倒退了好幾個月。因為被取消的專案什麼都還沒發佈,我在上面花的兩個月等於白費了。光是要熟悉我接手的新系統就要花上好幾週,還可能再花上好幾週去做那些維持它運作的苦工。

我到底在做什麼?

這已經是六個月內,主管第三次在專案進行到一半時把我調走。每一次,他都向我保證這跟我的工作品質無關,只是高層策略或團隊人力的變動。

在這個當下,我退後一步,從更高的角度來審視到底發生了什麼。先不管我的主管,不管他的主管,也不管升遷委員會。如果只剩下我和 Google 呢?在我們這段「商業關係」裡,到底發生了什麼事?

情況是,Google 一直告訴我,除非看到我完成一個專案,否則無法評斷我的工作表現。但同時,我卻一個專案也完成不了,因為 Google 不斷在中途打斷專案,又指派給我新的任務。

整個狀況荒謬至極。

Google 升遷委員會的出書模式

我的職涯正被一個不斷變動、匿名的委員會所主宰,而他們一生中只會花一個小時來思考我的事。那些我完全無法置喙的管理決策,正抹去我好幾個月的職涯進展。

最糟的是,我對自己的工作不再感到驕傲。我不再問自己:「我該如何解決這個有挑戰性的問題?」而是問:「我該如何讓這個問題看起來很有挑戰性,好讓我升遷?」我討厭這樣。

就算我真的升遷了,然後呢?大家都說,每一次升遷的難度都是前一次的數倍。為了讓職涯繼續前進,我需要範圍更大、需要與更多合作團隊協作的專案。但那只意味著專案可能因為更多我無法控制的因素而失敗,浪費我數個月甚至數年的生命。

還有別的選擇嗎?

就在這個時候,我發現了 Indie Hackers。

Indie Hackers 網站截圖

這是一個給小型軟體企業創辦人的線上社群。重點在「小型」。這些人不是想成為下一個 Zuckerberg,而是想打造能穩定獲利、足以支付帳單的務實事業。

我一直都想創辦自己的軟體公司,但我只知道矽谷式的新創路徑。我以為成為軟體創辦人就得把大部分時間花在募資上,剩下的時間則擔心如何吸引下一百萬名使用者。

Indie Hackers 提供了一個吸引人的替代方案。大多數成員是用自己的積蓄,或是以正職工作之餘的副業來打造事業。他們不需要向投資人負責,當然也不用向匿名委員會證明自己。

當然,也有缺點。他們的收入比較不穩定,也面臨更多毀滅性的風險。如果我在 Google 犯了一個讓公司損失一千萬美元的錯誤,我不會受到任何懲罰。我只會被要求寫一份事後檢討報告,然後大家會把它當作寶貴的學習機會來慶祝。但對這些創辦人中的大多數人來說,一個一千萬美元的錯誤就意味著事業的終結,以及好幾輩子都還不完的債務。

Indie Hackers 上的創辦人深深吸引了我,因為他們擁有主導權。無論事業是一飛沖天還是停滯多年,都是他們自己在做主。在 Google,我連自己的專案都無法掌控,更別說是職涯成長或團隊的方向了。

我考慮了好幾個月,最後下定決心。我想成為一名 Indie Hacker。

離開前的最後一件事

在 Google,我還有未了的心願。在升遷上投入了三年之後,我討厭就這樣一無所獲地離開。距離可以再次申請升遷只剩下幾個月,所以我決定再給自己最後一次機會。

在績效考核期結束前的六週,我的專案又被取消了。

其實,是整個團隊都被取消了。這在 Google 是常見到有個委婉說法:defrag(重組)。管理層把我們團隊的專案全都轉移給了在印度的姊妹團隊。我和我的同事們全都得在公司不同的部門重新開始。

我還是申請了升遷。幾週後,主管向我宣讀結果。我的績效評等是「Superb(卓越)」,是最高的等級,每個週期只有約 5% 的員工能拿到。升遷委員會指出,在過去六個月裡,我明確展現了資深等級的工作表現。而這段時間,不巧正是那段我全力為升遷而優化的日子。

但是他們覺得六個月的表現還不足以作為長期的證明,所以……下次再加油吧。

我的主管告訴我,只要再維持同樣品質的工作六個月,我就很有機會升遷。我不能說自己完全不心動,但在那個當下,過去兩年來我已經聽過太多次「六個月後很有機會升遷」這種話了。

是時候離開了。

接下來呢?

當我告訴別人我離開了 Google,他們都以為我一定是有什麼絕妙的新創點子。只有傻子才會辭掉 Google 軟體工程師這種爽缺。

但我確實就是個毫無想法的傻子。

我的計畫是每隔幾個月就嘗試不同的專案,看看有沒有哪個能做出點成績,例如:

  • 繼續經營 KetoHub,看看能不能讓它開始獲利
  • 在 Sia 這個我經常撰文介紹的分散式儲存技術之上打造事業
  • 花更多時間寫作,並尋找從中獲利的方式

Google 是個很棒的工作場所,我在那裡學到了寶貴的技能。離開並不容易,因為還有更多東西可以學,但像 Google 這樣的雇主永遠都在。我不一定永遠都有創業的自由,所以我很期待看看這條路會帶我走向何方。

後續更新


插圖由 Loraine Yow 繪製。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言