領袖思維

資深工程師,初階人類——Kelsey Hightower 談技術人的軟技能

「我看過很多資深工程師,同時也是初階人類。」Kubernetes 共同創辦人 Kelsey Hightower 談技術人員常忽略的軟技能:為什麼靈感來自工作之外、為什麼同理心需要刻意練習、以及為什麼職稱會讓人忘記進化。

來源: JetBrains

本文整理自 JetBrains 2024 年 12 月發布的訪談。


「我看過很多資深工程師,同時也是初階人類。」

Kelsey Hightower 說這句話的時候,語氣很平靜,但這句話刺得很深。他是 Kubernetes 社群最具影響力的布道者、前 Google Cloud 開發者大使,也是 KubeCon 的共同創辦人。在這場超過一小時的訪談中,他花了相當多的時間談論一個技術人員很少願意面對的話題:我們在技術上的精進,是否讓我們在人性上退化了?

他們分不清,因為把工作環境看得比現實重要

Hightower 觀察到一個現象:很多資深工程師,技術能力無可挑剔,但和人相處的能力停留在起點。「他們分不清楚,因為他們把工作環境看得比現實重要。」這句話點出了問題的核心:我們太習慣用技術能力來定義自己,以至於忘記了自己首先是一個人。

在工作環境裡,一切都有明確的評估機制。你有 one-on-one、有 OKR、有績效考核、有升遷流程。編譯器會告訴你程式碼哪裡錯了。測試會告訴你功能壞了。這些反饋都是即時的、明確的、不帶情緒的。你修好問題,繼續前進,不需要「感受」什麼。

但人際關係沒有編譯器。當別人給你真實的反饋——關於你是誰、而不是你寫的程式碼——那需要真正的功夫去處理。承認自己有需要改進的地方,對很多人來說是一件非常不舒服的事。所以他們乾脆不處理。他們把所有的精力都放在可以量化、可以衡量、可以升級的技術能力上,然後對人際關係的那部分視而不見。

Hightower 說,職稱是這個問題的幫兇。「有些人有 20 年的一年經驗。」他們被雇用為系統管理員,就永遠把自己定義成系統管理員。當有人問「你怎麼不懂資料庫?」他們會回答「因為我是系統管理員。」但沒有任何東西阻止一個系統管理員學習資料庫。是他們自己用職稱限制了自己。同樣的邏輯也適用於「人」這個角色:沒有任何東西阻止一個工程師學習如何成為更好的人。只是很少有人願意投入時間。

靈感來自你闔上筆電之後

訪談中有人問 Hightower:如果想在「人」這方面進步,應該怎麼做?他的回答出乎意料:「不一定要加入開源專案。當我們說『人』的時候,指的是你闔上筆電之後做的事。」

這個觀點很反直覺。我們習慣把成長和工作綁在一起。想成為更好的工程師?多寫程式。想建立人脈?參加技術社群。想提升影響力?經營技術部落格。一切都圍繞著工作轉。但 Hightower 說,真正的靈感來自工作之外。

「下班之後,不要去研究下一個程式語言。去看一部能啟發你的電影。用一種能啟發你的方式和家人相處。」他發現,當他在工作之外獲得啟發,然後帶著全新的眼光回到工作時,那種啟發會流入專案裡。也許他會想寫出團隊見過最好的文件。也許他會想這次徹底修好那個 bug。那種興奮感會傳染到工作中。

這和「work-life balance」不太一樣。他不是在說要平衡工作和生活。他是在說,生活中的啟發會讓你成為更好的工作者,而純粹的工作不會讓你成為更好的人。這兩者是不對稱的。

同理心需要刻意練習——從記住自己也曾是菜鳥開始

Hightower 花了很多時間談同理心,但他談的方式很實際,不是那種空洞的「要有同理心」宣言。

他舉了一個例子。「當你是資深工程師,遇到問題,發現自己還是要去 Stack Overflow 查資料時,那是什麼感覺?」這個問題的目的是讓人回想那種「我其實也不懂」的感受。然後他說:「所以,你不應該看不起還在查 Stack Overflow 的初階工程師。」

同樣的邏輯適用於面試。當你面試一個人,他答不出所有的技術細節,你會給他低分嗎?你會說「這個人不可能成為我的隊友,因為他不是維基百科」嗎?明知道你自己也不知道那些問題的答案?

這種「內在的覺察」——意識到自己也曾經不懂、現在也還有不懂的事——就是同理心的起點。它不是天生的,需要刻意練習。Hightower 說,他會主動問女兒、問結婚 19 年的太太:「有什麼我可以改進的嗎?」這聽起來很簡單,但很少有人真的去做。

他也建議檢查自己生活的其他面向:去看看你的信用分數、去檢視你的退休計畫、去問自己「我為什麼工作?」這些問題都在幫助你理解自己是誰、你想要什麼。這種自我理解是同理心的基礎——你要先理解自己,才能理解別人。

開源社群:一個練習「人」的地方

話說回來,Hightower 並不是說開源社群沒有價值。他只是說,開源社群的價值不在於讓你多寫程式,而在於它是一個練習「人」的地方。

開源社群有幾個特殊的特質。首先,溝通是自願的。沒有強制的每日站會。如果你出現,那是因為你選擇出現。這種自願性會改變互動的品質。其次,大家都知道其他人是用自己的時間在做這件事。這種認知會讓人更尊重彼此。第三,社群活動——meetup、conference——是少數你會和網路上認識的人真正見面的機會。

「我認識你十年了,在網路上,但我不知道你有小孩。」這種對話只會在面對面時發生。在這種場合,你不會打開筆電開始寫程式。你會去吃飯、聊天、了解彼此。這就是練習「更人性化」的時刻。

Hightower 自己是 KubeCon 的共同創辦人之一。他說,他們從 Go 社群學到了怎麼建立一個真正的社群——不只是技術專家的聚會,而是一群對共同目標有熱情的「人」的聚會。Kubernetes 社群之所以成功,部分原因是他們從一開始就把「歡迎」作為核心價值。不管你是 Google 的工程師還是剛入門的新手,你都可以找到貢獻的方式。

你是工程師,但你首先是人

訪談快結束時,Hightower 說了一句聽起來很奇怪的話:「在職業上,人們問你『你做什麼工作?』你會說『我是系統管理員。』但如果問你『你是誰?』——這聽起來很怪,也很不舒服——你是一個人。」

怪的地方在於,沒有任何工作申請表會問這個問題。沒有任何地方會可靠地評估這個維度,然後給你反饋。我們有程式碼審查、有績效評估、有升遷標準,但沒有「人性評估」。

這可能就是問題所在。我們傾向於最佳化被評估的東西。如果只有技術能力被評估,我們就只最佳化技術能力。如果「人」這個維度從來不被評估,我們就當它不存在。

但 Hightower 提醒:你用電腦建構的東西,最終是給人用的。「有些人說『我不喜歡人,但我喜歡電腦』。但他們忘記了,他們是用電腦來給人做東西。所以這兩件事是矛盾的。你遲早要調和它。」

資深工程師,初階人類。這個標籤可能比我們想承認的更普遍。好消息是,和學習程式語言一樣,學習成為更好的人也是可以練習的。只是你需要願意闔上筆電。