一文學會Scrum框架

Scrum 是一個簡單的經驗過程,它使團隊能夠在迭代中逐步構建產品,以跟上不斷變化的市場需求並與組織的業務目標保持一致。

“Scrum 是一個敏捷的過程,它使我們能夠專注於在最短的時間內交付最高的業務價值。”
- Mike Cohn,Mountain Goat 軟件

Scrum 提倡自組織團隊通過不斷的檢查和適應朝著共同的目標努力。每次迭代結束時的最小可行產品為團隊提供了一個選項,可以快速從最終用戶那裡獲得反饋並更快地做出響應。

Scrum 框架

Scrum 是一種簡單的輕量級敏捷項目管理方法,它使產品團隊能夠通過有效的團隊協作以迭代方式逐步構建產品。Ken Schwaber 和 Jeff Sutherland 是 Scrum 的共同創造者,並繼續為 Scrum 的發展做出重大貢獻。

Scrum 構成了許多其他框架的基礎,因此對於敏捷實踐者來說,理解這種方法很重要。

Scrum 方法論定義為:

Scrum 在軟件開發社區中越來越受歡迎。Scrum 框架已被證明可以在擁有 900 多人的大型組織的多個團隊中擴展。

Comprehensive Scrum Guide

什麼是 Scrum 角色?

Scrum 團隊由三個角色組成:產品負責人Scrum Master 和開發團隊。

What is Scrum Team? - Scrum Guide

1. 產品負責人:

Scrum 團隊中的產品負責人決定需要構建什麼。此人對市場和業務需求有完整的了解,有遠見,並擁有投資回報 (ROI) 或產品提供的價值。

與傳統交付不同,此人是交付產品的團隊的一部分。

以下是產品負責人的主要職責:

  • 創造願景
  • 代表業務,並負責投資回報率
  • 將願景傳遞給團隊
  • 擁有積壓的功能
  • 按市場價值優先考慮功能
  • 有權做出決定
  • 與團隊和企業協商,在正確的時間交付正確的產品

2. Scrum Master:

Scrum Master 不是管理職位,不能代表團隊做出決定。Scrum Master 的主要職責是確保每個團隊成員以真正的精神理解和實踐 Scrum。

Scrum Master 應該了解他或她的團隊的不同技能組合,並通過將正確的羊放在正確的羊群中來對他們進行分組。Scrum Master 應該引導團隊,這樣團隊就不會誤入歧途,而不會成為多餘的時間和精力的犧牲品。

就像牧羊人一樣,Scrum Master 必須在站立會議或計劃撲克會議時吸引安靜的人。每當團隊失去焦點或團隊成員誤入歧途時,Scrum Master 又名牧羊人應該將丟失的人帶回羊群並進行適當的引導。

Scrum Master 不應該在團隊中強制實施敏捷實踐,而應該扮演“僕人式領導”的角色。Scrum Master 應該以身作則,成為團隊資產和 Scrum 價值觀的生動展示。

他或她應該為團隊創造一個安全的環境,並指導和促進團隊協作。他或她應該通過指導團隊解決問題或做出決定來避免這樣做。

總而言之,Scrum Master:

  • 是僕人式領導者——指導和指導團隊進行 Scrum 理論和實踐,指導他們如何適應這些,從而在團隊級別和組織級別實現 Scrum 的好處。
  • 幫助消除障礙/障礙 -通過接觸合適的人來支持開發團隊消除障礙,從而確保開發過程順利進行,而不會干擾團隊。
  • 促進協作 -支持團隊內部以及團隊與產品負責人之間的交互。
  • 向團隊教授 Scrum。
  • 保護團隊 -免受外部干擾,例如當前 sprint 中故事的更改。
  • 是變革推動者 -在發展組織以儘早和經常交付,並消除浪費。

3. 開發團隊:

Scrum 中的開發團隊是擁有執行積壓項目所需的所有技能的團隊。這個團隊不是一個普通的團隊,而是致力於、敬業並有動力去表現最好。

這是一個自組織的團隊,協作、分享他們的特殊技能和知識,並完全致力於實現目標。

