2023年1月5日

如何成為資深工程師?只有年資是不夠的,分享資深軟體工程師的3大樣貌

工作這麼多年了,經常在思考,究竟資深的軟體工程師該是什麼樣子?只要年資夠久就能稱得上是資深工程師嗎?只要有足夠的技術能力就是資深工程師嗎?我想每個人心目中都有一個資深工程師該有的樣子吧?

這篇文章主要聊聊我自己對資深工程師的想像,除了是我認為該有的樣子,也是我個人努力的方向。以一個團隊的角度來看,作為團隊中的資深工程師應該要有什麼樣子?我覺得可以從開發能力、溝通能力、工作態度幾個面向來看。

資深工程師該有的樣子

可靠穩健的開發能力

經歷過許多專案的資深工程師,至少要專精一兩種程式語言,了解它們的生態系以及開發工具。面對新的程式語言時,可以快速掌握重點,即便還沒有全面的理解,也可以快速開始動手調整程式。對於新的技術,會仔細評估是否適合專案或既有系統,不會盲目的追求。

除錯時,可以有條理的釐清問題,精準迅速地找出問題的核心,然後對症下藥,提出解法或方向。即便不是自己熟悉的系統,根據自己的經驗,也可以提出關鍵的問題,幫助找出癥結點。

開發時,不再一昧追求自我滿足,會考慮到技術以外的層面,包含專案的實際需求、團隊既有的資源及狀況。在時程緊迫的情形下,可以提出快速的應急方式,但又方便後續的改善;在時程允許的情況下,可以提出良好的解決方案,漂亮地處理目前的需求,甚至有餘裕重構過去所遺留的不良程式。

從容自信的溝通能力

資深工程師有更多的機會跟不同團隊的人開會,需要與非技術同事合作。資深工程師必須能夠使用精確的語言跟不同背景的人溝通,能將對方模糊的言語翻譯成工程師能懂的術語,也要能夠將艱澀的技術語言,轉換為通俗的概念,讓非技術同事理解。

與主管或 PM 溝通時,可以展現出自信,順暢的表達技術方面的考量,並且擁有足夠的耐心,解釋對方所不理解的部份,讓溝通可以順暢進行,讓對方的需求,以及自身的考量都可以順利地傳達。

與 Junior 溝通時,可以有條有理的指導 Junior 進入狀況,讓其可以順利掌握狀況。例如,在適當的時機提點應注意的事項、傳達良好的做法與習慣,在實作的過程中逐步提升 Junior 的工作能力。

積極盡責的工作態度

成熟的資深工程師不會將情緒帶入工作,面對不喜歡的工作內容,也會配合團隊的需求,採用適當的方式來完成。能夠區別事情的輕重緩急,並配合公司或團隊的方向來調整自己的步伐。

當狀況發生時,例如開發進度延宕,系統出現異常,資深工程師不會逃避問題,而會以負責任的態度來扛起壓力,協助團隊面對及解決問題。

有餘裕時,會持續地思考、反省,聚焦出團隊的問題,找出適合的方式,改善團隊的工作流程,讓團隊整體可以一起成長。

為什麼只有年資是不夠的

有些人會覺得,只要在一間公司待久了,公司最後就會幫他升遷。但,職位的提升,除了是薪水的提升,更重要的是責任的提升。

如果工作五年,技術能力都沒有提升,跟進入公司一年的人差不多,這樣的人怎麼負責更複雜的功能?

如果一個人不願意跟別的團隊溝通,年資越高越是自視甚高,在公司內部製造對立、製造溝通壁壘,對於團隊來說就是一種傷害,那技術能力再強,都不會被擺到團隊核心。

如果一個人仗恃著自己年資高,不願意遵守團隊規範,總是喜歡用自己方便的方式來完成工作,這樣的人,如何能夠被信任,並被賦予更大的責任?

結語

一個資深工程師有許多良好的特質跟能力,這篇列到是我認為的三大方向,不然太多細節真的是講不完的。

我認為平常可以多多觀察身旁的資深同事,看看他們身上有沒有什麼值得學習的地方,當然也可以看看有沒有什麼應該要避免的地方XD

最後,別人常說用奴性來敘述一位優秀的工程師,但當一位工程師懂得自我要求,對自己的工作有理想目標的話,本來就會願意付出更多努力在工作上。

這樣的工程師,是奴性嗎?還是奴性只是其他人替自己的不長進開脫的說詞呢?

相關書籍推薦

Staff工程師之路|獻給個人貢獻者成長與改變的導航指南

相關系列文

軟體工程師的高效工作法,成為資深工程師必備的軟實力