staffEngineer

Operating at Staff

在本部落格中 我們討論了許多軟體工程的基石 比如說設計模式 Effective Java Effective Engineer 這些主要是讓你打穩你的基底 我們也討論了不少系統設計 DDIA Clean Architecture 等等都是讓你有足夠的硬實力 來升到Senior甚或是Staff

但到了Staff之後呢 你大部分需要的是軟實力 身為一個Staff-plus 要如何為你的組織貢獻 這類的相關學習資源比較少 畢竟大部分的軟體公司不會強制要求一定要升到Staff 你高興到話 你也可以一輩子待在Senior

所以真正知道身為Staff該做什麼的教學不多 而且每個公司的要求可能不一樣 願意結合起來 寫成書的人更是少之又少 這本就是其中一本

Staff Engineer Alt text

在2020期間 作者訪問了各個科技公司的Staff-plus 請他們分享心得 並結合成冊 所以這本非常新 被訪問的公司也都是耳熟能詳的大公司 所以我認合現在這個階段讀這本書CP值特別高

如同以往 分享我的讀書筆記 目的是讓讀者不需要跟我花一樣的時間 就可以學習前人的經驗 希望你們跟我一起一窺Staff的面貌 並一起共勉 希望哪天也可以在公司發揮影響力

這本書的寫法非常口語 有很多文句我怎麼翻譯都覺得會曲解一些原作者的意思 所以請預期會有比較多的英文

身為一個Staff Engineer

很多人會對於staff engineer有誤解 以為你變成了staff engineer之後 你就可以控制你想做的工作 大家都會聽你的 要他們做什麼就做什麼

這大概跟實際情況完全相反

很多人在職涯的路上選擇成為staff而不是manager 是因為他們覺得manager會議太多 跟別人的協作太多 如果這是你的心態的話 你升上staff engineer之後會很失望的

雖然表面上staff是senior的下一階 但你可以想成是完全不同的職位 你幾乎會花很少的時間在做你之前在做的事情

一個很顯著的差別 就是feedback loop變得很慢 你以前可以很快的收到feedback 比如寫的程式哪裡不好等等很容易就知道 但當你需要跟別人協作 或是mentor別人 或是討論組上的strategy 的時候 feedback會更難得到 所以學習曲線很陡峭

這個章節會教你如何克服這個學習曲線 身為一個Staff Engineer 如何讓自己成長的同時 滿足組織的需求

我們會討論八個大主題

1.Work on what matters: 充分運用你為數不多的工作時間 特別是當你的人生有了其他除了工作以外的事情需要處理

2.Write Engineering strategy: 去領導你們的組織針對公司business objective的方法 從architecture, technology selection和organizational structure的角度

3.Curate technical quality: 去維持你們公司程式碼的質量水平 不論是架構上還是軟體上

4.Stay aligned with authority: 身為一個有效率的領導者 大多數時候你必須要align with你上級的要求和需求 才會贏得信賴

5.To lead, you have to follow:了解一件事情應該要怎麼發生 是個好領導者的必要條件 但更重要的是你需要結合周圍其他人的想法 並且在某些時候把領導的機會給別人

6.Learn to never be wrong: 心態從”你永遠是對的”轉換成去聆聽他人和溝通 去跟那些有不同prority和不同觀點的人合作

7.Create space for others: 讓你的組成長的比你自己一人還快

8.Build a network of peers: 建立你的人際網路

那我們就開始吧