scrum之 流程和術語-百草園-iteye技術網站

scrum之 流程和術語-百草園-iteye技術網站
2011年09月01日
  === 目錄 ===
  什麼是Scrum?
  Scrum參與角色
  Backlog
  - Product Backlog
  - Sprint Backlog
  Meeting
  - Sprint Planning Meeting
  - Daily Scrum Meeting(每日站會)
  - Sprint Review Meeting(Sprint評審會) 來源:Scrum Alliance Scrum聯盟)
  Scrum是一個迭代性、增量性的流程,適用於任何的產品開發以及工作管理。 在每個迭代結束後,Scrum都會產生一套可以交付的功能性產品。Scrum的特點是: Scrum是一個敏捷的流程,可用於管理和控制研發工作。
  Scrum是現有設計流程的總結。
  Scrum以團隊爲基礎,是一種在要求迅速變化情況下迭代地、增量地開發系統和產品的方法。
  Scrum是一個控制由利益和需求衝突導致的混亂的流程。
  Scrum是改善交流並最優化合作的方式。
  Scrum是一種檢測產品開發和生產過程中障礙並將其去除的方式。
  Scrum是最大化生產率的一種方法。
  Scrum適用於單一的項目到整個組織。Scrum可以控制並組織多件具有相關性的產品開發以及擁有超過千名開發者和執行者的項目實施過程。
  Scrum能讓每個參與者都對自己的工作以及自己做出的貢獻感到滿意,並讓他們感覺自己的工作已經達到最佳的水平。
  任何人力流程都離不開人來執行,所以在講解Scrum流程之前,有必要先把Scrum中的角色講一下。 一天,一頭豬和一隻雞在路上散步,雞看了一下豬說,“嗨,我們合夥開一家餐館怎麼樣?”,豬回頭看了一下雞說,“好主意,那你準備給餐館起什麼名字呢?”,雞想了想說“餐館名字叫火腿和雞蛋怎麼樣?”,“我不這麼認爲”,豬說, “我全身投入,而你只是參與而已”
  豬 是 全身投入項目和Scrum過程的人,有三種角色:產品負責人(Product Owner)、ScrumMaster、團隊(Team)。產品負責人負責業務概念與想法(例如backlog),而Scrum Master負責領導Team執行與質量,關注於及時完成Sprint。 角色 職責
  ProductOwner * 確定產品的功能
  * 決定發佈的日期和發佈內容
  * 爲產品的profitability of the product (ROI)負責
  * 根據市場價值確定功能優先級
  * 在30天內調整功能和調整功能優先級
  * 接受或拒絕接受開發團隊的工作成果
  ScrumMaster Scrum官方網站把ScrumMaster的職責定義爲:
  ScrumMaster負責在團隊中正確、完整地貫徹Scrum流程。雖然在實施開始的時候必須做一些折衷,而且因爲實施環境的限制不得不放棄某些實踐,但是ScrumMaster在腦海中始終要銘記實施完整的Scrum所帶來的好處和價值,漸進地推動團隊和組織走向完美狀態。
  ScrumMaster特別要對以下工作負責:
  * 清除擋在客戶和開發工作之間的攔路虎,客戶從而可以直接驅動開發。
  * 教導客戶如何最大化ROI,以及通過Scrum實現他們的目標。
  * 通過激發創造性與推動授權來提升開發團隊的成員
  * 以任何可能的方式提升開發團隊的開發效率
  * 改進工程實踐和工具,使得每次功能性上的改進都能得以交付
  Scrum Team * 具有不同特長的團隊成員,人數控制在7個左右
  * 確定Sprint目標和具體說明的工作成果
  * 在項目嚮導範圍內有權利做任何事情已確保達到Sprint的目標
  * 高度的自我管理能力
  * 向Product Owner演示產品功能
  Product Owner
  Set Vision Define a high level vision of the goal of the product and how it will be met.
  Define Product Roadmap Articulate the big blocks of Features and Customer Value that will be delivered to achieve the product vision.
  Define Requirements Generate a description of the features and stories that will be fulfilled to execute on the product roadmap.
  Maintain Backlog Order the features and stories. Elaborate on enough stories to meet the near term needs of the team.
  Achieve Customer Acceptance Get the customer to look at the product and provide feedback. Sometimes this feedback is acceptance and sometimes it is more input for the backlog.
  Engage Stakeholders Keep everyone involved in the product fulfilling their obligation to the team and informed about expectations and status.
  Planning Decide on a delivery date. Keep track of the burn down charts. Provide information to management for decisions.
  Coordinate External Resources Get anything the team needs from outside.
  Financial Management Produce any financial reporting that is needed to responsibly manage the product.
  Manage Suppliers Make sure any third party suppliers are clear on their goals and are providing what is needed by the team.
  Scrum Master
  Ensure Process Adherence Facilitate agreement on how work will be performed. Then make sure the team does what it agreed.
  Identify & Remove Impediments Identify any impediments to the team’s productivity and remove them.
  Ensure Internal Communication Make sure the team is having the right conversations to ensure productivity
  Maintain Work Environment Keep the team free from external interruptions. Protect the teams from disruptions in work. Address Conflicts. Make sure the team doesn’t work excessive overtime.
  Develop Team Make sure the right people are on the team. Promote cross training and skill development among team members.
  Team
  Coordinate Work Work together to coordinate who will do what work. Swarm on work to ensure everything is completed according to the teams agreed up cadence.
  Maintain Architecture Agree on how the product will be structured.
  Understand Requirements This is where the requirements/stories are explained to the team. The Team has responsibility to understand what the customer is asking for.
  Maintain Code Quality Through patterns , code standards, continuous integration, effective branching, and configuration management.
  Design and Engineer Solution Actually deciding how to write the code and writing the code. This includes unit tests/automated testing.
  Production and Support Moving the code into production.
  Everybody
  Learn from Outside Sources Understand how other people are solving the problems you face. Learn from multiple bodies of knowledge. Bring in knowledge from the outside to apply to your team.
  Commit to Agility I don’t know if this is a capability. There is some action that results in intentionally deciding to be agile. As the multiple decisions are made in the course of performing the effort, your team might need to remember to recommit to Agile.
  Manage Risks Agile in and of itself is an approach to risk management. Through small bets, constant feedback, early learning, and shared insight the team stays focused on threats to the delivery of value. There are numerous other risks and it is important to everyone to scan the environment and help manage the risks.
  Train for Job This is similar to Learn from Outside Sources but it involves developing personal mastery of different skills required by the
  team.
  雞 並不是實際Scrum過程的一部分,但是必須考慮他們。 敏捷方法的一個重要方面是使用戶和利益相關者參與到過程中的實踐。參與每一個評審和計劃,並提供反饋對於這些人來說是非常重要的,管理者就屬於雞 。
  在知道Scrum的主要角色後,我們看看下圖中的過程圖:它由Product backlog開始,經過sprint會議從Prdouct backlog挑選出一些優先級最高的故事(story)形成迭代的sprint backlog(一個sprint一般爲1個月)。在sprint中會進行每日站會,迭代結束時會進行演示和回顧會議。
  
  第一次聽到以上術語的可能不能很好的理解backlog和spring之類的東西,大家不用着急,以後會慢慢對每一個過程進行仔細講解。
  以下將對一些術語進行簡單介紹,以便大家現在開始逐步瞭解Scrum。 Product Backlog 在項目開始的時候, Product Owner 要準備一個根據商業價值排好序的客戶需求列表。這個列表就是 Prodct Backlog ,一個最終會交付給客戶的產品特性列表,它們根據商業價值來排列優先級。 Scrum team 會根據這個來 做工作量的估計。 Product backlog 應該涵蓋所有用來構建滿足客戶需要的產品特性,包括技術上的 需求。高優先級的一些產品特性需要足夠的細化以便於我們做工作量估計和做測試。 對於那些以後將要實現 的特性可以不夠詳細。
  在下一篇我將着重講解如何制定Product Backlog,怎麼寫故事,如何拆分和合並故事,以及如何確定優先級和進行估算。 Sprint Backlog Sprint Backlog 是Sprint規劃會上產出的一個工作成果. Sprint英文指短距離疾跑,就是說集合精力在短時間內(一個迭代)完成一些價值。 當Scrum team選擇並承諾了Product backlog中要遞交的一些高優先級的產品功能點後,這些功能點就會被細化成爲Sprint Backlog:一個完成Product Backlog功能點的必需的任務列表.這些點會被細化爲更小的任務,工作量小於2天。Sprint backlog完成後,Scrum team會根據它重新估計工作量,如果這些工作量和原始估計的工作量有較大差異,Scrum team和Product Owner 協商,調整合理得工作量到Sprint中,以確保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個小時。 一旦計劃階段結束,30天週期的Sprint就開始了。ScrumMaster需要組織團隊成員每天開站會. 這個會議是用15分鐘的時間來讓大家過一下scrum的狀態。在會上,每個團隊成員需要問3個問題:我昨天做了什麼,今天做什麼,遇到哪些障礙。誰都可以 參加這個會議,但只有Scrum團隊成員有發言權。這個會議的目標是得到一個項目的全局觀,用於發現任何新的依賴,定位項目成員的要求,實時的調整當天開 發計劃. 在Sprint結束的時候召開Sprint評審會.這個會議最多不超過4個小時.會議的前一半時間用來演示在這個Sprint中開發的產品功能給 Product Owner. Produc Owner會組織這階段的會議並且邀請相關的利益相關者參加。業務,市場,技術都要做相關的評審。由Product Owner來決定Product Backlog中的哪些功能已經開發完成 。會議的下半部分,是由Scrum Master和Scrum Team一起回顧當前的Sprint。團隊評估大家在一起的工作方式,找出好的方式以後繼續發揚,找出需要做的更好的地方,想辦法提升。Sprint評審 會結束後,新一輪的迭代又繼續開始(中間最好修整半天或者隔個週末),迭代會一直繼續,直到開發了足夠多的功能去交付一個產品
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章