為什麼我從 Google 辭職而為自己工作
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
在過去四年時間裡,我在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
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 我們為什麼而工作
- 徐開源:我為什麼辭職去做獨立開發者 | 掘金專訪 003
- 為什麼會辭去Netflix的45萬美元工作? - Lin
- 我為什麼從php轉go?PHPGo
- 為什麼我們要選用 Elasticsearch 而不用 SolrElasticsearchSolr
- 2024,辭職成為光桿司令
- 為什麼我從 Mac 換到了 LinuxMacLinux
- [譯] 為什麼我放棄了 React 而轉向 Vue。ReactVue
- 為什麼我從 npm 到 yarn 再到 npm?NPMYarn
- 【享受工作系列】我們為什麼工作之自我意識管理
- 什麼是 BPMN ?為什麼我們要用 BPMN 和工作流 ?
- 每天那麼多工作,我為什麼能做到 "不忘事" ?
- [譯] 為什麼我更喜歡物件而不是switch語句物件
- 不要為了錢而工作
- 我為什麼要做IT
- 你為什麼離職呢?
- 為什麼我們從Yarn切換到pnpmYarnNPM
- Google 為什麼以 Flutter 作為原生突破口GoFlutter
- 我從騰訊辭職去小公司做報表,工資卻漲了50%,靠什麼?
- 我為什麼不想把自己的Emacs外掛放到MELPA上?Mac
- 因果迷境:為什麼我們會問“為什麼”?
- 我為什麼使用 JavaJava
- 為什麼HashMap的鍵值可以為null,而ConcurrentHashMap不行?HashMapNull
- 六成大學生會因工作太簡單而選擇辭職
- 面試送命題,你為什麼從上家公司離職?面試
- 為什麼我們從RabbitMQ切換到apache kafka?MQApacheKafka
- 為什麼我們從Webpack切換到Vite - ReplitWebVite
- 為什麼我更喜歡定期合併提交而不是壓縮提交
- 從Nginx、Apache工作原理看為什麼Nginx比Apache高效NginxApache
- 為什麼我不建議你通過 Python 去找工作?Python
- 為什麼 Google Play 也要推訂閱制?Go
- 今年找工作為什麼這麼難?
- 我為什麼會從程式不喜歡加{}到加{}
- 為什麼我從Java切換到Rust? Opensource.comJavaRust
- 為什麼我們需要 VuexVue
- 我們為什麼要用RedisRedis
- 我為什麼要使用Webpack?Web
- 我們為什麼需要CDP?