Google 資深工程師的 21 條守則:寫程式之外的修煉

Google 資深工程師的 21 條守則:寫程式之外的修煉
▍Google 資深工程師的 21 條守則:寫程式之外的修煉

這是一篇關於 Google 資深工程師 Addy Osmani 分享他在 Google 14 年職涯心得 的整理與個人啟發。

我最早是在《程人頻道 EP274》Podcast 中聽到這篇分享。聽完後去看原文《21 Lessons from 14 Years at Google》,只能說非常精彩且認同,也完全能理解 Addy Osmani 在文中所說的那句話:

“These lessons are what I wish I’d known earlier.”

tech_010_02

在這篇廣受好評的文章中,Addy Osmani 點出了一個許多工程師遲早都會面對、卻往往太晚才真正理解的事實:真正能在組織中脫穎而出、發揮巨大影響力的工程師,並不一定是技術最強的人

相反地,真正的關鍵在於:那些懂得如何應對「程式碼之外一切」的大師。

他們通常都具備:與人協作、理解團隊動態與組織政治、建立共識,以及在高度不確定與模糊的環境中,依然能夠前進與決策的能力

以下分享將從 Addy Osmani 總結的 21 條寶貴經驗中,精選出幾個最令我印象深刻的觀點。

這些觀點,或許有些會挑戰我們對「優秀工程師」的傳統定義,但卻也能讓我們重新思考自己的職涯發展路徑,讓我們明白,軟體工程的終極戰場,其實在於「」。

▍專注於解決用戶問題,而非炫耀技術

tech_010_03

很多工程師會愛上某種技術,然後回頭去找可以用它的地方,但真正的價值在於從用戶問題出發,反向推導解決方案

有時候最優雅的解法可能簡單到令人意外,甚至根本不需要寫程式。

💡 最棒的程式碼,就是你從來不需要寫的那一行。

這邊主要想表達的是,追求最新、最潮的技術是工程師的天性,但這是有代價的(可讀性與技術債)。

就像 TED 在 Podcast 分享他的經驗,他不會先追求新技術,而是堅持使用自己與團隊最熟悉的技術(ex. Python),因為這才能最大程度地降低團隊的認知負擔與摩擦成本。

因為最終「運營才是重點」,所以選擇團隊熟悉、模式已知的技術,才能有效管理長期的維護與運營成本。

這並不是說永遠不要創新,而是要把創新的精力集中在那些真正能創造獨特價值的地方。

在其他所有地方,請優先選擇那些「無聊」的技術。因為無聊代表著穩定,代表著它的失敗模式早已被社群所熟知,你可以用更低的成本來應對。

▍清晰勝過聰明,簡約勝過複雜

tech_010_04

在團隊協作中,你寫下的程式碼,從來不是只寫給「現在的自己」看,而是一份寫給凌晨兩點被叫起來救火的陌生人的策略備忘錄。

真正的資深工程師,懂得為了可維護性(Maintainability)與溝通效率(Communication Efficiency),盡量不會用些炫技難懂的技術。

所以越到職涯後期,高手們越在意的,反而不是技巧炫不炫,而是清不清楚

許多工程師包括我自己,特別是職涯早期,都會有一股衝勁,想透過撰寫「聰明」的程式碼來證明自己的能力。

Addy Osmani 用一個極其生動的比喻點出了核心:程式碼的本質,不是展現個人才華的畫布,而是一份策略備忘錄

Your code is a strategy memo to strangers who will maintain it at 2am during an outage. Optimize for their comprehension, not your elegance. 你的程式碼是一份寫給陌生人的策略備忘錄,他們將在凌晨兩點系統中斷時維護它。你該為他們的理解而優化,而非為你的優雅。

我自己認識的一些高手,讀他們寫的 Code 時,除了清晰易懂之外,還有一個很明顯的感受 可讀性很強、讀的心理負擔非常低

不需要在腦中反覆模擬、不需要來回跳轉、也不需要猜測意圖。

這讓我想到《重構:改善現有程式碼的設計》這本經典著作中提到的一個核心概念:降低認知負擔(Reduce Cognitive Load)

