軟體工程師的修煉與成長 (8) — 讓自己可以被取代
Staff Archetypes
可能是天生的工程師性格,我一直非常崇敬能把一件事情做到極致的「匠人精神」。這也是我一直對於「成為管理者才是成功」的這種風氣感到不以為然的根本原因之一。
之前的文章有提過,在Staff之上的等級,每個人隨著自己的專長和興趣,會發展成不同型態的工程師。這邊一定要引用 https://staffeng.com/ 上的 Staff archetypes 這篇文章,裡面詳細介紹了四種Staff+的型態還有他們的日常工作,分別是:
- Tech Lead: 跟EM一起帶領一個團隊執行工程專案的領導者。我在「 軟體工程師的修煉與成長 (6) — 換團隊 x 2」 一文中有介紹Tech Lead都在做什麼。
- Architect: 幫特定領域制定大方向和策略的,例如說幫公司訂定計畫換掉整個frontend framework或是換掉底層的database。
- Solver: 專門解決特別棘手或複雜問題的人。這種人通常是該領域非常資深的專家,對某些系統有深刻的理解,能處理一般人無法解決的問題。
- Right Hand: 中高層主管的二把手。雖然不是manager,但實際上都是在幫manager做事或解決棘手的問題。
這四種型態裡,最常見的就是Tech Lead,通常每個團隊都需要一個,也是資深工程師要成長為領導者的必經之路。Architect跟Solver就比較少見,因為這兩個都是比較特別的角色,需要對某個領域有一定的專精程度或是公司內有足夠複雜和困難的問題,才會有這種角色的存在的必要。Right Hand則是最少見的,因為公司要夠大,而且也要有夠高層的主管有這種需要才會有。
我以前覺得當工程師最好的就是可以每天寫程式。「興趣不能當飯吃」這句話,在我身上可不適用。有人付錢給我做我喜歡做的事可能是我這輩子最幸運的事。但真正當了一陣子工程師後,才慢慢發現原來越資深就越少時間寫程式。這對於沒有想要一直寫程式的人來說可能是個好消息,但對我卻是一個兩難,讓我不知道該不該繼續往上升。
現在我遇到一些新人工程師,一來就想要快速升職。這時,我都會問他們真正喜歡做的事是什麼。如果只是想要升職後的薪水或title,那想要衝快點是無所謂。但偶爾會碰到像我一樣喜歡寫程式的人,我都會勸他們不要急著往上升。L3/L4的工程師有特權可以專心在雕琢自己的程式上,應該要趁這段時間繼續精進程式的技藝,把基礎打好,未來可能就沒這些機會了。
這讓我有一陣子一直在想,職涯的終點應該要在哪?之前的文章提過,雖然title都是工程師,但每一個層級實際上做的工作是有很大不同的。升職不見得會讓我變得更開心,很多額外的責任不見得是更有挑戰或是更有趣的。我應該要更小心的選擇我想做的事,不要讓自己陷入一個窘境得每天做不喜歡的工作。