
敏捷軟體開發一直是我們內部開發的核心概念,強調個人、合作、回應和使用工作軟體(wiki, version control, unit testing, build automaion),2001年由一群軟體開發者發表宣言如下:
- 個人及互動勝於流程與工具
- 可用的軟體勝於詳盡的文件
- 與客戶合作勝於合約談判
- 回應變化勝於墨守計畫
軟體開發是連續(continuous)的,不是最後才測試,也不是最後才佈署,更不會停止收集需求跟feedback。正是因為開發軟體是如此複雜的活動,任何種類的錯誤如果不儘快修正,往往最後就會無法控制的失敗,因此唯有每天不斷的一點一滴的去修正,每天解決一些比較小的問題而不是最後脫韁野馬的大問題,這才是解決的辦法。
何謂 Agility 的定義,作者給了:
“Agile development uses feedback to make constant adjustments in a highly collaborative environment.” (敏捷開發是一種在高度合作的環境中不斷根據回應來做修正的開發方式)
透過經常性地建構出可以實際使用的軟體,我們持續得到 feedback。程式碼會因為需求擴充而不斷地被修改重構演進。工作的流程被拆成一至四周的短 iterations,每次透過 demo 得到 feedback,確保方向正確。
敏捷開發最大的不同到底是什麼呢? 這本書不談方法論流程(XP、Scurm等),而是談人本身,談團隊本身,談如何成為一個敏捷的開發人員。書的每一章由數個 Tips 組成,整本書共45個 Tips 來敘述什麼是敏捷的做法。這本書也得到2007年的 Jolts Productivity Award。
前兩章 Beginning Agility 跟 Feeding Agility 講的是基本的專業態度:
閱讀全文〈實戰敏捷開發 Practices of an Agile Developer (1) 專業態度篇〉