Daily Scrum Meeting是什么
In rugby, a scrum is a play, similar to a down in American football. In the Scrum methodology, the Scrum meeting makes a day of work like a play in rugby. It might be rough and tumble, but the goal to make forward progress is clear, and your team pulls together toward that common goal. Your team should hold daily Scrum meetings to determine what it needs to do in the next day to maximize its chances of meeting its commitments. Each team member describes what he or she has accomplished since the most recent meeting, the work that he or she plans to accomplish that day, and any issues or impediments that might affect or require help from other team members.
Your ScrumMaster strictly enforces the structure of the meeting and ensure that it starts on time and finishes in 15 minutes or less. In this meeting, each member of the team answers three questions:
What have I accomplished since the most recent Scrum?
What will I accomplish before the next Scrum?
What blocking issues or impediments might affect my work?
It is important that team members answer these questions quickly and concisely. An example of a good answer is, "Yesterday, I updated the class to reflect the new data element that we pull from the database, and I got it to appear in the interface. This task is complete. Today, I will ensure that the new data element is correctly calculating with the stored procedure and the other data elements in the table. I believe I will accomplish this task today. I will need someone to review my calculations. I have no impediments or blocking issues." Compare that answer to the less-than-stellar answer, "Yesterday, I worked on the class, and it works. Today, I will work on the interface. No blocking issues."
上面的內(nèi)容主要是scrum是來自橄欖球的一個(gè)名詞,每日站會(huì)的寓意是想橄欖球游戲一樣,整個(gè)團(tuán)隊(duì)的目標(biāo)是明確的,共同努力達(dá)到這個(gè)目標(biāo)。每日站會(huì)的目的就是充分利用有限的時(shí)間和資源決定明天或者下一個(gè)階段要完成的任務(wù),每一個(gè)成員都要總結(jié)在最近一次會(huì)議后完成了,在接下來的一次會(huì)議前將要完成什么,你的當(dāng)前工作進(jìn)度遇到什么樣的阻礙。
對(duì)每日站會(huì)的調(diào)查與理解
Daily Scrum Meeting是敏捷開發(fā)Scrum的主要環(huán)節(jié)。
什么是敏捷開發(fā)?
敏捷開發(fā)(Agile Development)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。
我們不能把它理解成一種技術(shù),因?yàn)樗且环N開發(fā)方法,也就是一種軟件開發(fā)的流程,它會(huì)指導(dǎo)我們用規(guī)定的環(huán)節(jié)去一步一步地完成項(xiàng)目的開發(fā);這種開發(fā)方式的主要驅(qū)動(dòng)的核心是人;它采用的是迭代式的開發(fā)模式。
這種開發(fā)方式與瀑布式開發(fā)模型不同,瀑布式開發(fā)模型以文檔為驅(qū)動(dòng),在整個(gè)開發(fā)過程中要寫大量的文檔,開發(fā)人員需要根據(jù)寫好的需求文檔進(jìn)行開發(fā),文檔是一切的依據(jù);但是敏捷開發(fā)只寫必須的文檔,注重的是人和人之間,面對(duì)面的交流,這就是它以人為核心的本質(zhì)。
迭代的方式則是把一個(gè)復(fù)雜且開發(fā)周期很長的開發(fā)任務(wù),分解成很多小周期可完成的任務(wù),這樣的一個(gè)周期就是一次迭代的過程;同時(shí)每一次迭代都可以生產(chǎn)或開發(fā)出一個(gè)可以交付的軟件產(chǎn)品。
什么是Scrum?
Scrum的英文意思是橄欖球運(yùn)動(dòng)的一個(gè)專業(yè)術(shù)語,表示“爭(zhēng)球”的動(dòng)作;把一個(gè)開發(fā)流程的名字取名為Scrum,我想你一定能想象出你的開發(fā)團(tuán)隊(duì)在開發(fā)一個(gè)項(xiàng)目時(shí),大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭(zhēng)我搶地完成它,你一定會(huì)感到非常興奮的。
而Scrum就是這樣的一個(gè)開發(fā)流程,運(yùn)用該流程,你就能看到你團(tuán)隊(duì)高效的工作。
Scrum開發(fā)流程中的三大角色
產(chǎn)品負(fù)責(zé)人(Product Owner)
主要負(fù)責(zé)確定產(chǎn)品的功能和達(dá)到要求的標(biāo)準(zhǔn),指定軟件的發(fā)布日期和交付的內(nèi)容,同時(shí)有權(quán)力接受或拒絕開發(fā)團(tuán)隊(duì)的工作成果。
流程管理員(Scrum Master)
主要負(fù)責(zé)整個(gè)Scrum流程在項(xiàng)目中的順利實(shí)施和進(jìn)行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動(dòng)開發(fā)。
開發(fā)團(tuán)隊(duì)(Scrum Team)
主要負(fù)責(zé)軟件產(chǎn)品在Scrum規(guī)定流程下進(jìn)行開發(fā)工作,人數(shù)控制在5~10人左右,每個(gè)成員可能負(fù)責(zé)不同的技術(shù)方面,但要求每成員必須要有很強(qiáng)的自我管理能力,同時(shí)具有一定的表達(dá)能力;成員可以采用任何工作方式,只要能達(dá)到Sprint的目標(biāo)。
如何進(jìn)行Scrum開發(fā)
我們首先需要確定一個(gè)Product Backlog(按優(yōu)先順序排列的一個(gè)產(chǎn)品需求列表),這個(gè)是由Product Owner 負(fù)責(zé)的;
Scrum Team根據(jù)Product Backlog列表,做工作量的預(yù)估和安排;
有了Product Backlog列表,我們需要通過 Sprint Planning Meeting(Sprint計(jì)劃會(huì)議) 來從中挑選出一個(gè)Story作為本次迭代完成的目標(biāo),這個(gè)目標(biāo)的時(shí)間周期是1~4個(gè)星期,然后把這個(gè)Story進(jìn)行細(xì)化,形成一個(gè)Sprint Backlog;
Sprint Backlog是由Scrum Team去完成的,每個(gè)成員根據(jù)Sprint Backlog再細(xì)化成更小的任務(wù)(細(xì)到每個(gè)任務(wù)的工作量在2天內(nèi)能完成);
在Scrum Team完成計(jì)劃會(huì)議上選出的Sprint Backlog過程中,需要進(jìn)行 Daily Scrum Meeting(每日站立會(huì)議),每次會(huì)議控制在15分鐘左右,每個(gè)人都必須發(fā)言,并且要向所有成員當(dāng)面匯報(bào)你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時(shí)遇到不能解決的問題也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖);
做到每日集成,也就是每天都要有一個(gè)可以成功編譯、并且可以演示的版本;很多人可能還沒有用過自動(dòng)化的每日集成,其實(shí)TFS就有這個(gè)功能,它可以支持每次有成員進(jìn)行簽入操作的時(shí)候,在服務(wù)器上自動(dòng)獲取最新版本,然后在服務(wù)器中編譯,如果通過則馬上再執(zhí)行單元測(cè)試代碼,如果也全部通過,則將該版本發(fā)布,這時(shí)一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會(huì)用郵件通知項(xiàng)目管理人員;
當(dāng)一個(gè)Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時(shí),我們要進(jìn)行 Srpint Review Meeting(演示會(huì)議),也稱為評(píng)審會(huì)議,產(chǎn)品負(fù)責(zé)人和客戶都要參加(最好本公司老板也參加),每一個(gè)Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個(gè)會(huì)議非常重要,一定不能取消);
最后就是 Sprint Retrospective Meeting(回顧會(huì)議),也稱為總結(jié)會(huì)議,以輪流發(fā)言方式進(jìn)行,每個(gè)人都要發(fā)言,總結(jié)并討論改進(jìn)的地方,放入下一輪Sprint的產(chǎn)品需求中;