You are on page 1of 43

SCRUM 簡介

< 您的姓名 >


< 日期 >

Mountain Goat Software,


LLC
Scrum 簡介

Presented by
< 您的姓名 >
< 日期 >

Mountain Goat Software,


LLC
我們將輸掉這場‘接力賽’

‘ 接力賽’式的產品開發…… 此模式在一定程
度上違背了我們最大化速度及彈性的目標。
相反的,另一種全面式,或如同橄欖球隊的
團隊合作方式—整個團隊通過無間合作,靈
活機動的處理接球,傳球,並像一個整體迅
速突破防線—可能更加適應於今天更具挑戰
的市場需求。
Hirotaka Takeuchi and Ikujiro Nonaka,
“The New New Product Development
Game”, Harvard Business Review,
January 1986.

Mountain Goat Software,


LLC
什麼是 Scrum ?

•SCRUM 流程能使我們專注於在最短時間內交付
最有商業價值的部分。
•SCRUM 能使我們快速並重覆的檢查產品實際發
展狀況。(每兩週或一個月)
•基於商業價值以決定功能的優先順序。團隊能自
我組織,並找出完成高優先功能的最佳方案。
•每隔一兩周或者一個月,每個人都可以看到實際
並可以運做的產品。此時團隊可以決定接下來要
直接發佈,或繼續下一輪的功能加強。

Mountain Goat Software,


LLC
Scrum 的起源
• Jeff Sutherland
• 1993 年在 Easel Corp 起始 Scrum
• 在 IDX 公司與超過 500 人使用 Scrum
• Ken Schwaber
• ADM 公司
• 在 OOPSLA 96 與 Sutherland 一起提出 Scrum
• 有三本 Scrum 的著作
• Mike Beedle
• 在 PLOPD4 提出 Scrum Pattern
• Ken Schwaber and Mike Cohn
• 在 2002 共同創立 Scrum Alliance ( 原本在 Agile
Alliance 中 )

Mountain Goat Software,


LLC
Scrum 被知名企業廣泛採用 :

•Microsoft •Intuit
•Yahoo •Nielsen Media
•Google •First American Real Estate
•Electronic Arts •BMC Software
•Lockheed Martin •Ipswitch
•Philips •John Deere
•Siemens •Lexis Nexis
•Nokia •Sabre
•IBM •Salesforce.com
•Capital One •Time Warner
•BBC •Turner Broadcasting
•Oce
Mountain Goat Software,
LLC
Scrum 被運用的領域 :

• 商業軟體 •遊戲軟體
• 內部軟體開發 •FDA 監理軟體
• 外包軟體開發 •衛星控制軟體
• 固定投資軟體開發 •網站
• 財務應用軟體 •掌上型電腦軟體
• ISO 9001 認證應用軟體 •手機
• 嵌入式系統 •網路交換路由設備
• 零當機系統軟體 •獨立軟體開發商
• 聯合攻擊戰鬥機 •一些正在使用中的大型軟體

Mountain Goat Software,


LLC
特色

• 自我管理的團隊
• 以一系列、以月為長度的“ sprint” 做為產品開發進度
• 以一系列的“ Product backlog” 做為產品需求記錄
• 沒有特定的工程實做規定
• 在以生成規則創造的敏捷開發環境交付產品
• 是“敏捷方法 (agile processes)” 的一種

Mountain Goat Software,


LLC
敏捷開發的價值觀

個人與互動 重於 流程與工具

可用的軟體 重於 完善的文檔

與客戶合作 重於 合約的談判

對變化的回應 重於 執行固定的計畫

資源來自 : www.agilemanifesto.org
Mountain Goat Software,
LLC
專案複雜度

非常不一致

混亂的
複雜度

需求 較

雜 Source: Strategic Management and
的 Organizational Dynamics by Ralph
Stacey in Agile Software Development
with Scrum by Ken Schwaber and Mike
接近一致 簡單的 Beedle.

技術難度 遠遠超出
接近團
隊能力 團隊能力
Mountain Goat Software,
LLC
Scrum
24 小時

Sprint
2-4 週
Sprint 目標
功能 1
Sprint
可以發佈的
功能 21 backlog
產品增量
功能4 2
功能
功能3 3
功能 功能 4
Product
backlog

Mountain Goat Software,


LLC
Scrum 開發的全貌

圖片源於
www.mountaingoatsoftware.com/scrum
Mountain Goat Software,
LLC
Sprints

• Scrum 專案以一系列的“ sprints” 做為開發進度


• 類似於極限開發 (Extreme Programming) 的迭代週期
(Iterations)

• 典型的迭代週期為 2-4 週,或以一個月為上限


• 固定週期創造出更佳的專案節奏
• 產品的設計,開發,測試全部都在一個 sprint 完成

Mountain Goat Software,


LLC
順序 vs. 重疊開發

需求 設計 實做 測試

Scrum 團隊不在一段
時間集中完成單一工
作 ... 而是隨時都在做所有
工作的每一部分

