一、什么是敏捷開發(fā)?
敏捷開發(fā)(Agile)是一種以人為核心、迭代、循序漸進的開發(fā)方法。
在敏捷開發(fā)中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特征。
簡單地來說,敏捷開發(fā)并不追求前期完美的設計、完美編碼,而是力求在很短的周期內開發(fā)出產品的核心功能,盡早發(fā)布出可用的版本。然后在后續(xù)的生產周期內,按照新需求不斷迭代升級,完善產品。
是誰這么厲害,提出了敏捷開發(fā)思想?是一位名叫 Martin Fowler 的美國大叔。
大叔不但是敏捷開發(fā)的創(chuàng)始人之一,還在面向對象開發(fā)、設計模式、UML 建模領域做出了重要貢獻。目前擔任 ThoughtWorks 公司的首席科學家。
二、敏捷開發(fā)模式的分類
敏捷開發(fā)的實現主要包括 SCRUM、XP(極限編程)、Crystal Methods、FDD(特性驅動開發(fā))等等。其中 SCRUM 與 XP 最為流行。
同樣是敏捷開發(fā),XP 極限編程 更側重于實踐,并力求把實踐做到極限。這一實踐可以是測試先行,也可以是結對編程等,關鍵要看具體的應用場景。
SCRUM 則是一種開發(fā)流程框架,也可以說是一種套路。SCRUM 框架中包含三個角色,三個工件,四個會議,聽起來很復雜,其目的是為了有效地完成每一次迭代周期的工作。在這里我們重點討論的是 SCRUM。
三、SCRUM 的工作流程
學習 Scrum 之前,我們先要了解幾個基本術語:
- Sprint:沖刺周期,通俗的講就是實現一個“小目標”的周期。一般需要 2-6 周時間。
- User Story:用戶的外在業(yè)務需求。拿銀行系統(tǒng)來舉例的話,一個 Story 可以是用戶的存款行為,或者是查詢余額等等。也就是所謂的小目標本身。
- Task:由 User Story 拆分成的具體開發(fā)任務。
- Backlog:需求列表,可以看成是小目標的清單。分為 Sprint Backlog 和 Product Backlog。
- Daily meeting:每天的站會,用于監(jiān)控項目進度。有些公司直接稱其為 Scrum。
- Sprint Review meeting: 沖刺評審會議,讓團隊成員們演示成果。
- Sprint burn down:沖刺燃盡圖,說白了就是記錄當前周期的需求完成情況。
- Release:開發(fā)周期完成,項目發(fā)布新的可用版本。
如上圖所示,在項目啟動之前,會由團隊的產品負責人(Product owner)按照需求優(yōu)先級來明確出一份 Product Backlog,為項目做出整體排期。
隨后在每一個小的迭代周期里,團隊會根據計劃(Sprint Plan Meeting)確定本周期的 Sprint Backlog,再細化成一個個 Task,分配給團隊成員,進行具體開發(fā)工作。每一天,團隊成員都會進行 Daily meeting,根據情況更新自己的 Task 狀態(tài),整個團隊更新 Sprint burn down chart。
當這一周期的 Sprint backlog 全部完成,團隊會進行 Spring review meeting,也就是評審會議。一切順利的話,會發(fā)布出這一版本的 Release,并且進行 Sprint 回顧會議(Sprint Retrospective Meeting)。
那么,現實中的 Scrum 是什么樣的情景呢?看看下面的照片就知道了:
四、敏捷開發(fā)流程的8個步驟包括:
1、目標制定,目標對齊:通過市場調研、業(yè)務思路、風險評估制定公司規(guī)劃和目標,根據這一目標產生所有部門的目標并實現對齊;
2、產品規(guī)劃:產品研發(fā)部門根據目標制定產品關鍵路線圖,這個路線圖中分布著不同的產品特性和其完成時間;
3、組織產品待辦列表:產品規(guī)劃產生的需求、客戶需求、市場人員收集到的缺陷等將組成產品待辦列表;
4、需求梳理:然后產品負責人(Product Ower)對這個列表進行梳理,并在需求梳理會(Backlog Grooming Meeting)講解具體每一個需求,團隊成員根據需求的復雜程度評估每個任務的工作量,輸出本次迭代的待辦事項列表,完成優(yōu)先級排序等工作;
5、迭代規(guī)劃:通過Sprint計劃會,明確要執(zhí)行的工作、沖刺目標等,
6、迭代開發(fā):期間會進行每日站會、性能測試、CodeReview、Demo、測試等工作;7、Sprint評審:由每個任務的負責人演示其完整的工作,由PO確定Sprint目標是否完成,版本什么時候對外發(fā)布,新增bug的緊急程度等等。
8、開回顧會議:回顧會議由Scrum團隊檢視自身在過去的Sprint的表現,包括人 、關系、過程、工具等,思考在下一個Sprint中怎么樣可以表現得更好,更高效,怎么樣可以和團隊合作地更愉快。
五、敏捷開發(fā)模型
流程圖
定義:從1990年代開始逐漸引起廣泛關注,是一種以人為核心、快速迭代、循序漸進的開發(fā)方法。強調以人為本,專注于交付對客戶有價值的軟件。是一個用于開發(fā)和維持復雜產品的框架。就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
優(yōu)點:敏捷確實是項目進入實質開發(fā)迭代階段,用戶很快可以看到一個基線架構版的產品。敏捷注重市場快速反應能力,也即具體應對能力,客戶前期滿意度高。文章來源:http://www.zghlxwxcb.cn/news/detail-442682.html
缺點:但敏捷注重人員的溝通,忽略文檔的重要性,若項目人員流動大太,又給維護帶來不少難度,特別項目存在新手比較多時,老員工比較累。需要項目中存在經驗較強的人,要不大項目中容易遇到瓶頸問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-442682.html
到了這里,關于什么是敏捷開發(fā)?敏捷開發(fā)流程的8個步驟的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!