當程式碼足夠清楚、意圖足夠明確時,團隊成員就能更快理解系統的運作邏輯,不僅能有效降低出錯機率,也讓後續的維護與擴充,變成一件相對「可預期、可控制」的事情,而這也正是專業軟體工程師真正的價值所在。

▍軟實力是大型組織中的加速器

tech_010_05

Addy Osmani 提到在 Google 這樣的跨國大企業中,決策往往在你不在場的會議中達成。你的程式碼不會為你代言,人會。

因此,建立人脈提升能見度非常重要。

這邊特別提到那些日常中看似不起眼的工作,也就是所謂的「膠水工作」,它雖然隱形,卻是讓團隊運作的關鍵,工程師應學會將其成果具象化並被看見。

什麼是「膠水工作 (Glue work)」?

它指的是那些串連起團隊大小事,讓一切運作更順暢的任務,例如:撰寫清晰的文件、完善新人的引導流程、跨團隊的溝通協調、優化開發流程等。

這類工作的矛盾之處在於,它對團隊的成功至關重要,卻因為不易量化而常常被績效系統所忽視,甚至可能在你不知不覺中,拖累你的技術職涯發展。

TED 也分享了一個自己的案例,他曾經優化一個專案的新人引導流程,將原本需要數小時的環境設定時間,縮短到了短短五分鐘。這就是一種價值極高,卻容易被當作「理所當然」的膠水工作。

要破解這個困境,你必須主動讓這些無形的貢獻變得「可見」。

將你的優化成果製作成文件、模板或自動化腳本,並確保團隊成員都知道這是你的貢獻。記住,「無價卻無形」是對你職涯最危險的組合。

▍追求共識而非勝負

tech_010_06

Addy Osmani 特別提到在 Google 這樣得大企業,每天都會有大大小小的會議與技術辯論。

更多時候,如果到最後只是想贏每一場技術辯論,但卻失去了同事的認同,最終只會累積「無聲的阻力」,導致執行困難。

💡正確是廉價的,一起達成正確的目標才是真正的挑戰。

真正的技能,不在於證明自己是對的,而在於引導整個團隊一起找到正確的方向。

這包括:精準地對齊所有人對問題的理解、為他人創造能安心發言的空間,並且永遠對自己的確定性保持一絲懷疑

這觀念也是我仍持續在學習的課題,不管是在生活或職場上,很多事情不是黑與白的對錯問題,而是尋求某種關係的平衡。

我也能理解這對於理工背景講究科學的人,在涉入職場政治這塊領域後,很容易踢到鐵板的一塊,在組織中,追求群體的共同利益遠比凸顯個人正確更重要。

▍後記:把職涯當複利

tech_010_07

讀完 Addy Osmani 的分享文,最大的啟發是:職涯是一場複利賽,而非樂透

你不會因為某一次寫出神級程式碼就一路躺贏,但你會因為一次次做出對的取捨、一次次把事情講清楚、一次次讓團隊更順,慢慢累積出不可取代的信任與影響力。

對我自己來說,這篇文章把幾個我本來隱約知道、但沒有正視的課題拉到檯面上:

  1. 我不能只追求把事情做對,還要讓「大家一起走到對的地方」。
  2. 我需要更在意「可維護性」跟「他人理解成本」,把清晰當成資深的標準。
  3. 我得學會讓影響力被看見,不是自吹自擂,而是把成果說得出來、傳得出去。
  4. 我也要更有意識地經營膠水工作,並把它從個人辛苦變成團隊資產。
  5. 面對模糊,我要提醒自己:先做一個小步的 MVP,讓現實的回饋幫我校準方向。

Addy Osmani 最後用「複利」的概念總結,鼓勵我們將職涯視為一場需要耐心與智慧的長期投資,而不是一系列追求短期回報的賭博。

每一次學習、每一次分享、每一次幫助他人,都是在為自己的職涯帳戶存入本金,隨著時間的推移,它們將會以複利的方式回報。

最後,我自己讀完後用一句話總結與感想是:工程師的職涯,最後拼的不是多會寫,而是能不能讓事情更順、讓人更願意一起合作、讓成果更有延續性

技術很重要,但技術只是入場券。真正的長期優勢,來自如何在「程式碼之外」也做出專業與成熟。

tech_010_08

comments powered by Disqus
>