資源來自 : “The New New Product Development Game” by


Takeuchi and Nonaka. Harvard Business Review, January
Mountain
1986. Goat Software,
LLC
確保一個 Sprint 的穩定

變化

• 請基於您能夠保障需求變化不影響到產品開發的
時間長短,來設定一個 Sprint 的長度

Mountain Goat Software,


LLC
Scrum 框架
角色
•產品所有者
•ScrumMaster
•團隊 儀式
•Sprint 計畫
•Sprint 驗收
•Sprint 回顧
•每日 scrum 會議
產出
•Product backlog
•Sprint backlog
•Sprint 耗散圖
Mountain Goat Software,
LLC
Scrum 框架
角色
•產品擁有者
•ScrumMaster
•團隊
儀式
•Sprint 計畫
•Sprint 驗收
•Sprint 回顧
•每日 scrum 會議
產出
•Product backlog
•Sprint backlog
•Sprint 耗散圖
Mountain Goat Software,
LLC
產品擁有者

• 訂定產品功能
• 決定產品發佈的內容及日期
• 對產品的利潤負責 (ROI)
• 根據市場價值決定產品功能優先順序
• 如有需要,調整每個迭代 (Iteration) 的產品功能和
優先順序
• 接受或者拒絕工作的產出

Mountain Goat Software,


LLC
ScrumMaster

• 專案的直接管理
• 領導團隊實現 Scrum 的實踐及價值
• 排除團隊遇到的困難
• 確保團隊能勝任工作並保持高生產率
• 促使團隊中所有的角色及其功能緊密合作
• 保護團隊不受外來打擾

Mountain Goat Software,


LLC
團隊

• 一般的團隊有 5-9 人
• 跨功能團隊
• 程式、測試、用戶經驗設計等
• 全職團隊成員
• 特殊職能可以例外 ( 例如 , 資料庫管理員 )
• 團隊自我組織和管理
• 理想上都沒有職稱,但實際上很難做到
• 在 Sprint 之間調整團隊成員的變動
Mountain Goat Software,
LLC
Scrum 框架
角色
•產品擁有者
•ScrumMaster
•團隊 儀式
•Sprint 計畫
•Sprint 驗收
•Sprint 回顧
•每日 scrum 會議
產出
•Product backlog
•Sprint backlog
•Sprint 耗散圖
Mountain Goat Software,
LLC
Sprint 計畫會議
團隊能力
Sprint 優先順序
Product • 分析和評估 Product Backlog Sprint
backlog • 選擇一些作為 Sprint 目標 目標

商業現況 Sprint 計畫
• 決定如何實現 Sprint 目標
• 從 Product backlog 中選擇一 Sprint
現有產品 些建立為 Sprint backlog ( 任
務) backlog
• 以小時為單位評估 Sprint 任務
技術 工作量

Mountain Goat Software,


LLC
Sprint 計畫
• 團隊從 Product backlog 中選擇一些能夠完成的任務作為 Sprint
backlog
• 建立 Sprint backlog
• 確認任務被並估計任務工作量,時間應該在 1-16 小時左右
• Sprint backlog 是團隊合作的結果,而不是由 ScrumMaster 自己決定
• 概要設計已被考慮

為了選擇假期的好
為了選擇假期的好 實做後臺和中間層 (8 小時 )
去處,我需要先看
去處,我需要先看 實做介面 (4)
撰寫測試案例 (4)
到飯店的照片 ..
到飯店的照片 實做 foo 類別 (6)
更新效能測試案例 (4)

Mountain Goat Software,


LLC
每日 Scrum 會議

• 特性
• 每天都開
• 15 分鐘結束
• 站著開會
• 不是為了解決問題
• 所有相關的人被邀請
• 只有團隊成員, ScrumMaster ,產品所有者能夠在會
上發言

• 可以避免其他不必要的會議
Mountain Goat Software,
LLC
團隊成員需要回答 3 個問題

1
昨天你做了什麼 ?

2
今天你將要做什麼 ?

3
有什麼困難需要幫助嗎 ?
• 這不是對 ScrumMaster 的進度報告
• 這是團隊成員彼此的承諾
Mountain Goat Software,
LLC
Sprint 復習 (Review)

• 團隊提出在 Sprint 中所完成工作


• 一般的做法是直接 demo 新功能或者底層架構的
實做
• 非正式
• 最多 2 小時的準備
• 不需要投影片
• 整個團隊都需要參加
• 邀請所有關注產品的人參加

Mountain Goat Software,


LLC
Sprint 回顧 (retrospective)

• 週期性的回顧,總結工作中的經驗和教訓
• 一般長度為 15 至 30 分鐘
• 在每個 Sprint 結束時開始做
• 整個團隊都需要參加
• ScrumMaster
• 產品所有者
• 團隊
• 可能還包括客戶

Mountain Goat Software,


LLC
啟動 / 停止 / 繼續