以下是“開發團隊”的特點:

  • 自組織 -開發團隊將是一個自我管理的團隊,他們將決定他們將逐步處理的任務。沒有“經理”來控制他們的工作。
  • 授權 -團隊應該致力於工作,確定“如何”交付並決定在一次迭代中“交付多少”。
  • 跨職能 -團隊不會將成員隔離為開發人員、測試人員或分析師,並且每個成員都具備交付產品增量所需的技能。
  • 小規模 -開發團隊最好有 5 到 9 名具有足夠技能的團隊成員來完成承諾的工作。較小的團隊將沒有足夠的帶寬來完成大量工作,而較大的團隊會增加複雜性。
  • 同地辦公——敏捷團隊通常同地辦公,以確保有效協作。
  • 承諾 -由於團隊有權對沖刺中的工作範圍做出決定,因此他們致力於交付,應該對進度保持透明,並儘早突出障礙。
  • 專注 -該團隊專注並且 100% 致力於產品交付。

與傳統方法不同,交付的承諾是由不參與執行的團隊向業務做出的,在敏捷中,完成工作的團隊承諾在衝刺中可以執行多少工作。

開發團隊決定在 sprint 中要完成多少工作,並承諾在不犧牲質量和速度的情況下提供“潛在可交付產品增量 (PSPI)”。團隊也在不斷地自我提升。

什麼是 Scrum 工件?

Scrum 更側重於每個衝刺結束時的工作軟件,而不是全面的文檔。這並不意味著根本沒有文檔。文檔是為了促進協作和交互,而不是跟踪。

進度總是通過工作軟件來衡量的。Scrum 中的文檔僅通過三個主要工件,即:產品待辦事項、Sprint 待辦事項、增量。

1. 產品積壓 (Product Backlog):

產品待辦列表是產品可能包含的功能的動態列表,以便為用戶提供價值。

產品負責人維護此列表,並負責通過關注“什麼”為用戶帶來最高價值來創建、管理積壓工作並確定其優先級。這些是產品待辦列表的一些獨特特徵:

  • 它在本質上是動態的,因為它根據不斷變化的市場需求而發展
  • 列出將在迭代中採用並作為產品增量交付的所有特性和功能
  • 它是在不斷完善的基礎上進行的。產品負責人和開發團隊協作並根據業務價值和規模更新細節、估計和優先級

2. 衝刺積壓 (Sprint Backlog):

Sprint 待辦事項是 Scrum 團隊計劃在一次迭代或衝刺中實施的整個產品待辦事項的子集。

在 sprint 計劃期間,團隊從產品待辦列表中選擇他們承諾在一個 sprint 中完成的項目,從而創建 sprint 待辦列表。產品負責人和 Scrum Master 不應提供可能影響團隊決策的輸入。Sprint 待辦事項有:

  • 團隊承諾在一個衝刺中實施的產品待辦事項的子集
  • 將項目分解為更小的工作作為任務
  • 專注於“如何”團隊在一個衝刺中完成工作並交付價值
  • 團隊使用的故事或任務板,用於查看待辦事項以及優先排序後個人註冊的工作
  • 為開發團隊提供跟踪衝刺進度並檢查他們與衝刺目標的一致性

3. 增量 (Increment):

增量是在每個衝刺結束時交付的工作。通常,在每次迭代之後,都會有一個產品增量 (PI) 來提供價值,最終產品將是一個可運行的軟件。

此增量是作為 PI 的一部分在之前 sprint 中交付的所有功能的總和。在每個衝刺結束時,產品負責人決定是發布工作產品增量還是等到下一次發布。

什麼是 Scrum 事件?

所有 Scrum 活動都有時間限制,允許團隊檢查他們當前的工作並在未來的時間限制中實施這些學習。

Scrum Checklist for Every Scrum Teams

Scrum 之核心 - 衝刺 (Sprint)

Scrum 的核心是“Sprint”。衝刺是一個有時間限制的迭代,通常從 1 到 4 週不等,最後,開發團隊會交付一個潛在的可交付產品增量。

衝刺具有以下特點:

  • 最多不超過一個日曆月,因為這會因需求變化而增加風險,因此可能無法在衝刺結束時提供感知的業務價值
  • 有一個與每個衝刺相關的目標或“完成的定義”,實際上衡量衝刺的成功
  • 如果衝刺的目標或需求因市場需求的變化而過時,則可由產品負責人取消

Scrum 提倡在 sprint 中進行特定類型的活動或會議,以避免傳統的正式會議。這些事件和會議定期舉行,並在衝刺的特定時期舉行。

