新手村如何定義我相信每個人,每個組織都不同。以下討論會以我個人給自己的目標當成出發點。歡迎留言分享你的看法。
以下討論只代表個人觀點不代表本台立場 etc…。
首先,新手村這件我認為與獨立作業能力有關,而獨立作業能力我認為與開發生命週期有關。
Why? 以連鎖咖啡廳為例,一位合格的店員應該要有能力獨自處理店內的各項事務,以維持咖啡廳的日常營運。那麼像舉辦促銷活動,開發新菜單等,就不是店員需擔心的項目了。
套用到網頁開發:
- 咖啡廳 ⇒ 專案or產品公司
- 店員 ⇒ 工程師(本文針對前端討論)
- 店內事務 ⇒ 開發生命週期中會遇到的大小事
所以我認為一個可以離開新手村的前端工程師,就是可以不需要他人協助完成開發生命週期中會遇到的大小事的工程師了 like chatgpt。
那麼開發生命週期包含哪些階段呢?
我所接觸到的是較偏向SCRUM的敏捷開發框架,一個Sprint會有複數個專案在進行,各專案版本之間是會有相依性的。
每個Sprint就會是一個完整的開發生命週期,且會對應到複數專案的版本更新。
每個週期分成以下階段:
- 需求同步
- PM會與前端同步本次要開發的前端項目,並提供文件,前端會確認影響既有程式碼的範圍和評估開發的預計時間。
- 系統設計
- 前端會針對項目進行系統設計文件的製作,並與PM,後端,QA進行討論,確認所有人的認知相符。
- 功能實作
- 前端會依據系統設計文件進行開發,並於本地端與後端進行測試通過。
- 單元測試
- 前端會針對本次開發項目的程式碼進行單元測試撰寫,確認涵蓋率與測試全數通過。
- E2E測試
- 前端會針對本次開發項目的業務內容進行E2E測試的撰寫,確認測試全數通過。
- QA測試
- 程式碼交給QA團隊進行測試,前端負責排除障礙。
- 版本發佈
- 透過CICD進行自動化部署,並人工驗證部署結果。
按上述開發流程來看,要離開新手村就必須在每個階段都具備獨立作業的能力,大致如下:
- 專案程式碼盤點
- 新功能技術研究
- 開發時程規劃
- 系統設計與文件製作
- 前端功能開發
- 單元測試
- E2E測試
- 自動化部署
到這邊,基本上需要解決的問題已經明瞭了,
後續讓我們一起將上述的問題攻破,一步一步離開新手村吧!