我在Google 14年學會的21堂課:最好的程式碼是你沒有寫的那一條
作為Google Chrome的工程經理以及多本技術書籍的作者,現任Google Cloud AI Director的Addy Osmani,近日在其部落格發表:他在Google的14年職涯總結,不只是關於「寫程式」,更多的是關於規模化影響力、組織協作和個人成長。
這篇《21 Lessons From 14 Years at Google》在科技圈引起了廣大共鳴。Osmani坦承,剛進Google時,以為工作就是寫出完美的程式碼;多年後才發現,能生存並發光的人,必須懂得如何讓價值被看見、與同事建立信任。
關於解決問題:從問題出發找方案,而非反過來
1、解決用戶問題優先
最優秀的工程師不是熱衷於某個技術,硬要用上;而是先理解用戶通點,再尋求合適的解決方案——也就是,從問題出發找方案,而非拿著方案找問題。
2、一起完成才是真正的工作
堅持自己是對的,也許讓你贏得一場技術爭論,卻可能輸掉整個專案。「正確」很廉價,關鍵在於對齊目標與團隊協作。
3、先求有再求好
實際行動遠勝過理論討論,先推出MVP(最小可行性產品),在現實中取得真實回饋。
4、多數性能提升來自「移除工作」
最快速的程式碼就是「不執行」的那一行。
關於「寫程式」:最先進的程式碼是一種負債
5、簡潔勝過炫技
(程式碼)清晰即資深,(工程師)聰明是負擔。清晰易懂的結構比複雜的設計更具價值,因為程式碼是寫給兩年後接手維修的人看的。如果用過於精巧的架構,對公司來說不是優雅的解法,而是「營運成本」。
6、「新穎性」是需要償還的貸款
採用非標準技術會增加維護與招募成本。除非真的有必要,否則應選擇枯燥但穩定的工具。
7、程式碼不會為你發聲,人會
在大型組織中,你的價值需要透過溝通才能被看見。在大公司中,決定你考績、薪水、甚至去留的人,往往坐在你沒被邀請的會議室裡,僅花5分鐘做決定。在Google,資深工程師寫程式的時間變少,但花在釐清方向、確立目標的時間變多了
8、最好的程式碼是你沒有寫的那一條
沒有寫出來的程式碼,就是不用debug的程式碼,減少了維護成本。Osmani提醒,動手前先問:「如果我們什麼都不做會怎樣?」
9、就連bug也可能被用戶依賴
當一個產品規模化了,工程師的任何行為(包括程式中的bug)都會被視為產品功能,產品瑕疵成了使用體驗的一部分。
關於溝通和團隊協作:低效是因為目標不明
10、「慢」的團隊其實是「未對齊目標」的團隊
效率低落通常不是技術或人的問題,而是溝通與方向不一致。
11、專注於你能控制的事,忽略你不能控制的事
在公司變動中保持理智,專注於你能影響的範圍。
12、「膠水工作」是無價且無形的
文件撰寫、跨團隊溝通要設時限、輪替,並讓它成為可見的貢獻。
13、流程不該流於形式
流程的存在是為了減少不確定性,而非製造紙本作業。若流程無法提高清晰度,它就是官僚主義。
14、當指標淪為目標,就不再是好指標
要提防人為操作指標,追蹤速度也要追蹤品質,解讀趨勢而非崇拜數字。
關於影響力:承認無知能換得勇敢的團隊
15、過度爭辯會讓人放棄溝通
人們停止爭論不是因為你說服了他們,而是放棄溝通。
16、承認「不知道」比裝懂更安全
資深工程師承認困惑,團隊才敢提問。
關於個人成長:沒有捷徑但有複利
17、基礎知識仍然重要
即使技術堆疊越來越高,資深工程師仍會不斷學習「底層」知識。這是出於凌晨3點需要獨自面對系統時的敬畏,你必須要能維護一個你能夠理解為何會故障的模型。
18、寫作強迫思考,教學是最好的學習
解釋給別人聽時,才會發現自己理解的漏洞。能把事情講清楚,代表你真正理解了。
19、沒有捷徑,但有複利
刻意練習會複利成長,把職涯當複利而非樂透。
20、你的人脈比你待過的任何職位都長久
工作不是永遠的,但人脈會帶你走得更遠。不要只顧工作,要投資職場關係。
21、時間比金錢更珍貴
知道自己在用時間交換什麼,並刻意做選擇。
Osmani在文末提醒,技術人員應該停止炫技,選擇能解決問題的最簡單方案;同時要主動發聲,確保你的價值連非技術人員都能理解。職場不只是寫程式碼的競技場,更是讓正確的人看見你的價值的溝通場。
資料來源:Addy Osmani、LinkedIn
核稿編輯:林易萱
延伸閱讀: