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