source: http://www.cnblogs.com/Ring1981/archive/2006/09/07/496591.html
一 什么是Scrum?
Scrum (英式橄欖球爭(zhēng)球隊(duì)), 軟件開發(fā)模型是敏捷開發(fā)的一種,在最近的一兩年內(nèi)逐漸流行起來。 Scrum的基本假設(shè)是: 開發(fā)軟件就像開發(fā)新產(chǎn)品,無法一開始就能定義軟件產(chǎn)品最終的規(guī)程,過程中需要研發(fā)、創(chuàng)意、嘗試錯(cuò)誤,所以沒有一種固定的流程可以保證專案成功。Scrum 將軟件開發(fā)團(tuán)隊(duì)比擬成橄欖球隊(duì),有明確的最高目標(biāo),熟悉開發(fā)流程中所需具備的最佳典范與技術(shù),具有高度自主權(quán),緊密地溝通合作,以高度彈性解決各種挑戰(zhàn),確保每天、每個(gè)階段都朝向目標(biāo)有明確的推進(jìn)。
Scrum 開發(fā)流程通常以 30 天(或者更短的一段時(shí)間)為一個(gè)階段,由客戶提供新產(chǎn)品的需求規(guī)格開始,開發(fā)團(tuán)隊(duì)與客戶于每一個(gè)階段開始時(shí)挑選該完成的規(guī)格部分,開發(fā)團(tuán)隊(duì)必須盡力于 30 天后交付成果,團(tuán)隊(duì)每天用 15 分鐘開會(huì)檢查每個(gè)成員的進(jìn)度與計(jì)劃,了解所遭遇的困難并設(shè)法排除。
二 Scrum較傳統(tǒng)開發(fā)模型的優(yōu)點(diǎn)
Scrum模型的一個(gè)顯著特點(diǎn)就是響應(yīng)變化,它能夠盡快地響應(yīng)變化。下面的圖片使用傳統(tǒng)的軟件開發(fā)模型(瀑布模型、螺旋模型或迭代模型)。隨著系統(tǒng)因素(內(nèi)部和外部因素)的復(fù)雜度增加,項(xiàng)目成功的可能性就迅速降低。

下圖是Scrum模型和傳統(tǒng)模型的對(duì)比: 
三 Scrum模型
一) 有關(guān)Scrum的幾個(gè)名詞
backlog: 可以預(yù)知的所有任務(wù), 包括功能性的和非功能性的所有任務(wù)。
sprint:一次跌代開發(fā)的時(shí)間周期,一般最多以30天為一個(gè)周期.在這段時(shí)間內(nèi),開發(fā)團(tuán)隊(duì)需要完成一個(gè)制定的backlog,并且最終成果是一個(gè)增量的,可以交付的產(chǎn)品。
sprint backlog:一個(gè)sprint周期內(nèi)所需要完成的任務(wù)。
scrumMaster: 負(fù)責(zé)監(jiān)督整個(gè)Scrum進(jìn)程,修訂計(jì)劃的一個(gè)團(tuán)隊(duì)成員。
time-box: 一個(gè)用于開會(huì)時(shí)間段。比如每個(gè)daily scrum meeting的time-box為15分鐘。
sprint planning meeting: 在啟動(dòng)每個(gè)sprint前召開。一般為一天時(shí)間(8小時(shí))。該會(huì)議需要制定的任務(wù)是:產(chǎn)品Owner和團(tuán)隊(duì)成員將backlog分解成小的功能模塊, 決定在即將進(jìn)行的sprint里需要完成多少小功能模塊,確定好這個(gè)Product Backlog的任務(wù)優(yōu)先級(jí)。另外,該會(huì)議還需詳細(xì)地討論如何能夠按照需求完成這些小功能模塊。制定的這些模塊的工作量以小時(shí)計(jì)算。
Daily Scrum meeting:開發(fā)團(tuán)隊(duì)成員召開,一般為15分鐘。每個(gè)開發(fā)成員需要向ScrumMaster匯報(bào)三個(gè)項(xiàng)目:今天完成了什么? 是否遇到了障礙? 即將要做什么?通過該會(huì)議,團(tuán)隊(duì)成員可以相互了解項(xiàng)目進(jìn)度。
Sprint review meeting:在每個(gè)Sprint結(jié)束后,這個(gè)Team將這個(gè)Sprint的工作成果演示給Product Owner和其他相關(guān)的人員。一般該會(huì)議為4小時(shí)。
Sprint retrospective meeting:對(duì)剛結(jié)束的Sprint進(jìn)行總結(jié)。會(huì)議的參與人員為團(tuán)隊(duì)開發(fā)的內(nèi)部人員。一般該會(huì)議為3小時(shí)。
二)實(shí)施Scrum的過程簡(jiǎn)單介紹
1) 將整個(gè)產(chǎn)品的backlog分解成Sprint Backlog,這個(gè)Sprint Backlog是按照目前的人力物力條件可以完成的。 2) 召開sprint planning meeting,劃分,確定這個(gè)Sprint內(nèi)需要完成的任務(wù),標(biāo)注任務(wù)的優(yōu)先級(jí)并分配給每個(gè)成員。注意這里的任務(wù)是以小時(shí)計(jì)算的,并不是按人天計(jì)算。 3) 進(jìn)入sprint開發(fā)周期,在這個(gè)周期內(nèi),每天需要召開Daily Scrum meeting。 4) 整個(gè)sprint周期結(jié)束,召開Sprint review meeting,將成果演示給Product Owner. 5) 團(tuán)隊(duì)成員最后召開Sprint retrospective meeting,總結(jié)問題和經(jīng)驗(yàn)。 6) 這樣周而復(fù)始,按照同樣的步驟進(jìn)行下一次Sprint.
整個(gè)過程如下圖所示:

The diagrams in this article are all from web site: http://www.. Thanks very much!
參考: http://www./about/ http://www.microsoft.com/Taiwan/msdn/columns/200311softdev.htm
|