敏捷知識分享 - Scrum簡單理論及有效管理敏捷團隊
1, 什么是Scrum
Scrum的英文意思是橄欖球運動的一個專業(yè)術語,表示“爭球”的動作;把一個開發(fā)流程的名字取名為Scrum,我想你一定能想象出你的開發(fā)團隊在開發(fā)一個項目時,大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭我搶地完成它,你一定會感到非常興奮的。而Scrum就是這樣的一個開發(fā)流程,運用該流程,你就能看到你團隊高效的工作。
【Scrum開發(fā)流程中的三大角色】
產(chǎn)品負責人(Product?Owner)
主要負責確定產(chǎn)品的功能和達到要求的標準,指定軟件的發(fā)布日期和交付的內容,同時有權力接受或拒絕開發(fā)團隊的工作成果。
流程管理員(ScrumMaster)
主要負責整個Scrum流程在項目中的順利實施和進行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅動開發(fā)。
開發(fā)團隊(ScrumTeam)
主要負責軟件產(chǎn)品在Scrum規(guī)定流程下進行開發(fā)工作,人數(shù)控制在5~10人左右,每個成員可能負責不同的技術方面,但要求每成員必須要有很強的自我管理能力,同時具有一定的表達能力;成員可以采用任何工作方式,只要能達到Sprint的目標。

2,什么是Sprint?
Sprint是短距離賽跑的意思,這里面指的是一次迭代,而一次迭代的周期是1個月時間(即4個星期),也就是我們要把一次迭代的開發(fā)內容以最快的速度完成它,這個過程我們稱它為Sprint。
如何進行Scrum開發(fā)?
1、我們首先需要確定一個Product Backlog(按優(yōu)先順序排列的一個產(chǎn)品需求列表),這個是由Product Owner 負責的;
2、Scrum Team根據(jù)Product Backlog列表,做工作量的預估和安排;
3、有了Product Backlog列表,我們需要通過Sprint Planning Meeting(Sprint計劃會議) 來從中挑選出一個Story作為本次迭代完成的目標,這個目標的時間周期是1~4個星期,然后把這個Story進行細化,形成一個Sprint Backlog;
4、Sprint Backlog是由Scrum Team去完成的,每個成員根據(jù)Sprint
Backlog再細化成更小的任務(細到每個任務的工作量在2天內能完成);
5、在Scrum Team完成計劃會議上選出的Sprint
Backlog過程中,需要進行Daily Scrum Meeting(每日站立會議),每次會議控制在15分鐘左右,每個人都必須發(fā)言,并且要向所有成員當面匯報你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時遇到不能解決的問題也可以提出,每個人回答完成后,要走到黑板前更新自己的?Sprint burn down(Sprint燃盡圖);
6、做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本;很多人可能還沒有用過自動化的每日集成,其實TFS就有這個功能,它可以支持每次有成員進行簽入操作的時候,在服務器上自動獲取最新版本,然后在服務器中編譯,如果通過則馬上再執(zhí)行單元測試代碼,如果也全部通過,則將該版本發(fā)布,這時一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會用郵件通知項目管理人員;
7、當一個Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時,我們要進行?Srpint Review Meeting(演示會議),也稱為評審會議,產(chǎn)品負責人和客戶都要參加(最好本公司老板也參加),每一個Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個會議非常重要,一定不能取消);
8、最后就是?Sprint Retrospective?Meeting(回顧會議),也稱為總結會議,以輪流發(fā)言方式進行,每個人都要發(fā)言,總結并討論改進的地方,放入下一輪Sprint的產(chǎn)品需求中;
3, ScrumMaster的作用
Scrum是一種輕量級的軟件開發(fā)模式--敏捷開發(fā)框架,scrum master是整個團隊的組織者和管理者,作為Team Leader和Productowner緊密地工作在一起,他可以及時地為團隊成員提供幫助。
他必須:
?保證團隊資源完全可被利用并且全部是高產(chǎn)出的。
?保證各個角色及職責的良好協(xié)作。
?解決團隊開發(fā)中的障礙。
?做為團隊和外部的接口,屏蔽外界對團隊成員的干擾。
?保證開發(fā)過程按計劃進行,組織每日碰頭會議,評審 ,工作計劃等
4, ScrumMaster作為仆人式的領導
ScrumMaster承擔領導角色,但它更關心長期目標和策略,而不是短期硬性指標,自我驅動,充滿創(chuàng)意,團隊第一,自己第二,需要在如下幾方面改善自己:
聆聽他人
共情
治療關系
作為領導者的意識和自我意識
使用說服,而不是依靠職位權威
概念化
先見之明
管家
承諾其他人的成長
建立共同體
5,心態(tài)模式
根據(jù)團隊狀態(tài)和公司使用敏捷的狀況,可以使用心態(tài)模式,決定采取何種方法。此模式包含四個核心方法:
移除障礙 (我?guī)湍阃瓿蛇@個)支持團隊尋找解決方案,從而移除障礙。
教導和輔導(解釋或給出建議)共享Scrum以及敏捷的經(jīng)驗,并利用自己的經(jīng)驗提出更多的實踐和方法。
教練(如果出現(xiàn)這種情況,你會做些什么?)教練法比解釋、分享經(jīng)驗或者提供建議更強大。不是短期目標,不會短期內見效快,而是長期內要得到改善。
引導(我們開始于…)確保團隊會議順利進行,討論或者談話應有明確的目標,有可交付的結果,不應干擾討論內容或者解決方案本身,只是推進討論流程。
6, 塔克曼團隊發(fā)展理論
發(fā)展階段模型:組建期 - 激蕩期 - 規(guī)范期 - 執(zhí)行期 - 改變期

組建期時:ScrumMaster需要采取心態(tài)模式中的所有方法,但是更多的需要“教導和輔導”來解釋和分享經(jīng)驗。
激蕩期時:ScrumMaster需要順暢的溝通,讓團隊在爭論中達成可用協(xié)議,所以心態(tài)模式的最重要方法是“引導“。
規(guī)范期時:團隊感受到改變帶來的好處,使用在此的心態(tài)模式中最重要的方法是“教練”。
執(zhí)行期時:執(zhí)行期中的團隊充滿自信,不怕失敗,不覺得已經(jīng)功德圓滿,不停嘗試,ScrumMaster主要防止事情出錯,避免團隊返回以前的任意階段。ScrumMaster的工作是觀察,在心態(tài)模式中的所有方法都會使用。