本文作者 Joy Ebertz 接觸過的幾乎每一家軟體公司都設有技術晉升與管理晉升兩條職業道路,這意味著如果只走技術方向,技術人員也完全可以在不出任管理職務的前提下達到相同的高階職級。但與此同時,Joy Ebertz 所參加的幾乎所有職業演講或討論小組都充斥著管理人員。現在,Joy Ebertz 終於明白從宏觀層面來看,管理者到底需要做什麼、管理的晉升通道又是怎麼一回事。
無論是在公司內還是公司外,管理晉升通道中的高層都有著更高的知名度。技術高管也是如此,但對於負責技術的中層管理人士,很多人可能就有點摸不清底細了。
在這裡,我先給大家交個實底:在第一次接觸軟體行業時,如果大家問我 10 到 15 年之後想要做什麼工作,我首先想到的答案無疑是軟體架構師。我對管理崗位沒有太大興趣,而且我知道架構師是技術道路上最資深的人群。然而,那時的我並不清楚架構師到底需要做什麼,當時想到這個答案的原因無非是野心與想證明自己的渴望。但恰巧,我後來的發展道路或多或少遵循了當初的心願,只是現在的我更清楚擔任高級技術管理者意味著什麼。
工程技術角色匯總
我現在是一名高級軟體工程師,但這究竟是幹嘛的?雖然具體的頭銜與職能劃分取決於具體的企業,但根據我們利用谷歌搜索結果進行的建模,整個行業內的定位思路大體相似。我最初是一名軟體工程師(簡稱 SWE),而後是高級軟體工程師(Sr SWE),經歷了短暫的管理適應周期後,我最終晉升為高級管理人員。在此之上,還有首席工程師與研究員等職位,不過據我所知我們公司好像還沒有真正的研究員。另外讓人有點犯迷糊的是,前兩個階段其實基本是統一的;這意味著即使工作內容相同,在高層管理者看來,不同員工之間仍然存在著巨大的差異。
根據與高級軟體工程師的交流,對於較低職級,企業當然希望員工儘可能展現自己的技能與才華。我們希望每位晉升為高級軟體工程師的員工都能在一切領域(例如技術技能、領導力、文化與價值觀等)中充分展現自己的水平,在各項指標中至少達到標準要求,同時掌握高級工程師所必需的一切技能。
值得強調的是,各個職級的工作內容略有不同。正因為如此,雖然我們希望員工能夠從高級軟體工程師開始一步步成長上來,但技術人員也完全可以在接下來的職業生涯中出任同樣的職務。如果有人就是喜歡做高級軟體工程師,而對主管工程師沒有興趣,那我們也充分尊重這樣的選擇。
在我看來,隨著時間的推移,對角色變化最簡單的描述方式就是觀察其在影響力層面的變化。具體來講,我們可以通過如下幾個角度來審視:要麼就是能夠產生更廣泛的影響,要麼就是能夠產生更深遠的影響。具體來說,我們可以影響很多團隊,或者對單一團隊產生重大影響。我們也可以用另一種方式來理解:以編寫代碼為例,我們可以編寫一部分超級重要或者超級複雜的代碼,從而影響某一特定業務區域的運作方式;也可以指導他人進行編碼最佳實踐,或者對多項設計提出意見或者影響其決策方式,從而產生更廣泛的影響。
說到這裡,我的闡述可能還是有點抽象和寬泛。下面繼續深入聊聊高級軟體工程師到底是什麼的。
高級軟體工程師的工作內容
我並不是說這是高級軟體工程師的唯一日常,我只是開誠布公地告訴大家,我是如何工作以及如何看待這份工作的。我的工作內容主要分為兩大類別:首先是實際戰術,即日常任務內容;第二類不太明顯,但同樣非常重要,即我是如何考量以及處理這些任務的。
我花了點時間思考自己每天需要處理的具體事務,並把它們整理成一份圖表。我肯定遺漏了一些內容,而且具體工作每周都會出現明顯波動(因此這只是一份粗略的圖表,僅供大家參考)。
我意識到,自己只花了大約一半的工作時間直接為 Scrum 團隊完成任務。其中包括所有團隊會議,我覺得這進一步突出了流程精簡的重要意義。我承認,這部分工作跟我早年間的工作內容非常相似。雖然現在採取的具體方法有所變化,但在性質上並沒有多大區別。具體包括編寫設計文檔、編寫代碼、進行代碼審查以及測試所有代碼等內容。
接下來的部分同樣佔據了相當比例的工作時間(大約 20%),這就是技術諮詢(圖表當中的綠色部分)。其中包括為各類設計方案——包括我自己的團隊與其他團隊提供諮詢建議,回答技術問題以及在 API 標準委員會任職等。其中一部分與我的直接團隊相關,但大多數是面向企業內的各個團隊。有些問題還跟我個人有關,因為我雖然已經成為高級工程師,但當初入職時做的很多項目還在發揮作用,所以有時需要回答一些相關問題。隨著所參與的項目數量不斷增加,這方面工作內容也在持續增長。另外,雖然一直在回答問題,但我對於問題的考量方式與回答,或者說我提出的設計建議,也在隨著時間推移而發生變化。
至於剩下的時間,基本上就是花在指導他人、建立更大的項目規劃、技術品牌以及其他雜事身上。在指導當中,又分為正式指導與非正式指導。非正式指導一般就是一對一當面傳授心得,正式指導自然是在眾多同事面前通過演示文稿的形式講解項目知識了,而且可能涉及一場甚至是多場會議。雖然正式指導看似有用,但我自己的感覺是它在我的指導內容當中只佔很低的比例。相反,在大多數情況下,最好的方式往往是只立足一到兩個問題圍繞同一主題進行講解。在非正式指導方面,我更傾向於稱其為同伴指導或者相互指導。這並不是單純的導師 / 學生那種關係,而是我會把我自己的問題與思路分享給同事,他們也同樣向我分享。我們都能為對方提供見解與想法,並從其他人的不同觀點當中受益。
大型項目規劃包括與其他高級工程師及經理合作,為我的團隊或者所在部門設定技術方向。其中還可能包括改善工程中的多樣性與包容性等。基本上,這些都是涵蓋多個團隊的長期戰略項目。隨著時間的推移,我先後參與了眾多不同的大型項目(包括我之前提到的那些)。有時候同事們會邀請我加入討論,但一般來說我都能早一步發現問題並主動組織討論。
接下來是技術品牌問題,我的主要工作就是幫助企業改善品牌形象。就個人而言,這主要涉及撰寫博客文章,外加接受訪談或者幫助他人編輯文章內容。其中一些屬於宣傳性信息,但也有一些更側重於學習與分享,旨在引導我們的工程師對於部門中正在研究的某些課題產生興趣。
最後,我提到的雜項包含不太好歸類的其他工作內容。其中囊括了各種各樣的事務,包括接受採訪、參加技術討論或者參加公司內的黑客馬拉松活動等。這些事情同樣重要,但在時間佔比上相對比較有限。
如果我在剛剛入職的時候就能讀到這樣一份清單,那麼我的職業規劃應該會更加明確。畢竟雖然這與初級工程師沒啥關係,但以當時自己的能力而言,我已經完全可以勝任其中的大部分內容。不過我也承認,真正變化的並不完全是技能,而是我在處理這些任務時採取的方式以及在任務當中的關注重點。這種心態層面的變化,在重要性方面甚至不遜於工作技能。畢竟從時間佔比來看,具體事務只佔工作時長的一半左右。
-END-
作者丨Joy Ebertz
譯者丨核子可樂
策劃丨趙鈺瑩