• 整個團隊集結一起討論以下方案 :

開始做…

停止做…
僅僅是諸多
Sprint 回顧的一 繼續做…
種方式

Mountain Goat Software,


LLC
Scrum 框架
角色
•產品擁有者
•ScrumMaster
•團隊
儀式
•Sprint 計畫
•Sprint 驗收
•Sprint 回顧
•每日 scrum 會議
產出
•Product backlog
•Sprint backlog
•Sprint 耗散圖
Mountain Goat Software,
LLC
Product backlog

•產品需求
•專案中需要完成的工作列表
•理想上,每一個工作項目都用
「對客戶和用戶產生的價值」來
呈現
•由產品所有者進行優先順序排序
•每個 Sprint 開始前還要再進行優
先順序排序的修正

Product
backlog
Mountain Goat Software,
LLC
Product backlog 的例子
Backlog 列表 估計量
顧客可以預定飯店 3
顧客可以取消預定 . 5
顧客可以更改預定日期 . 3

飯店工作人員可以產生 RevPAR (revenue-per- 8


available-room) 報告
例外處理 8
... 30
... 50
Mountain Goat Software,
LLC
Sprint 目標

• 簡短陳述這個 Sprint 將要完成什麼


生命科學
提供人口遺傳學研究的功能
資料庫應用軟體
除了 Oracle ,應用程式還
可以運行於 SQL Server
金融服務
基於即時及連續的資料,提
供比 ABC 公司更多的技術指

Mountain Goat Software,
LLC
管理 sprint backlog

• 團隊的成員簽收自選的工作
• 工作絕不是用分配的
• 每天更新估計剩餘的工作量
• 團隊中任何成員都可以新增,刪減或修改 Sprint
backlog
• 為了 Sprint 目標以及將發佈的結果而工作
• 如果工作的內容不清楚,先定義一個相對工作量
較大的工作頂目,之後再拆解它
• 在工作內容變的更清楚時,更新剩餘工作量
Mountain Goat Software,
LLC
Sprint backlog 的例子

工作項目 Mon Tues Wed Thur Fri


實做使用介面 8 4 8
實做中間層 16 12 10 4
測試中間層 8 16 16 11 8
撰寫線上幫助 12
實做 Foo 類別 8 8 8 8 8
新增錯誤日誌記錄 8 4

Mountain Goat Software,


LLC
Sprint 耗散圖
小時數

Mountain Goat Software,


LLC
工作項目 Mon Tues Wed Thur Fri
實做使用介面 8 4 8
實做中間層 16 12 10 7
測試中間層 8 16 16 11 8
撰寫線上幫助 12

50
40
30
小時數

20
10
0
Mon Tue Wed Thu Fri

Mountain Goat Software,


LLC
延展性

• 典型的一個團隊的人數是 7± 2 人
• 透過“團隊中的團隊”的方法擴展
• 擴展團隊時需要考慮的因素
• 產品類型
• 團隊大小
• 團隊分佈
• 專案長度
• Scrum 方法可用於總數超過 500 人的專案

Mountain Goat Software,


LLC
通過“ Scrum of scrums” 的方式擴展團隊

Mountain Goat Software,


LLC
Scrum of scrums of scrums

Mountain Goat Software,


LLC
下一步

• www.mountaingoatsoftware.com/scrum
• www.scrumalliance.org
• www.controlchaos.com
• scrumdevelopment@yahoogroups.com

Mountain Goat Software,


LLC
推薦書籍
• Agile and Iterative Development: A Manager’s Guide by Craig Larman
• Agile Estimating and Planning by Mike Cohn
• Agile Project Management with Scrum by Ken Schwaber
• Agile Retrospectives by Esther Derby and Diana Larsen
• Agile Software Development Ecosystems by Jim Highsmith
• Agile Software Development with Scrum by Ken Schwaber and
Mike Beedle
• Scrum and The Enterprise by Ken Schwaber
• User Stories Applied for Agile Software Development by Mike Cohn
• Lots of weekly articles at www.scrumalliance.org

Mountain Goat Software,


LLC
版權資訊

• 你可以免費並自由的:
• 分享 ― 複製,散佈和傳送這些成果
• 混用 ― 應用這些成果
• 在以下前提下:
• 出處 : 你必須以作者或者許可授權者規定的方式來聲明成果
的出處。 ( 但不能採用任何表明他們支援你或者你使用這些
成果的方式來聲明成果的出處。 )

• 本許可證中任何內容都不損害或者限制作者
的道德權利。
• 更多資訊提供於 http://creativecommons.org/licenses/by/3.0/

Mountain Goat Software,


LLC
作者的聯繫方式
Presentation by: Mike Cohn
mike@mountaingoatsoftware.co
m
www.mountaingoatsoftware.com
(720) 890-6110 (office)

感謝 Mike Cohn 提供以下內容 .


Thanks.

Mountain Goat Software,


LLC

You might also like