1. 程式人生 > >什麼是敏捷開發之Scrum框架,如何入門?

什麼是敏捷開發之Scrum框架,如何入門?

摘自PM圈子網——專案管理牛人聚集地

Scrum是一個敏捷開發框架,是一個增量的、迭代的開發過程。在這個框架中,整個開發週期包括若干個小的跌代週期,每個小的的跌代週期稱為一個Sprint,每個Sprint的建議長度2到4周。

1 Scrum框架的概念

Scrum是一個敏捷開發框架,是一個增量的、迭代的開發過程.。在這個框架中,整個開發週期包括若干個小的跌代週期,每個小的的跌代週期稱為一個Sprint,每個Sprint的建議長度2到4周。

在Scrum中,使用Product Backlog來管理產品或專案的需求,product backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為User Story。

Scrum的開發團隊總是先開發的是對客戶具有較高價值的需求。在每個Sprint中,Scrum開發團隊從product Backlog中挑選最有價值的需求進行開發。Sprint中挑選的需求經過Sprint Plan Meeting上的分析、討論和估算得到一個Sprint的task列表,我們稱它為Sprint backlog 。 在每個迭代結束時,Scrum團隊將交付潛在可交付的產品增量。下圖是Scrum的工作流程圖。

2 Scrum框架的優勢

1 專注於如何在最短的時間內實現最有價值的部分2 每隔一兩週或者一個月,我們就可以看到實實在在的可以上線的產品3 團隊按照商業價值的高低先完成高優先順序的產品功能,並自主管理,凝結了團隊智慧創造出最好的方法因而提高效率4 能夠在開發程序中不斷檢查,並作出相應調整,便於快速發現問題,促使團隊和組織

3 Scrum框架概覽

4 Scrum 框架

3 Roles:產品經理(Product Owner)專案經理(Scrum Master)團隊成員(Team)

4 Meetings:衝刺規劃會議(Sprint Plan Meeting)每日站立會議(Scrum Standup Meeting)衝刺評審會議(Sprint Review Meeting)衝刺回顧會議(Sprint Retrospective Meeting)

4工作成果:產品積壓訂單(Product Backlog)衝刺積壓訂單: (Sprint Backlog)燃盡圖: (BurndownChart)障礙積壓訂單:(ImpedmetntsList)

5 Scrum 角色及職責5.1 Product Owner職責

• 確定產品的功能。• 決定釋出的日期和釋出內容。• 為產品的profitability of the product (ROI)負責。• 根據市場價值確定功能優先順序。• 每個Sprint,根據需要調整功能和優先順序(每個Sprint開始前調整)。• 接受或拒絕接受開發團隊的工作成果。• Product Owner參與Scrum planning。

5.2 Scrum Master職責

• 作為Team Leader和Product owner緊密地工作在一起,他可以及時地為團隊成員提供幫助。• 保證團隊資源完全可被利用並且全部是高產出的。• 保證各個角色及職責的良好協作。• 解決團隊開發中的障礙。• 做為團隊和外部的介面,遮蔽外界對團隊成員的干擾。• 保證開發過程按計劃進行,組織 Stand-up, Sprint Review and Sprint Planning meetings。

5.3 Team職責

• 一般情況人數在5-9個左右• 團隊要跨職能(包括開發人員、測試人員、使用者介面設計師等)• 團隊成員需要全職。(有些情況例外,比如資料庫管理員)• 在專案嚮導範圍內有權利做任何事情已確保達到Sprint的目標。• 高度的自我組織能力。• 向Product Owner演示產品功能。• 團隊成員構成在sprint內不允許變化。

6 Scrum 活動

Scrum是由一個一個Sprint組成的。每個Sprint有以下活動組成:

1 召開Sprint Plan Meeting,確定這個Sprint的目標、演示日期、要完成的Backlog、Backlog的優先順序等;2 進入衝刺開發週期,在這個週期內,每天要召開Daily Stand-up Meeting;3 整個衝刺週期結束,召開Sprint Review Meeting,將成果演示給Product Owner;4 團隊成員最後召開Sprint Retrospective Meeting,總結問題和經驗.

6.1 Sprint Plan Meeting

