敏捷開發(fā)中的Scrum流程和術(shù)語
51CTO推薦專題:初探敏捷開發(fā)
任何人力流程都離不開人來執(zhí)行,所以在講解Scrum流程之前,有必要先把Scrum中的角色講一下。
一天,一頭豬和一只雞在路上散步,雞看了一下豬說,“嗨,我們合伙開一家餐館怎么樣?”,豬回頭看了一下雞說,“好主意,那你準備給餐館起什么名字呢?”,雞想了想說“餐館名字叫火腿和雞蛋怎么樣?”,“我不這么認為”,豬說, “我全身投入,而你只是參與而已”
豬是全身投入項目和Scrum過程的人,有三種角色:產(chǎn)品負責人(Product Owner)、ScrumMaster、團隊(Team)。
角色 | 職責 |
---|---|
ProductOwner |
|
ScrumMaster |
|
Scrum Team |
|
雞角色并不是實際Scrum流程的一部分,但是必須考慮他們。 敏捷方法的一個重要方面是使用戶和利益相關(guān)者參與到過程中的實踐。參與每一個評審和計劃,并提供反饋對于這些人來說是非常重要的,管理者就屬于雞。
在知道Scrum的主要角色后,我們看看下圖中的過程圖:它由Product backlog開始,經(jīng)過sprint會議從Prdouct backlog挑選出一些優(yōu)先級最高的故事(story)形成迭代的sprint backlog(一個sprint一般為1個月)。在sprint中會進行每日站會,迭代結(jié)束時會進行演示和回顧會議。
第一次聽到以上術(shù)語的可能不能很好的理解backlog和spring之類的東西,大家不用著急,以后會慢慢對每一個過程進行仔細講解。
以下將對一些術(shù)語進行簡單介紹,以便大家現(xiàn)在開始逐步了解Scrum。
【Backlog】
Product Backlog
在項目開始的時候,Product Owner要準備一個根據(jù)商業(yè)價值排好序的客戶需求列表。這個列表就是Prodct Backlog,一個最終會交付給客戶的產(chǎn)品特性列表,它們根據(jù)商業(yè)價值來排列優(yōu)先級。Scrum team會根據(jù)這個來做工作量的估計。Product backlog應(yīng)該涵蓋所有用來構(gòu)建滿足客戶需要的產(chǎn)品特性,包括技術(shù)上的需求。高優(yōu)先級的一些產(chǎn)品特性需要足夠的細化以便于我們做工作量估計和做測試。對于那些以后將要實現(xiàn)的特性可以不夠詳細。
在下一篇我將著重講解如何制定Product Backlog,怎么寫故事,如何拆分和合并故事,以及如何確定優(yōu)先級和進行估算。
Sprint Backlog
Sprint Backlog 是Sprint規(guī)劃會上產(chǎn)出的一個工作成果. 當Scrum team選擇并承諾了Product backlog中要遞交的一些高優(yōu)先級的產(chǎn)品功能點后,這些功能點就會被細化成為Sprint Backlog:一個完成Product Backlog功能點的必需的任務(wù)列表.這些點會被細化為更小的任務(wù),工作量小于2天。Sprint backlog完成后,Scrum team會根據(jù)它重新估計工作量,如果這些工作量和原始估計的工作量有較大差異,Scrum team和Product Owner 協(xié)商,調(diào)整合理得工作量到Sprint中,以確保Sprint的成功實施。
【會議】
Sprint Planning Meeting(Sprint規(guī)劃會)
根據(jù)Product Owner制定的產(chǎn)品或項目計劃在Sprint的開始時做準備工作。Product Owner可以是客戶或者客戶代表或代理。對于產(chǎn)品型的公司,客戶就是市場,Product Owner扮演市場代理的角色。一個Product Owner需要一個確定產(chǎn)品最終目標的遠景,規(guī)劃出今后一段時間產(chǎn)品發(fā)展的路線圖,以及根據(jù)對投資回報的貢獻確定的產(chǎn)品特性。他要準備一個根據(jù)商業(yè)價值排好序的客戶需求列表。這個列表就是Prodct Backlog,一個最終會交付給客戶的產(chǎn)品特性列表,它們根據(jù)商業(yè)價值來排列優(yōu)先級。
當為一個Sprint定義好足夠多的Product Backlog,并且排列好優(yōu)先級后Scrum就可以開始了,Sprint規(guī)劃會是用來細化當前迭代的開發(fā)計劃的。規(guī)劃會開始的時候,Product Owner會和Scrum team一起評審版本,路線圖,發(fā)布計劃,及Product Backlog。Scrum Team會評審Product Backlog中功能點的時間估計并確認這些估計盡可能的準確。Scrum Team會根據(jù)資源情況看有多少feature可以放在當前的Sprint中。Scrum Team按照優(yōu)先級的高低來確定開發(fā)的先后是很重要的。
當Sprint backlog確定后,ScrumMaster帶領(lǐng)Scrum Team去分解這些功能點,細化成Sprint的一個個任務(wù). 這些任務(wù)就是細化的來實施這些功能點的活動. Sprint Planning的這個階段需要控制在4個小時。
Daily Scrum Meeting(每日站會)
一旦計劃階段結(jié)束,30天周期的Sprint就開始了。ScrumMaster需要組織團隊成員每天開站會. 這個會議是用15分鐘的時間來讓大家過一下scrum的狀態(tài)。在會上,每個團隊成員需要問3個問題:我昨天做了什么,今天做什么,遇到哪些障礙。誰都可以參加這個會議,但只有Scrum團隊成員有發(fā)言權(quán)。這個會議的目標是得到一個項目的全局觀,用于發(fā)現(xiàn)任何新的依賴,定位項目成員的要求,實時的調(diào)整當天開發(fā)計劃.
Sprint Review Meeting(Sprint評審會)
在Sprint結(jié)束的時候召開Sprint評審會. 這個會議最多不超過4個小時.會議的前一半時間用來演示在這個Sprint中開發(fā)的產(chǎn)品功能給 Product Owner. Produc Owner會組織這階段的會議并且邀請相關(guān)的利益相關(guān)者參加。 業(yè)務(wù),市場,技術(shù)都要做相關(guān)的評審。由Product Owner來決定Product Backlog中的哪些功能已經(jīng)開發(fā)完成 。會議的下半部分,是由Scrum Master和Scrum Team一起回顧當前的Sprint。團隊評估大家在一起的工作方式,找出好的方式以后繼續(xù)發(fā)揚,找出需要做的更好的地方,想辦法提升。Sprint評審會結(jié)束后,新一輪的迭代又繼續(xù)開始(中間最好修整半天或者隔個周末),迭代會一直繼續(xù),直到開發(fā)了足夠多的功能去交付一個產(chǎn)品。
【編輯推薦】