1. 程式人生 > >軟體開發模式之敏捷開發(scrum)

軟體開發模式之敏捷開發(scrum)

簡介

這幾年關於敏捷開發在網際網路企業中越來越廣泛被使用到,運用的比較多的當屬scrum敏捷開發和xp敏捷開發,人人都在談論敏捷開發。那什麼才是敏捷開發呢?

目錄

  1. 什麼是敏捷開發?
  2. 傳統的開發模式和敏捷開發模式的對比?
  3. 敏捷開發scrum的實施。

什麼是敏捷開發

敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。

在敏捷開發中,軟體專案在構建初期被切分成多個子專案,各個子專案的成果都經過測試,具備可視、可整合和可執行使用的特徵。換言之,就是把一個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。

傳統的開發模式和敏捷開發模式的對比

瀑布模型:
這裡寫圖片描述
優點:
1. 為專案提供了按階段劃分的檢查點。
2. 當前一階段完成後,您只需要去關注後續階段.
3. 它提供了一個模板,這個模板使得分析、設計、編碼、測試和支援的方法可以在該模板下有一個共同的指導。

缺點:
1. 各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量。
2. 由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發風險。
3. 通過過多的強制完成日期和里程碑來跟蹤各個專案階段。
4. 瀑布模型的突出缺點是不適應使用者需求的變化。

敏捷模型:
這裡寫圖片描述
優點:

  1. 敏捷開發的高適應性,以人為本的特性。
  2. 更加的靈活並且更加充分的利用了每個開發者的優勢,調動了每個人的工作熱情。

缺點:

  1. 由於其專案週期很長,所以很難保證開發的人員不更換,而沒有文件就會造成在交接的過程中出現很大的困難。

敏捷開發scrum的實施

Scrum的英文意思是橄欖球運動的一個專業術語,表示“爭球”的動作;把一個開發流程的名字取名為Scrum,相當於大家像打橄欖球一樣迅速、富有戰鬥激情。而Scrum就是這樣的一個開發流程。

Scrum開發流程中的三大角色
– 產品負責人(Product Owner)

主要負責確定產品的功能和達到要求的標準,指定軟體的釋出日期和交付的內容,同時有權力接受或拒絕開發團隊的工作成果。

– 流程管理員(Scrum Master)

主要負責整個Scrum流程在專案中的順利實施和進行,以及清除擋在客戶和開發工作之間的溝通障礙,使得客戶可以直接驅動開發。

–開發團隊(Scrum Team)

主要負責軟體產品在Scrum規定流程下進行開發工作,人數控制在5~10人左右,每個成員可能負責不同的技術方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以採用任何工作方式,只要能達到Sprint的目標。

scrum開發流程圖

這裡寫圖片描述

1、我們首先需要確定一個Product Backlog(產品需求列表),這個是由PO負責的(如圖(一));

2、有了Product Backlog列表,我們需要通過 Sprint Planning Meeting(Sprint計劃會議) 來從中挑選出一個Story作為本次迭代完成的目標,這個目標的時間週期是1~4個星期,然後把這個Story進行細化,形成一個Sprint Backlog;

3、Sprint Backlog是由Scrum Team去完成的,每個成員根據Sprint Backlog再細化成更小的任務(細到每個任務的工作量在2天內能完成);

4、在Scrum Team完成計劃會議上選出的Sprint Backlog過程中,需要進行 Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發言,並且要向所有成員當面彙報你昨天完成了什麼,並且向所有成員承諾你今天要完成什麼,同時遇到不能解決的問題也可以提出,每個人回答完成後,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖)(如圖(二)和如圖(三));

5、做到每日整合,也就是每天都要有一個可以成功編譯、並且可以演示的版本。

6、當一個Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時,我們要進行 Srpint Review Meeting(演示會議),也稱為評審會議,產品負責人和客戶都要參加(最好本公司老闆也參加),每一個Scrum Team的成員都要向他們演示自己完成的軟體產品。

7、最後就是 Sprint Retrospective Meeting(回顧會議),也稱為總結會議,以輪流發言方式進行,每個人都要發言,總結並討論改進的地方,放入下一輪Sprint的產品需求中;

如圖(一):
這裡寫圖片描述

如圖(二):
這裡寫圖片描述

如圖(三):
這裡寫圖片描述

如圖(四):
這裡寫圖片描述

敏捷開發管理工具:teambition
teambition

參考