標籤:軟體工程師
工作近十年了,[軟體工程師] 一直是我職業 title 的中心詞,只是前面的修飾語在不斷變化,從初級、中級、進階到資深。
其實 [軟體工程師] 是一個很泛化的定義,工作現實中軟體工程師是被具體分工的,形成了具體定義的工程師。
定義
軟體工程師是下面這些具體工程師的總體概括:
- 開發工程師
- 測試工程師
- UI工程師(又稱設計師)
- 產品工程師(雖然現在多稱產品經理,但實際的工作內容更偏向工程師性質)
- 營運工程師
也許還有些其他分工的具體工程師定義,這裡就不一一列舉了。
我只是偶然發現所有這些具體分工的工程師都可以歸類到幾個不同的屬性上,那麼這些屬性又是什嗎?
屬性
玩過遊戲的人都瞭解,遊戲角色一般有兩種主要屬性:攻擊屬性和防禦屬性。
一般為了遊戲平衡性而言,不同角色有的會偏向攻擊屬性、有的偏向防禦屬性,這在組隊遊戲中特別明顯。
而軟體開發本身就是一個組隊活動,因此各類分工的工程師也體現出了這兩種屬性。
以上具體分工的工程師中,營運工程師和專職維護線上系統的開發工程師更偏向於防禦屬性,其他則是偏向攻擊屬性。
攻防屬性的區分是和上述工程師工作性質的自然聯想,防禦就是守住陣地(維護已有系統),攻擊則是開闢新的戰場(新產品、新系統)。
在團隊中還有一些其他角色,如:專案經理、架構師等,這類角色的工作屬性會更複雜一些。
專案經理協調資源、控制進度,若是在開闢新戰場的項目中則像是蕭何一類角色。
架構師則像是將軍,劉邦項羽中原爭霸,將軍不止一個,但蕭何卻只有一個,所以一個大項目,專案經理就一個,架構師卻不止一個。
不同專註領域的架構師充當了不同類型將軍角色,有擅長打衝鋒的,有擅長打陣地,各有不同,此時架構師的角色屬性為攻擊型。
系統業務量快速增長,老系統變得不再穩定,維護升級困難,然後啟動架構升級,此類項目中的架構師和開發工程師都屬於防禦型。
而專案經理在這兩類項目中既不屬於攻也不屬於防,而是另一類型:加成屬性。
在遊戲中也有類似的角色,這類角色協助提升團隊的群體屬性,例如攻擊光環、群體回血之類的。
管理角色的最大價值就在於群體的加成屬性,當然這類加成屬性可以是正的也可以是負的,取決於管理本身的帶來效果。
發展
《冰與火之歌》裡有一道長城(The Wall),綿延 300 英裡,它將近有 700 英尺那麼高。
十年差不多也會碰到職業發展的一道長城,如果十年還沒碰到那麼很可能說明你沒有一直沿著大致相同的方向在走。
從工程師到架構師,繼續加強攻擊屬性,提升技術鋒利度,進入技術專家領域。
鋒利意味著更窄更尖,從眾行到獨行。
防禦屬性的提升突破需要足夠生命週期的產品、足夠規模的系統,和攻擊屬性一樣最終殊途同歸。
而加成屬性的提升看上去的路徑是從工程師到培訓師到技術顧問,被加成項目、團隊或公司的成功是自己品牌力,影響力的最好背書。
無論從哪個方向去攀登長城,最終成功翻越的經驗正如《冰與火之歌》所說 “別低頭看下面”。
而能否翻越長城可能也是我下一個十年的最大挑戰。
軟體工程師的屬性與發展