軟體工程師 - 成長的 10 個階段

軟體工程師 - 成長的 10 個階段



前言

先前,我在 Study4 小聚 #6 分享的一場關於軟體工程師 & 架構設計的養成之路,在該議程中,我分享了軟體工程師的 10 個階段(你的階段如有雷同、應該是...純屬巧合。XDDD)

哪 10 個階段?

我將軟體工程師的成長依序分為 10 個成長階段,因為隨著技能的提升,你該擴充的不會只是只有軟體開發技術,溝通與協作能力尤其重要,也像是『康威定律』中所提到的,你的軟件的設計 & 或系統設計本質上反映了企業的組織機構。系統各個模塊間的介面的設計,也反映了企業各個部門之間的信息流動和合作方式,這些技能再進行軟體架構設計時也息息相關,團隊在進行模組設計時需要頻繁的溝通,這些、都是是否能將軟體做好的關鍵因素。

如 Logo 圖片,我依序說明每個階段的成長歷程。

1). 初始開發階段、熟悉 Programming/Developer 階段(PM/PO/SD 給規格後加以實作出來),並能夠藉由模仿來學習。這是剛進入軟體產業的學習階段。

2). 此階段代表已懂得透過重構來讓程式碼有基本的可維護性、已能熟用 DRY (Don't Repeat Yourself),進入這個階段代表已經有基本的程式語言的基礎,應付 Programming/Developer 日常工作上的需求基本上沒什麼太大的問題。

3). 這裡的專案收尾代表對於專案開發已經有某些程度的認知、掌握度。我所提的掌握度在於了解『技術債』的產生緣由 與 危害,在 Programming/Devloper 層面懂得透過 S.O.L.I.D./Design Patterns 解決問題 並 開始能夠自我學習 + 自我成長

4). 我這裡用『紀錄』代表能運用所學 + 將使用者需求運用〔邏輯思考〕〔抽象化〕轉化為程式碼 + 並能自我成長將經驗保存下來。我認為這是跨越只是(寫程式/實作)進入另一個門檻的重要經驗與歷練。這個階段花費的時間會較長一點,時間長短取決於個人歷練、經歷、學習的環境與工作內容。

5). 此階段含括上面所有技能,並能夠與〔團隊〕和〔客戶〕溝通協作、並產生出〔產品〕。而所謂的協作代表,不只自身技術所長能應付本身開發工作工作所需,亦能帶領團隊解決軟體專案的大小事務、也能夠替 Members 解決各種技術疑難雜症。也可能為 Team Leader 角色。

6). 結合以上、此階段已知流程與規範嚴重影響團隊的協作,這裡還能洞悉流程改造 + 能以自身經驗加以傳承流程與經驗。越到上層階段花費時間會更多,而且可能不是每個人都能跨越俠一個門檻。

7). 同樣結合上述條件,這裡還能〔跨職能〕、〔跨團隊〕或〔跨公司〕進行流程的改造與升級因為已經洞悉軟體開發生命週期的大小事情、熟悉每一個階段會產生的問題如何修正改造或改善或甚至推行其他的開發流程。從這個階段,要跨越到下一個階段可能要花費更長的時間,以我來說大約花費 7-8 年左右 (這裡指從第7級要跨越到第8級),不過每個人的經驗、學習速度、環境有所不同,時間長短也會因為情境不同而有所不同。

8 ). 我這裡的獨立作業不是工作上的獨立作業,而是代表可獨立的對不同的團隊或不同的企業的流程或規範進行指導、有能力釐清楚缺失 與 問題發生的原因 + 提供 Solution、提供改善計畫等。這通常已經是專精某領域顧問等級的專家。

9). 為什麼我這裡用〔專家〕來表示更進一步的階段?因為顧問也不是什麼都懂,專家更趨近於各領域的專業程度都有一定且非常深厚的功力與基礎表現,此人經驗非常老道,軟體開發問題幾乎無所不知、無所不曉。解決問題大都是一針見血、因為見過各種世面,能輕易抓住問題核心點

10). 這是我定義的最高等級、也是所謂的工匠等級,此人總和上述所有表現,並能帶領公司或團隊前往心中的目標、隨心所欲、帶領團隊軟體開發就像行雲流水般自然、看似自然,但其實每一件事情都有規律地進行,在我心目中,只有 Ruddy 老師達到這樣的等級。

我對我自己的要求比較高,其實我覺得我對於稱職的顧問還有一點努力的空間,所以我覺得我只到 7-8 的中間階段,且還在努力中,這是我給我自己打的分數!

2024-11-25 更新:

目前自評進入第 8 層的階段,還得加緊努力!


給有緣看到此篇文章的朋友們做個參考~

謎之音:我看我要練到第 9 層再過個 10 年不知有沒有辦法?😅 哈哈哈哈哈 等我到 60 歲不知道能否達到工匠等級....😩....


本文章同步刊登在【科技島 Tech Nice】:

https://www.technice.com.tw/experience/20253/


References:
(1). 先前在 Study4 小聚的分享[軟體架構設計的技術養成之路]我的實際投影片


(2). [報名連結] - STUDY4.TW 2021 小聚#6 -軟體架構設計的技術養成之路

留言

  1. Hello Gelis您好:
    抱歉,冒昧打擾~我是「科技島」社群編輯,科技島這個社群的目的之一,是希望能透過科技業精英前輩現身說法,針對職務心得、工作技巧、從業所得提供經驗分享,讓現正從事科技業或未來想進入科技業的學弟妹們可以更加瞭解這個行業。

    剛剛在瀏覽您個人部落格時,看到您撰寫的《軟體工程師 - 成長的 10 個階段》這篇文章,很適合科技島讀者。

    不知您是否願意授權我們以『原文原PO,並註明原文作者及出處連結』的方式讓我們轉載於科技島網站,跟科技人一起分享呢?謝謝。

    靜待回覆!並附上科技島網站連結,給您參考 :
    https://www.technice.com.tw/

    聯絡Email:
    techniceeditor@gmail.com

    回覆刪除
    回覆
    1. 當然,沒有問題。只需要註明原文作者及出處連結就可以了。

      刪除

張貼留言

這個網誌中的熱門文章

常見的程式碼壞味道(Code Smell or Bad Smell)

什麼是 gRPC ?