雞和豬的故事
一天,一頭豬和一只雞在路上散步。
雞對豬說:“嗨,我們合伙開一家餐館怎么樣?”
豬回頭看了一下雞說:“好主意,那你準備給餐館起什么名字呢?”
雞想了想說:“叫‘火腿和雞蛋’怎么樣?”
豬說:“那可不行,我把自己全搭進去了,而你只是參與而已。”
什么是Scrum?
Scrum 是一個輕量的框架,它通過提供針對復雜問題的自適應解決方案來幫助人們、團隊和組織創造價值。
Scrum 基于經驗主義和精益思維。經驗主義主張知識源自實際經驗以及根據當前觀察到的事物作出的判斷所獲得。精益思維減少浪費,專注于根本。
Scrum 采納一種迭代和增量的方法來優化對未來的預測性并控制風險。
Scrum 讓一群共同擁有所有技能和專長的人員參與進來完成工作,并根據需要分享或獲得所需技能。
Scrum 是敏捷方法之一,專注與在最短時間內交付最大價值。
基于經驗主義的 Scrum 的三個支柱:透明、檢測和適應。
- 透明 Transparency
透明是指,在軟件開發過程的各個環節保持高度的可見性,影響交付成果的各個方面對于參與交付的所有人、管理生產結果的人保持透明。管理生產成果的人不僅要能夠看到過程的這些方面,而且必須理解他們看到的內容。也就是說,當某個人在檢驗一個過程,并確信某一個任務已經完成時,這個完成必須等同于他們對完成的定義。
- 檢測 Inspection
開發過程中的各方面必須做到足夠頻繁地檢驗,確保能夠及時發現過程中的重大偏差。在確定檢驗頻率時,需要考慮到檢驗會引起所有過程發生變化。當規定的檢驗頻率超出了過程檢驗所能容許的程度,那么就會出現問題。幸運的是,軟件開發并不會出現這種情況。另一個因素就是檢驗工作成果人員的技能水平和積極性。
- 調整 Adaptation
如果檢驗人員檢驗的時候發現過程中的一個或多個方面不滿足驗收標準,并且最終產品是不合格的,那么便需要對過程或是材料進行調整。調整工作必須盡快實施,以減少進一步的偏差。
Scrum Team
Scrum 的基本單位是小團隊,稱為 Scrum Team。
Scrum Team 由一名 Scrum Master,一名 Product Owner 和 Developers 組成。
團隊特點
1、小團隊:5 - 9 人
Scrum Team 規模足夠小以保持靈活,同時足夠大以便可以在 一個 Sprint 中完成重要的工作,通常只有 10 人或更少。總的來說,我們發現較小的團隊溝通更好,效率更高。如果 Scrum Team 變得太大,則應考慮將他們重組為多個具有凝聚力的 Scrum Team,每個團隊都專注于同一產品。因此,他們應該共享相同的 Product Goal、Product Backlog 和 Product Owner。
2、跨職能
團隊包含交付產品增量所有需要的技能
T 型跨界人才
團隊責任制
沒有 “子團隊(sub-team)” - Scrum 跨職能團隊和 PMP 矩陣型團隊的核心區別
3、自管理
沒有管理頭銜,組員皆平等
承諾驅動而不是工作量驅動
團隊負責大部分的項目管理工作
全職(100%服務于一個團隊)并且在一起
團隊的使命
承諾:根據實際產能(Velocity)向 Product Owner 承諾每輪沖刺的工作
交付:按照承諾交付產品增量
保質:確保產品增量符合完⼯標準(DoD)
管理:管理 Sprint Backlog,并且通過定時監測、調整進行自我管理
改進:每輪沖刺持續的自我改進
3-3-5-5
Scrum團隊的三個角色
Developers
Developers 是 Scrum Team 中致力于創建每個 Sprint 可用產品增量(Increment)的任何方面的人員。
Developers 所需的特定技能通常很廣泛,并且會隨著工作領域的不同而變化。但是, Developers 始終要負責:
為 Sprint 創建計劃,即 Sprint Backlog
通過遵循 Definition of Done 來注入質量
每天根據 Sprint Goal 調整計劃
作為專業人士對彼此負責
Product Owner
特點
一個人
有授權
驅動產品成功
Scrum團隊和業務方之間的橋梁
使命
創建產品愿景
定義產品特性
根據市場價值排優先級
負責投資回報率 (ROI,Return of Investment)
根據市場反饋調整功能/優先級
接受/拒絕團隊交付結果
確保沖刺的輸入處于就緒狀態
Scrum Master
代表團隊面對管理層
代表管理層面對團隊
非管理崗位 - 以德服人
授權的 “牧羊犬”
可以做隊員,更愿意做教練
改革先鋒
優秀的傾聽者
精神領袖而不是意見領袖
Scrum團隊的三個資產
Product Backlog
一個 動態 的清單,列出所有產品 可能 的功能,以及其他對用戶有價值的工作。
高質量 Product Backlog 的 DEEP 原則:
Detailed appropriately / 恰當的詳細程度
Estimated / 已經經過估算的
Emergent /浮現式
Prioritized / 帶有優先級排序
開放給所有人,但是最終決定者是 PO ,專注于 WHAT 而不是 HOW。
Product Goal:
1
2
3
4
5Product Goal 描述了產品的未來狀態,可以作為 Scrum Team 制定計劃的目標。
Product Goal 在Product Backlog 中,Product Backlog 的其余部分涌現,用來定義“做什么”將實現 Product Goal。
Product Goal 是 Scrum Team 的長期目標。他們必須先實現(或放棄)一個目標,然后再開始下一個目標。Sprint Backlog
團隊承諾 - 沖刺結束時要交付的 PSPI (WHAT)
以及為了交付 PSPI 必需的支持性工作 (HOW)
不分派工作 - 團隊認領
顆粒度更小
Sprint Goal:
1
2
3Sprint Goal 是 Sprint 的單個目標。盡管 Sprint Goal 是 Developers 的承諾,但它為實現該目標所需的確切工作方面提供了靈活性。 Sprint Goal 還創造了連貫性和專注點,鼓勵 Scrum Team 一起工作而不是分開獨自行動。
Sprint Goal 在 Sprint Planning 事件中確定,然后添加到 Sprint Backlog 中。當 Developers 在 Sprint 期間工作時,他們將 Sprint Goal銘記在心。如果需要做的工作與預期的不同,他們將與 Product Owner 協作,在不影響 Sprint Goal 的情況下,協商本次 Sprint Backlog 的范圍。
Increment
產品增量 - Product Increment Potentially Shippable Increment(PSPI):沖刺中所完成的所有的PBI的總和,在沖刺結束時作為產品增量交付。
增量是穩定的、可工作的產品組成部分。沖刺中沒有完成的部分不納入增量。
Definition of Done:
1
Definition of Done 是當 Increment 符合產品所需的質量度量標準時對其狀態的正式描述。
Scrum團隊的五個事件
Sprint
一個沖刺內完成所有工作
1 周到 4 周的時間盒,越短越好
前一輪沖刺結束的下一個工作日起,新一輪沖刺開始
每一輪沖刺應有一個目標
Daily Scrum
每天,15分鐘,站著,固定地點,固定時間,面對面
三個作用:
1
2
3
4
51. 個人狀態廣播,并在團隊前做個人承諾
2. 向團隊通報交付障礙
3. 團隊每天一次管理承諾的檢查點三(加一)個問題:
1
2
3
4
5
6
71. 昨天或今天我搞定了啥?
2. 今天或明天我要搞定啥?
3. 有什么障礙沒?
4. 我們還活著嗎?我們計劃有問題嗎?三個原則:
1
2
3
4
51. 只通報問題,不解決問題
2. 雞外豬內
3. 只有豬可以開口
- Sprint Review Meeting
團隊向 PO 展示沖刺內完成的 PSPI 成品
不演示 PPT
業務方可以旁聽
Sprint Retrospective Meeting
正能量 - 關注與持續改進
全組參與 ( Development team、Product Owner和ScrumMaster)
三個問題的格式:
1
2
3
4
5什么是團隊應該 開始 做的?
什么是團隊應該 停止 做的?
什么是團隊應該 繼續保持 做的?
Product Backlog Refinement(精化)
Scrum中最特殊的一個活動。
敏捷開發模式下,會持續地去做Product Backlog Refinement,在每個迭代中都會去做。
對于一周的迭代,差不多需要投入2個小時的時間進行需求梳理,梳理的目標不是下個迭代的需求,而是將要做的最重要的需求。
梳理的目標,就是為了讓我們的產品代辦列表更加合DEEP原則。
唯一 發生在沖刺前
唯一 由 PO 驅動
唯一 不進會議室
The PAPER exercises:
1
2
3
4
5
6
7
8
9
10
11
12
13
14Product feature consolidation (add/remove/change/slice)
P 產品需求精化(增/刪/改/分解)
ATDD (CCC)
A 用戶故事+腦暴+AC
Prioritization
P 優先級調整
Estimation
E 估算
Release Planning
R 版本規劃講講方式:
不是會議
非正式
每天做一點
PO和DT一起
Scrum團隊的五個價值觀
勇氣 Courage :面對難題團隊成員都有勇氣做正確的事情和工作
專注 Focus : 團隊成員要專注于沖刺要完成的工作以及團隊目標
承諾 Commitment : 團隊成員對完成Sprint目標做出承諾
尊重 Respect :團隊成員之間都尊重對方是有能力的、獨立的人
開放 Openness :Scrum團隊以及利益相關者對所有的工作以及完成工作所面臨的挑戰的開放性一致認同
Sprint燃盡圖(Sprint Burn-down Chart)
Sprint Burndown Chart 顯示了Sprint中累積剩余的工作量,它是一個反映工作量完成狀況的趨勢圖。 其中Y軸代表的是剩余工作量,X軸代表的是Sprint的工作日。
在Sprint開始的時候,Scrum Team會標示和估計在這個Sprint需要完成的詳細的任務。所有這個Sprint中需要完成,但沒有完成的任務的工作量是累積工作量,團隊會根據進展情況每天更新累積工作量,如果在Sprint結束時,累積工作量降低到0,Sprint就成功結束。
由于在Sprint的剛開始的時候,增加的任務工作量可能大于完成的任務工作量,所以燃盡圖有可能略微呈上升趨勢。
發布燃盡圖(Release Burn-down Chart)
在Scrum項目中,團隊通過每個Sprint結束時更新的發布燃盡圖來跟蹤整個發布計劃的進展。發布燃盡圖記錄了在一段時間內產品Backlog的總剩余估算工作量的變化趨勢。X軸代表的項目周期,以Sprint為單位, Y軸代表的是剩余工作量,通常以用戶故事點、理想人天或者team-days為單位。
Scrum Framework
Scrum guide
網址:
https://www.scrumalliance.org/
https://resources.scrumalliance.org/Article/2020-scrum-guide-related-content
Scrum術語
Scrum: Scrum
Agile: 敏捷
Lean: 精益
Iterative:迭代式的
Iteration:迭代
Agile Manifesto: 敏捷宣言
Empirical: 經驗性的
Empirical Process:經驗性過程
Transparency: 透明性
Inspect and Adapt: 檢測與調整
Sprint:原意為沖刺,Scrum中的Sprint無對應中文翻譯,指一個迭代
Sprint Goal:Sprint目標
Product Owner :產品負責人,簡稱PO
Scrum Master :簡稱SM
Development Team : Scrum開發團隊
Scrum Team:指PO,SM和開發團隊
Scrum Roles:Scrum角色,指PO、SM和開發團隊
Emergent :涌現的
Product Backlog:產品待辦列表,指需求清單
Sprint Backlog:Sprint待辦列表,指Sprint任務清單
Sprint Burn-down Chart:Sprint燃盡圖,團隊用于做Sprint內的進展跟蹤
Release Burn-down Chart: 發布燃盡圖,產品負責人做發布進展跟蹤
Sprint Planning Meeting: Sprint計劃會議
Daily Scrum Meeting:每日站會
Sprint Review Meeting:Sprint評審會議
Sprint Retrospective Meeting: Sprint回顧會議
Product Backlog Refinement: 產品待辦列表梳理
Product Backlog Item: 產品待辦清單條目,簡稱PBI
User Story: 用戶故事,指一條需求
Story Point:衡量用戶故事的工作量大小的計量單位
Velocity: 團隊速度
Sprint Task: 實現一條需求需要做的一個技術任務
Definition of Done: DoD,完成的定義
Stakeholders: 干系人
Backlog: 待辦列表
Artifact :工件
Estimation :估算
Collaboration: 協作
Scaling Scrum:大規模Scrum
Potentially Shippable Product Increment:潛在可交付產品增量