典型的 Scrum 事件是:

產品待辦事項細化 (Product Backlog Refinement) : 貫穿整個衝刺的持續活動

產品待辦列表細化是貫穿整個衝刺的持續活動,產品負責人確保產品待辦列表井然有序。產品負責人執行以下任務以確保產品待辦事項是相關的:

  • 刪除或降級不再重要的產品待辦事項
  • 添加或推廣變得更重要的產品待辦事項
  • 將產品待辦事項拆分為較小的項目或將較小的項目合併為較大的項目並估計這些

如何管理產品backlog?

創建具有詳細描述的產品待辦列表,對待辦列表中的特性或功能進行估計、排序和優先級排序。這些功能可以進一步分解為用戶故事,並為團隊執行估計和優先級。

1. Sprint 計劃 (Sprint Planning): 一個月 Sprint 為 8 小時,而較短 Sprint 的時間相應較短

Sprint 計劃會議在每個 sprint 開始時舉行。這有助於產品負責人和開發團隊規劃將在衝刺期間實施的產品待辦事項。開發團隊在本次會議期間執行以下活動:

  • 考慮並與產品負責人討論產品待辦事項
  • 確保對這些項目達成共識
  • 選擇他們估計要完成的一些項目
  • 創建一個足夠詳細的計劃來完成所選項目

如何做衝刺計劃?

在發布中創建一個有時間限制的衝刺。選擇排名最高的待辦事項,並使用直觀的規劃板根據衝刺容量將它們規劃到相應的衝刺中。

為確保實現上述目標,需要進行兩項活動:

第一部分:定義將要完成的“什麼”工作

  • 產品負責人將優先的產品待辦事項提交給開發團隊
  • 整個 Scrum 團隊協作理解工作
  • 開發團隊獲得授權,並根據衝刺能力單獨決定需要進行多少工作。
  • Scrum 團隊制定了一個稱為 sprint 目標的目標,作為該 sprint 的基本焦點

第二部分:解釋“如何”完成工作

  • 開發團隊決定如何生產滿足“完成定義”的下一個產品增量
  • 進行充分的設計和規劃以完成承諾的工作
  • 最初幾天要做的工作被分成一天甚至更少的小單位
  • 稍後完成的工作在需要時拆分

2. 每日站會(15 分鐘)

每日站會是一個 15 分鐘的限時活動,團隊在其中管理其日常活動。Daily Scrum 也稱為每日站立會議。

Scrum 團隊每天開會,最好在同一時間同一地點開會,使其成為一種習慣。在會議期間,每位成員都回答了三個關鍵問題:

  • 我昨天做了什麼?
  • 我今天要做什麼?
  • 有什麼阻礙我嗎?

開發團隊的所有成員都必須參加每日站立會議。每日站會是為了讓開發團隊跟踪衝刺目標的進展,他們應該積極參與,相互協作。

每日 Scrum 還可以確保立即識別和解決阻礙 sprint 進度的障礙。本次會議不會進行詳細的問題解決。向團隊中的每個人廣播個人更新可避免不必要的會議。

此活動增強了團隊溝通和透明度,從而使團隊能夠自組織並更快地做出決策。

如何執行沖刺?

使用 Jile 的 Scrum 板進行每日 Scrum 並記錄每天任務執行的進度。您可以記錄團隊成員的工作時間,檢查他們的可用性和利用率。

3. Sprint 審查(一個月的 Sprint 為 4 小時,較短的 Sprint 時間較短)

sprint 評審是在每個 sprint 結束時發生的事件,其中 Scrum 團隊向利益相關者展示在 sprint 中完成的工作。本次會議期間發生以下情況:

  • 展示新功能和底層技術的產品增量演示
  • 審查的反饋為團隊提供了進一步討論改進現有積壓工作和未來衝刺計劃的意見
  • Scrum Master 主持這個評審會議,通常由產品負責人邀請的所有利益相關者參加
  • Sprint 評審本質上是團隊檢查和適應下一個 sprint 和整體產品發布的一種方式

如何跟踪衝刺進度?

獲取所有人工製品的實時進度、衝刺燃盡圖、差價合約等。跟踪故事、在該衝刺中完成的任務、障礙和依賴關係的狀態。

