為什麼我辭掉 Google 的工作,選擇為自己工作
原文由 Michael Lynch 于 發布,訂閱此部落格
過去四年,我一直在 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 不斷在中途打斷專案,又指派給我新的任務。
整個狀況荒謬至極。

我的職涯正被一個不斷變動、匿名的委員會所主宰,而他們一生中只會花一個小時來思考我的事。那些我完全無法置喙的管理決策,正抹去我好幾個月的職涯進展。
最糟的是,我對自己的工作不再感到驕傲。我不再問自己:「我該如何解決這個有挑戰性的問題?」而是問:「我該如何讓這個問題看起來很有挑戰性,好讓我升遷?」我討厭這樣。
就算我真的升遷了,然後呢?大家都說,每一次升遷的難度都是前一次的數倍。為了讓職涯繼續前進,我需要範圍更大、需要與更多合作團隊協作的專案。但那只意味著專案可能因為更多我無法控制的因素而失敗,浪費我數個月甚至數年的生命。
還有別的選擇嗎?
就在這個時候,我發現了 Indie Hackers。

這是一個給小型軟體企業創辦人的線上社群。重點在「小型」。這些人不是想成為下一個 Zuckerberg,而是想打造能穩定獲利、足以支付帳單的務實事業。
我一直都想創辦自己的軟體公司,但我只知道矽谷式的新創路徑。我以為成為軟體創辦人就得把大部分時間花在募資上,剩下的時間則擔心如何吸引下一百萬名使用者。
Indie Hackers 提供了一個吸引人的替代方案。大多數成員是用自己的積蓄,或是以正職工作之餘的副業來打造事業。他們不需要向投資人負責,當然也不用向匿名委員會證明自己。
當然,也有缺點。他們的收入比較不穩定,也面臨更多毀滅性的風險。如果我在 Google 犯了一個讓公司損失一千萬美元的錯誤,我不會受到任何懲罰。我只會被要求寫一份事後檢討報告,然後大家會把它當作寶貴的學習機會來慶祝。但對這些創辦人中的大多數人來說,一個一千萬美元的錯誤就意味著事業的終結,以及好幾輩子都還不完的債務。
Indie Hackers 上的創辦人深深吸引了我,因為他們擁有主導權。無論事業是一飛沖天還是停滯多年,都是他們自己在做主。在 Google,我連自己的專案都無法掌控,更別說是職涯成長或團隊的方向了。
我考慮了好幾個月,最後下定決心。我想成為一名 Indie Hacker。
離開前的最後一件事
在 Google,我還有未了的心願。在升遷上投入了三年之後,我討厭就這樣一無所獲地離開。距離可以再次申請升遷只剩下幾個月,所以我決定再給自己最後一次機會。
在績效考核期結束前的六週,我的專案又被取消了。
其實,是整個團隊都被取消了。這在 Google 是常見到有個委婉說法:defrag(重組)。管理層把我們團隊的專案全都轉移給了在印度的姊妹團隊。我和我的同事們全都得在公司不同的部門重新開始。
我還是申請了升遷。幾週後,主管向我宣讀結果。我的績效評等是「Superb(卓越)」,是最高的等級,每個週期只有約 5% 的員工能拿到。升遷委員會指出,在過去六個月裡,我明確展現了資深等級的工作表現。而這段時間,不巧正是那段我全力為升遷而優化的日子。
但是他們覺得六個月的表現還不足以作為長期的證明,所以……下次再加油吧。
我的主管告訴我,只要再維持同樣品質的工作六個月,我就很有機會升遷。我不能說自己完全不心動,但在那個當下,過去兩年來我已經聽過太多次「六個月後很有機會升遷」這種話了。
是時候離開了。
接下來呢?
當我告訴別人我離開了 Google,他們都以為我一定是有什麼絕妙的新創點子。只有傻子才會辭掉 Google 軟體工程師這種爽缺。
但我確實就是個毫無想法的傻子。
我的計畫是每隔幾個月就嘗試不同的專案,看看有沒有哪個能做出點成績,例如:
Google 是個很棒的工作場所,我在那裡學到了寶貴的技能。離開並不容易,因為還有更多東西可以學,但像 Google 這樣的雇主永遠都在。我不一定永遠都有創業的自由,所以我很期待看看這條路會帶我走向何方。
後續更新
- 更新(2019 年 2 月 1 日):成為獨立開發者的第一年
- 更新(2020 年 1 月 31 日):成為獨立開發者的第二年
- 更新(2021 年 2 月 1 日):成為獨立開發者的第三年
- 更新(2022 年 2 月 1 日):成為自給自足型創辦人的第四年
- 更新(2023 年 2 月 10 日):成為自給自足型創辦人的第五年
- 更新(2024 年 2 月 10 日):成為自給自足型創辦人的第六年
插圖由 Loraine Yow 繪製。
隨機一篇部落格
留言
登入後參與討論