會議時間:4-8小時會議目標:Product Owner和Team一起對這個Product Backlog進行評估,制定發行版本和衝刺(Sprint)計劃的主要依據。會議流程:1 確定Sprint目標2 Product Owner介紹其需要評估的Product Backlog中的內容,Team進行評估Product Backlog。3 確定Sprint Backlog:由PO和Team討論決定,每個Product Backlog都要有開發團隊給出的時間及責任人(具體包括:編碼,測試,程式碼評審,會議,新技術應用,文件等要素)4 確定如何演示的產品,以及獲得共識的“完成”標準。5 確定日程安排:起止時間、演示日期、Daily Stand-up Meeting時間地點會議結果:會議結束,向所有成員傳送Sprint Plan Meeting minutes

6.2 Daily Stand-up Meeting

會議時間:15分鐘會議目標:每日例會有助於團隊進行自我組織。這是專案團隊成員間的一個進度協調會議。會議流程:1 團隊中開發成員向團隊每個成員彙報三個問題:昨天做了什麼?今天要做什麼?當前碰到的障礙是?2 專案經理會議後的,把該障礙加入到障礙Backlog中,更新維護Sprint Backlog,新增新的未計劃的Backlog,更新工作進度圖會議結果:最新的障礙Backlog最新的Sprint Backlog最新的工作進度圖

6.3 Sprint Review Meeting

會議時間:4小時會議目標:開發團隊按照Sprint Plan Meeting確定的演示日期,向產品經理和其他成員演示Sprint的成果會議流程:1 團隊成員按每個Sprint要完成的Backlog,給Product Owner和其它成員介紹這次Sprint的工作成果2 Product Owner評估核實是否與最終產品目標一致會議結果:對當前Sprint的結果和整個產品的開發狀態達成共識說明:如果產品經理想要改變功能新增一個新問題到產品Backlog中如果對功能有一個新的想法,新增一個問題到產品Backlog中如果小組報告專案遇到阻礙還沒能解決,把問題加入障礙Backlog中

6.4 Sprint Retrospective Meeting

會議目標:在Sprint Retrospective Meeting,專案團隊會分析Sprint的成功經驗和所遇到的障礙會議時間:1-3小時會議流程:1 在白板畫一個時間軸,標記出Sprint的開始和結束時間,回憶衝刺執行情況,比較預估的和實際的燃盡圖執行的情況對比2 團隊中每個成員需回答:1我們的成功經驗是什麼?2有什麼能夠改進的?3哪些方面需要在下個衝刺中改進?3 Product Owner最後根據討論明確改進之處及責任人,更新團隊的衝刺資料,加入到團隊總結中,為後續專案實施提供經驗教訓會議結果:1 會議紀要含相關改進及負責人名單

7 Scrum 物件7.1 Product Backlog

• 一個需求的列表。• 一般情況使用User Story來表示Backlog條目• 理想情況每個需求項都對產品的客戶或使用者有價值• Backlog條目按照商業價值排列優先順序• 優先順序由產品負責人來排列• 在每個Sprint結束的時候要更新優先順序的排列

一個產品Backlog的例子

User Story

Story Points

作為一個部落格作者,我想設定我釋出文章的背景圖片,以便於我的讀者閱讀的時候感受到文章的意境。

8

作為一個部落格作者,我想讓我的讀者對我的文章進行評價,以便於收集讀者反饋,日後改進。

10

作為一個部落格作者,我想通過部落格釋出我的照片,以便於我的讀者們認識我。

20

……

50

……

30

7.2 Sprint backlog

Sprint backlog定義了Sprint的目標,明確了Sprint過程中具體需要完成的任務

管理Sprint的backlog:• 團隊成員自己挑選任務,而不是指派任務• 對每一個任務,每天要更新剩餘的工作量估算• 每個團隊成員都可以修改Sprint backlog,增加、刪除或者修改任務

7.3 Burn Down Chart

燃盡圖直觀的反映了Sprint過程中,剩餘的工作量情況,Y軸表示剩餘的工作,X軸表示Sprint的時間。隨著時間的消耗工作量逐漸減少,在開始的時候,由於估算上的誤差或者遺漏工作量有可能呈上升態勢。