發表文章

目前顯示的是 11月, 2021的文章

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

圖片
軟體工程師 - 成長的 10 個階段 前言 先前,我在 Study4 小聚 #6 分享的一場關於軟體工程師 & 架構設計的養成之路,在該議程中,我分享了軟體工程師的 10 個階段(你的階段如有雷同、應該是...純屬巧合。XDDD) 哪 10 個階段? 我將軟體工程師的成長依序分為 10 個成長階段,因為隨著技能的提升,你該擴充的 不會只是只有軟體開發技術,溝通與協作能力尤其重要 ,也像是『康威定律』中所提到的, 你的軟件的設計 & 或系統設計本質上反映了企業的組織機構。系統各個模塊間的介面的設計,也反映了企業各個部門之間的信息流動和合作方式,些技能再進行軟體架構設計時也息息相關 ,團隊在進行模組設計時需要頻繁的溝通,這些、都是是否能將軟體做好的關鍵因素。 如 Logo 圖片,我依序說明每個階段的成長歷程。 1). 初始開發階段、熟悉 Programming/Developer 階段(PM/PO 給規格後加以實作出來) 2). 此階段代表已懂得透過重構來讓程式碼有基本的可維護性、已能熟用 DRY (Don't Repeat Yourself) 3). 這裡的專案收尾代表對於專案開發已經有某些程度的認知、掌握度。我所提的掌握度在於了解『技術債』的產生緣由 與 危害,在 Programming/Devloper 層面懂得透過 SOLID/Design Patterns 解決問題 並 自我成長。 4). 我這裡用『紀錄』 代表能運用所學 + 將使用者需求運用 〔邏輯思考〕 與 〔抽象化〕 轉化為程式碼 + 並能自我成長將經驗保存下來。我認為這是跨越只是(寫程式/實作)進入另一個門檻的重要經驗與歷練。 5). 此階段含括上面所有技能,並能夠與〔團隊〕和〔客戶〕協作、並產生出〔產品〕。 6). 結合以上、此階段已知流程與規範嚴重影響團隊的協作,這裡還能洞悉流程改造 + 傳承流程與經驗。 7). 同樣結合上述條件, 這裡還能〔跨團隊〕或〔跨公司〕進行流程的改造與升級 。因為已經洞悉軟體開發生命週期的大小事情、熟悉每一個階段會產生的 問題 與 如何修正 與 改造 。 8 ). 我這裡的獨立作業不是工作上的獨立作業,而是代表可獨立的對團隊或公司的流程或規範進行指導、清楚缺失 與 問題發生的原因 + 如何改善等。 9). 為什麼我