4. Sprint 回顧(一個月 Sprint 為 3 小時,較短 Sprint 的持續時間較短):

在 sprint 回顧會議期間,Scrum 團隊檢查之前完成的 sprint 並確定要為即將到來的 sprint 制定的改進領域。這發生在每個 sprint 之後以及整個 Scrum 團隊參與的 sprint 審查之後。

本次會議期間:

  • 團隊反思在協作、規劃、流程和工具方面進展順利的地方
  • 他們試圖找出可以在下一個 sprint 中進行的潛在改進,通過從以前的不足中學習來提高 Scrum 流程的效率
  • 他們通過考慮主要改進來決定在下一個衝刺中可以做什麼
  • Scrum Master 確保團隊在 Scrum 過程中提高他們的技能和知識,以便他們在下一個 sprint 中變得更有效率
  • 團隊專注於改善整個交付週期
  • 團隊回答的三個典型問題是:
    • 我們要開始做什麼?
    • 我們要停止做什麼?
    • 我們要繼續做什麼?

Scrum 流程框架中的所有上述事件使團隊能夠在短迭代中交付潛在可交付的工作軟件。這也使團隊能夠捕獲反饋、檢查並適應下一次迭代。

如何進行沖刺回顧?

沒有衝刺回顧,任何衝刺都是不完整的!確定“什麼進展順利”、“什麼可以改進”以及為在下一個衝刺中提供更好的結果而要採取的行動項目。

什麼是 Scrum 價值觀?

Scrum 還陳述了團隊必須遵守的五個核心價值觀。核心價值觀是:(1) 承諾、(2) 勇氣、(3) 專注、(4) 開放和 (5) 尊重。這些價值觀應該被 Scrum 團隊吸收和實踐,以確保實現透明、檢查和適應的 Scrum 支柱。它在每個人之間建立信任。

Scrum 的成功使用取決於人們越來越精通這 5 個價值觀

  • 人們個人致力於實現 Scrum 團隊的目標
  • Scrum 團隊成員有勇氣做正確的事情並解決棘手的問題
  • 每個人都專注於 sprint 的工作和 Scrum 團隊的目標
  • Scrum 團隊及其利益相關者同意對他們在執行工作時遇到的所有工作和挑戰持開放態度
  • Scrum團隊成員相互尊重,認為每個人都有能力和獨立

Scrum 框架的好處:

項目管理的主要缺點之一是結果的不確定性,因此在項目完成時確保項目的成功是不可想像的。Scrum 確保迭代、快速和適應性足以在項目中盡快交付結果,以減少開始和結束之間的差距。以下是該方法有效的原因。

  • 快速交付——實踐 Scrum 框架的項目可能會以富有成效的方式更快地交付成果。
  • 易於培養 -使用 Scrum 框架使每個人都可以靈活地進行改進,以防在中途發現任何錯誤並修復這些錯誤。
  • 節儉使用 -無論何時需要,都可以有效地利用時間和金錢,從而在短時間內產生預算友好的項目。
  • 易於應對 - Scrum 作為敏捷的一個子組,可以在其短的衝刺週期和定期反饋的幫助下輕鬆地涵蓋其項目中的更改,這些更改是客戶需要的。
  • 輕量級流程 -這包括 Scrum 框架通過事件接收在整個衝刺期間完成的進度的定期更新。
  • 可管理的單元——無論項目有多大,它總是可以分解為可在可實現的衝刺中實現的可行項目。
  • 多功能 -授予對任何開發階段的訪問權限,並允許在 Scrum 方法的範圍內進行最大程度的可變操作。
  • 直接而清晰——每個團隊成員都非常清楚地了解彼此在日常站立會議中取得的進步。

Scrum 框架總結

Scrum 是一個框架,人們可以在其中解決複雜的適應性問題,同時富有成效和創造性地交付具有最高價值的產品。它用於管理軟件項目和產品或應用程序開發。它的重點是適應性產品開發策略,其中跨職能團隊作為一個單元在 2-4 週內實現共同目標(Sprint)。

Scrum 是一個通過“查看和調整”來開發和維護複雜產品的框架。是一種遵循敏捷宣言和原則,整合三個角色、三個工件、五個事件、五個價值觀的流派 ,簡稱“ 3355 ”。

 

3355 Scrum 框架


 

 

Visual Paradigm International