最近需要學(xué)習(xí)Scrum,然后在網(wǎng)上找了很多資料,總結(jié)了一份學(xué)習(xí)筆記,分享給有需要的人。
正式了解Scrum之前先看看一些名詞解釋:
迭代:是重復(fù)反饋過程的活動。目的是為了逼近所需目標或結(jié)果。每一次對過程的重復(fù)稱為一次“迭代”,而每一次迭代得到的結(jié)果會作為下一次迭代的初始值。
敏捷開發(fā):以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。可理解為把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
瀑布開發(fā)模型以文檔為驅(qū)動。在瀑布的整個開發(fā)過程中,要寫大量的文檔,把需求文檔寫出來后,開發(fā)人員都是根據(jù)文檔進行開發(fā)的,一切以文檔為依據(jù);而敏捷開發(fā)它只寫有必要的文檔,或盡量少寫文檔,敏捷開發(fā)注重的是人與人之間,面對面的交流,所以它強調(diào)以人為核心。
Sprint:每一次迭代稱為一個Sprint。
Backlog:其實就是需求列表。
SM:Scrum Master,Scrum過程的管理者。
PO:Product Owner,需求他說了算。
TEAM:架構(gòu)師、開發(fā)人員、測試人員等。
Chicken:其他相關(guān)的人,如老總、客戶。
故事點:一個相對獨立的功能點。
度量:在過程中的一些度量值。如當前系統(tǒng)的BUG數(shù)。
事件:過程中出現(xiàn)的一切事件。
下面正式介紹:
Scrum是迭代式增量軟件開發(fā)過程,通常用于敏捷軟件開發(fā)。采用Scrum,能看到團隊高效工作。
Scrum和XP是敏捷開發(fā)的具體方式,開發(fā)過程中可以采用Scrum方式也可以采用XP方式;Scrum和XP的區(qū)別是,Scrum偏重于過程,XP則偏重于實踐,但是實際中,兩者是結(jié)合一起應(yīng)用的。
Scrum開發(fā)流程中的三大角色
- 產(chǎn)品負責(zé)人(Product Owner)
- 主要負責(zé)確定產(chǎn)品的功能和達到要求的標準,指定軟件的發(fā)布日期和交付的內(nèi)容,同時有權(quán)力接受或拒絕開發(fā)團隊的工作成果。
- 流程管理員(Scrum Master)
- 主要負責(zé)整個Scrum流程在項目中的順利實施和進行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動開發(fā)。
- 開發(fā)團隊(Scrum Team)
- 主要負責(zé)軟件產(chǎn)品在Scrum規(guī)定流程下進行開發(fā)工作,人數(shù)控制在5~10人左右,每個成員可能負責(zé)不同的技術(shù)方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以采用任何工作方式,只要能達到Sprint的目標。
Scrum開發(fā)模型圖

Scrum開發(fā)過程描述
- PO 首先確定一個 Product Backlog(優(yōu)先排列的一個產(chǎn)品需求列表);
- Scrum Team根據(jù)Product Backlog列表,做工作量的預(yù)估和安排;
- 有了Product Backlog列表,我們需要通過 Sprint Planning Meeting(Sprint計劃會議) 來從中挑選出一個Story作為本次迭代完成的目標,這個目標的時間周期是1~4個星期,然后把這個Story進行細化,形成一個Sprint Backlog;
- Sprint Backlog是由Scrum Team去完成的,每個成員根據(jù)Sprint Backlog再細化成更小的任務(wù)(細到每個任務(wù)的工作量在2天內(nèi)能完成);
- 在Scrum Team完成計劃會議上選出的Sprint Backlog過程中,需要進行 Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發(fā)言,并且要向所有成員當面匯報你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時遇到不能解決的問題也可以提出,每個人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖);
- 做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本;很多人可能還沒有用過自動化的每日集成,其實TFS就有這個功能,它可以支持每次有成員進行簽入操作的時候,在服務(wù)器上自動獲取最新版本,然后在服務(wù)器中編譯,如果通過則馬上再執(zhí)行單元測試代碼,如果也全部通過,則將該版本發(fā)布,這時一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會用郵件通知項目管理人員;
- 當一個Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時,我們要進行 Srpint Review Meeting(演示會議),也稱為評審會議,產(chǎn)品負責(zé)人和客戶都要參加(最好本公司老板也參加),每一個Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個會議非常重要,一定不能取消);
- 最后就是 Sprint Retrospective Meeting(回顧會議),也稱為總結(jié)會議,以輪流發(fā)言方式進行,每個人都要發(fā)言,總結(jié)并討論改進的地方,放入下一輪Sprint的產(chǎn)品需求中;
參考資料:
【1】敏捷開發(fā)-百度百科
【2】Scrum中文網(wǎng)
【3】http://zgynhqf.cnblogs.com/
【4】http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html