Scrum 是一個用於開發和維持復雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個Sprint,每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprint)。在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為用戶故事。Scrum團隊總是先開發對客戶具有較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先級的需求進行開發。挑選的需求在Sprint計划會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。在每個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟件開發項目,但它適用於任何復雜的或是創新性的項目。
Scrum流程如下圖:
Scrum框架包括3個角色、3個工件、5個活動、5個價值
3個角色
- 產品負責人(Product Owner)
- Scrum Master
- Scrum團隊
3個工件
- 產品Backlog(Product Backlog)
- SprintBacklog
- 產品增量(Increment)
5個活動
- Sprint計划會議(Sprint Planning Meeting)
- 每日站會(Daily Scrum Meeting)
- Sprint評審會議(Sprint Review Meeting)
- Sprint回顧會議(Sprint Retrospective Meeting)
- 產品Backlog梳理會議( Product Backlog Refinement)
5個價值
- 承諾 – 願意對目標做出承諾
- 專注– 把你的心思和能力都用到你承諾的工作上去
- 開放– Scrum 把項目中的一切開放給每個人看
- 尊重– 每個人都有他獨特的背景和經驗
- 勇氣– 有勇氣做出承諾,履行承諾,接受別人的尊重
SCRUM理論基礎
Scrum以經驗性過程控制理論(經驗主義)做為理論基礎的過程。經驗主義主張知識源於經驗, 以及基於已知的東西做決定。Scrum 采用迭代、增量的方法來優化可預見性並控制風險。
Scrum 的三大支柱支撐起每個經驗性過程控制的實現:透明性、檢驗和適應。Scrum的三大支柱如下:
第一:透明性(Transparency)
透明度是指,在軟件開發過程的各個環節保持高度的可見性,影響交付成果的各個方面對於參與交付的所有人、管理生產結果的人保持透明。管理生產成果的人不僅要能夠看到過程的這些方面,而且必須理解他們看到的內容。也就是說,當某個人在檢驗一個過程,並確信某一個任務已經完成時,這個完成必須等同於他們對完成的定義。
第二:檢驗(Inspection)
開發過程中的各方面必須做到足夠頻繁地檢驗,確保能夠及時發現過程中的重大偏差。在確定檢驗頻率時,需要考慮到檢驗會引起所有過程發生變化。當規定的檢驗頻率超出了過程檢驗所能容許的程度,那么就會出現問題。幸運的是,軟件開發並不會出現這種情況。另一個因素就是檢驗工作成果人員的技能水平和積極性。
第三:適應(Adaptation)
如果檢驗人員檢驗的時候發現過程中的一個或多個方面不滿足驗收標准,並且最終產品是不合格的,那么便需要對過程或是材料進行調整。調整工作必須盡快實施,以減少進一步的偏差。
Scrum中通過三個活動進行檢驗和適應:每日例會檢驗Sprint目標的進展,做出調整,從而優化次日的工作價值;Sprint評審和計划會議檢驗發布目標的進展,做出調整,從而優化下一個Sprint的工作價值;Sprint回顧會議是用來回顧已經完成的Sprint,並且確定做出什么樣的改善可以使接下來的Sprint更加高效、更加令人滿意,並且工作更快樂。