敏捷式開發的流程圖大致上會長成這樣,很簡單,但問題是該如何執行?
實際執行過的軟工方法 What we did ?
- 每日站立會議 Daily Standing Meeting
- WBS(Work Breakdown Structure)
- 持續性整合 Continuous Integration(CI)
- 自動化測試 Auto Testing
- 視覺化工作進程追蹤 Kanban
- 使用議題追蹤系統 Using issue tracking system with Microsoft Team Foundation Server(TFS)
敏捷式(Agile)開發到底是什麼鬼 What the hell is AGILE ?
以下完全是個人對敏捷式開發下的定義,不代表任何一個出處。
- 敏捷式開發不是軟工方法,敏捷只是一種心理狀態的描述、一種工作環境的意念,如果公司文化沒有敏捷的意圖或是想法存在,導入任何方法都沒有用。但軟體開發總是需要方法來協助執行,下一節會針對上述個人所使用過的軟體工程方法來成果分析。
- 敏捷注重的是大量的重複迭代(Iterator),簡單的說,就是你的任何工作不要做完了才拿出來,千萬不要做完了才拿出來,而是時間到了就要拿出來檢視、拿出來討論、拿出來DEMO。老師在講你有沒有在聽?老師在講有沒有在聽?這可不是跳針,是強調!
- 所以敏捷團隊執行狀態比較會像是:在專案開發初期,所有成員一起制定目標,這個系統要呈現使用者什麼樣的功能、什麼樣的感覺,不一定要馬上有既定的結論,但必須把工作項目(backlog)內容及時程制定下來,然後由成員各自認養。
- 不是認養回去就算了,還得繼續把目標切割(item)透過不斷的執行、驗證、根據驗證後的感覺進行討論然後修改、再執行,這樣每次的執行、驗證、再修改、再執行就是一個 iteration。老實說這種思維很難跟沒有執行過的人、不夠經驗的開發者、長官等等解釋,沒有實際執行過真的永遠只會理解教條上那套。