開發團隊 “一定” 要顧好的流程

以我的角度來看,開發團隊 “一定” 要顧好的流程,有這幾個部分:

  1. 版本控制: Source code 是開發團隊最重要的資產, 好好的管理它是必要的。所謂的 “管理” 不只是記錄誰改了哪一行 code 而已,他橫跨了整個開發流程,包含開發中的版本,已發行或是以上線的版本,延伸到將來的 hotfix, 或是回報舊版本問題時,是否都能在版控系統內 精確 的定位到當時那份 code… 都在考量的範圍內。 其實這有點像在製造業的物料管理一樣,序號或是條碼掃描一下,就能知道所有這產品的來歷。在軟體來看,看到版號或是 commit sha, 就要能讓開發團隊追蹤到所有跟 source code 相關的細節。

  2. 自動建置與整合測試: 大致上就是現在 CI 在講的事情。包含建置 (build, compilation), 測試 (unit test, 其他 auto testing), 其他語法檢查, 源碼掃描等等對程式碼的品質管控機制都包括在內。目的在程式碼有異動時,能第一時間透過自動化的 process 讓 team member 第一時間能掌握這次異動後的系統品質是否仍然可靠?

  3. 發行管理 (Release management): 包含將 CI 的成品 (artifacts) 經過一連串自動化的程序,部署到執行環境 (dev, qa, production 都算) 上的動作。簡單的說就是把 CI 的東西弄到可以上線測試或是使用的過程。 版控機制若有不同的分支 (branch), 則不同分支應該有不同的發行方式與規則,如 develop 發行的是 BETA 版,而 master 發行的是 RTM / RC 版本等等。

Last updated