大家都知道每個敏捷軟件開發方法的總體目標是盡可能快地適應變化和提供工作軟件。然而,每種方法在定義軟件開發階段的方式上有輕微的變化。此外即使目標相同,每個團隊的流程可能會因具體項目或情況而異。例如完整的敏捷軟件開發生命周期包括概念,開始,建設,發布,生產和維護階段。
雖然有很多不同類型的敏捷軟件開發方法可以供大家使用,但不論哪一種方法都具有以上四個基礎特征。無論大家使用Scrum,XP,Crystal,Feature-Driven Development還是其他敏捷方法,基本的敏捷方法與周期是一樣的。
啟動軟件開發項目。
定義軟件項目是什么以及最終目標是什么。
為軟件項目的要求制定指導。
開發軟件功能
整合功能。
測試功能。
如果測試成功,請轉到下一個功能并重復步驟4-6。
如果測試不成功,記錄出現什么問題,并執行更改,直到功能正常工作。
根據客戶反饋和新的挑戰,反映和重新確定優先級。
一旦測試和集成,將功能發布到市場。
繼續下一個功能開發,并重復步驟4-10,直到項目完成。
在使用敏捷軟件開發時我們可以通過雖然每次迭代改進應用程序不足之處,或者是增加新功能,使用以前的迭代作為基礎構建逐步完善軟件。
敏捷迭代開發工作流程
敏捷軟件開發生命周期由迭代過程控制。每次迭代產生下一個軟件開發的需求,比如需要軟件支持哪些元素,如果和供客戶使用等。每次迭代通常是兩到四周。由于其有時間限制的性質,因此每次迭代的范圍需要根據開發時間開進行發分配。
一般敏捷軟件開發生命周期中將進行多次迭代,并且每個迭代都遵循自己的工作流程。在迭代過程中,最重要的是確保軟件能夠滿足客戶以及使用者的需求。
典型的迭代過程流程可以如下顯示:
要求 - 根據產品服務功能,客戶和利益相關者反饋的信息定義迭代要求
開發 - 根據定義的要求設計和開發軟件
測試 - 質量保證(Quality Assurance)測試,內部和外部培訓,文檔開發
交付 - 將工作迭代整合并投入生產
反饋 - 接受客戶和利益相關者的反饋建議,并將其納入下一次迭代的要求
敏捷迭代開發流程
在項目期間,雖然額外的功能進入產品開發時會增加額外的工作量,在產品功能中的所有項目都已滿足之前,其余開發工作都是一再重復的步驟。因此整個敏捷迭代工作流程更多的是循環過程,而不是線性過程。