什麼是主任工程師?

主任工程師的種類

大部分公司內的生涯階梯(career ladder或說職涯規劃)都對主任工程師(staff engineer)定義了一組一致的標準。每個人都希望能從這清楚的標準中知道公司內的權責,但我們要知道,這標準其實是一般性的,不是為了每個人量身訂做的。對於主任工程師來說更是如此,一個主任工程師的權責往往結合了數種角色,很難被清晰定義。

不過這其中還是有規則可循的,大部分主任工程師的權責其實都能被歸納出一些模式,了解這些模式能更有效了解主任工程師這個角色。大致上來說有以下這四種。

  • Tech Lead:負責引導特定團隊,有點像是管理職,但多數時候這個角色會負責複數個特定領域。有些公司也會賦予這個角色管理權限,使其更貼近管理職,可以招聘、打考績等。
  • Architect:架構師負責確保某些關鍵系統的方向、品質和策略。這個角色必須同時具備深厚的技術底子並了解商業需求,甚至要領導組織決策。
  • Solver:這常被稱為救火隊,負責處理複雜難解的問題以及給予適當方向,有時候這角色會在特定領域深耕,但也有可能會隨著組織需要輪調。
  • Right Hand:這像是經營高層的左右手,具有一定的決策權。當要運作一個大型組織,這角色會扮演中樞角色,用來快速做出正確決策。

這分類的目的是為了讓主任工程師的權責更容易被釐清。大致上,每個主任工程師都能夠套用其中一種模式。

接下來我們來看每個角色的工作分配。

Tech Lead

Tech Lead是主任工程師最常見的形式,他們帶領一個或數個技術團隊處理專屬的技術問題。這角色往往需要協調團隊成員的資源,並且整合跨團隊、跨功能的溝通。同時,Tech Lead也是與PM溝通的第一選擇。

在職涯早期,Tech Lead通常是團隊中負責處理複雜問題的人,但隨著角色從開發者變成Tech Lead,寫程式的工作會下放給團隊。一方面是讓團隊能力成長,另一方面是讓團隊能做出更多貢獻。雖然Tech Lead不太寫程式了,但Tech Lead依然能夠給出正確的技術視野。

Tech Lead比其他人都更了解團隊,透過各種敏捷方法Tech Lead能夠更早的取得成效。許多公司都有類似的敏捷作法,在很多時候,我們會看到一個Tech Lead底下的成員數量都差不多,約莫8個。

有些公司把Tech Lead當做一個頭銜有些則當成一個實際權責範疇,無論是哪種,Tech Lead之所以能承擔這個角色是因為他的行為、影響力等被組織承認。

一週內的主要行程是:

  • Scrum相關會議:站會、Planning、Retro等
  • 面試
  • 與團隊成員的1 on 1會議
  • 架構提案/審閱
  • 寫程式僅佔部分時間

Architect

架構師這個頭銜已經漸漸消失了,但這不影響架構師的職責依然存在在各個公司內部。架構師是負責讓特定的技術領域成功,舉凡API設計、前端技術堆疊、存儲策略或雲端基礎建設等。什麼領域值得安排一個架構師?那一定是複雜卻又與公司成敗息息相關的領域。

有個很常見的偏見,那就是架構師總是獨自做完設計,接著才把設計交給別人實作。的確有時候會這樣,但大多時候,一個有影響力的架構師會花費更多心力在了解商業需求、客戶目標和各種技術限制。他們會運用這些資訊構建出一個實際有效的方案,並讓方案落地。

架構師通常存在於大型公司,為了解決這些公司在早期快速搶占市場所留下的複雜程式庫和累積的技術債。在一些公司中,架構師會專注在程式庫並持續寫程式,但有些公司的架構師並不寫程式,這兩種形態的架構師都是可行的。

一週內的主要行程是:

  • 架構提案/審閱/回饋/寫文件這些會佔大多數時間
  • 面試
  • 與團隊成員的1 on 1會議
  • 意外事件復盤
  • 組織相關會議

Solver

Solver是公司中碰到難解問題是最被信賴的人,他們會持續解決各種問題。這些問題可能來自關鍵領域或者具有很高難度以及有可能產生風險。

大多數主任級別工程師都需要做組織管理,但Solver通常會專注在被分配的問題上,所以比較少產生組織間的摩擦。但問題處理到一定程度,Solver就會讓問題回到對應的技術團隊,這還是需要一些社交工程來讓這些已被緩解的問題能持續收斂。

Solver在公司的早期往往會是Tech Lead,因為不需要專門一個額外的人來做這件事。直到,技術債充斥,問題多到需要專門的人來處理。

一週內的主要行程是:

  • 災難校正/復盤/檢討
  • 面試
  • 與團隊成員的1 on 1會議

Right Hand

Right Hand是最不常見的角色,他作為上級管理者的代理,但沒有實際管理的責任。這為的是讓一個數百人甚至數千人的大型組織有個中間人能維繫統一的方法和價值觀。

這角色會參與各個高階主管的會議,把重要的問題抽離,並提升主管的影響力。這個層次解決的問題不再會是單純的技術問題,更多時候是人、流程和文化的交叉影響。Right Hand總是介入紛爭,解決流程議題,並將問題交付給適合的團隊,接著輪迴。

一週內的主要行程是:

  • 組織相關會議
  • 災難復盤/檢討
  • 面試
  • 與團隊成員的1 on 1會議

哪一種適合你?

你可以思考看你更適合哪種角色,並且反思該做些什麼努力來達成那角色的能力,同時也可以在公司內找尋位子。

通常所有的公司都會需要Tech Lead,這使Tech Lead會是最容易取得的角色。有些公司在很早期就會培養Solver,但也有些公司在努力打下市場,那Solver就會更晚出現。Architect和Right Hand都是在大型公司內才會存在的角色,在公司變大前可能根本沒這個位子。

要想在這些資深角色上取得成就需要時刻保持參與感,了解什麼樣子的工作類型是你的興趣。Tech Lead和架構師傾向與同樣的團隊在同樣的領域上努力,以便養成團隊默契和產生共同目標。

Solver和Right Hand總是在不同問題上移動,他們與高層的關係更加緊密,也因解決高層的問題而得到認可。雖然這些角色也有所屬團隊,但與團隊的關係並不特別親近。

雖然選擇自己喜歡的角色很重要,但在漫長的職涯上,我們都有機會接觸每種角色,可以慢慢體會。


翻譯自:https://staffeng.com/guides/staff-archetypes/

雖然說是翻譯,但其實大部分都不是逐字翻,加入了一點我自己的對於職涯的理解。畢竟每個角色我都擔任過,所以就稍微潤飾了一下。

為什麼會選這篇,其實是因為內容滿貼合現實的。我認識許多人,都想要往更高的位子爬,但卻不得要領,一方面是不知道自己的能力,另一方面是不了解自己的喜好。希望這篇文章能給予一些職涯方向。