Scrum 在每個 Sprint 結束時提供兩個檢視與調適機會:Sprint Review 檢視產品,Sprint Retrospective 檢視流程。本章深入介紹 Sprint Retrospective 的目的、參與者、事前準備、執行活動,以及最關鍵的——活動後的跟進執行

概覽#

Figure 22.1: Edward Bear illustrating the need for a retrospective

Sprint Retrospective 讓整個 Scrum 團隊有機會停下來思考

  • 團隊在時間箱內自由檢視正在發生的事、分析工作方式、找出改善方法並制定實施計畫
  • 所有影響團隊產出的因素都可以被檢視與討論:流程、實踐、溝通、環境、工件、工具

Sprint Retrospective 是 Scrum 框架中最重要卻最不被重視的實踐。有些人誤認為它佔用了「真正的」設計、建構與測試時間,但它實際上是 Scrum 持續改善的關鍵貢獻者。

Figure 22.2: When the sprint retrospective happens

最簡單的 Retrospective 形式就是團隊討論三個問題:

  1. 這個 Sprint 做得好的、想繼續做的是什麼?
  2. 這個 Sprint 做得不好的、應該停止的是什麼?
  3. 我們應該開始做改善什麼?

參與者#

  • 全體 Scrum 團隊必須出席:Development Team、ScrumMaster、Product Owner
  • ScrumMaster 既是流程的一部分,也是流程的權威——不是告訴團隊如何改變,而是指出團隊未遵守自己約定流程之處
  • Product Owner 應參加(除非信任或安全感不足)——作為需求流入團隊的管道,如果需求流程有問題,沒有 Product Owner 在場就難以有效討論改善方案

非 Scrum 團隊成員(利害關係人、經理)只應在被團隊邀請時才出席。如果團隊成員因為外部人員在場而無法坦誠揭露問題,Retrospective 將失去其效力。團隊必須感到安全

事前準備(Prework)#

Figure 22.3: Sprint retrospective prework

定義 Retrospective 焦點#

  • 預設焦點:審視當前 Sprint 使用的流程的所有相關面向
  • 特定焦點範例
    • 如何改善團隊的 TDD 技能
    • 為什麼我們建構出自以為客戶想要的東西,但客戶看到時卻常覺得被誤解
  • 確定焦點後可判斷是否需要邀請非 Scrum 團隊成員

對於長期運作的高績效團隊,更聚焦的 Retrospective(深入特定問題的根因分析)可以持續從中提取價值,避免「為了流程而流程」的感覺。

選擇練習活動#

典型的 Retrospective 包含以下練習:

  • 建立並挖掘 Sprint 事件時間線
  • 腦力激盪洞察
  • 分組與投票

也可根據焦點或參與者變化練習方式以保持新鮮感。有些需要數據或材料的練習最好在事前準備時確定。

收集客觀數據#

  • 在 Retrospective 開始前收集硬數據(非意見):事件發生時間、未完成的 PBI 數量、Sprint 燃起圖等
  • 此時只收集不分析——確保數據在 Retrospective 時可用

規劃結構#

  • 通常安排在每個 Sprint 結束時的同一地點、日期和時間
  • 時長:至少 60 分鐘;兩週 Sprint 建議約 1.5 小時
  • 地點可選在團隊區域(方便存取看板數據)或外部場所(降低情緒飽和度,讓人更自在發言)
  • 促進者:通常由 ScrumMaster 擔任,但也可由其他團隊成員或外部中立促進者擔任;跨團隊的 ScrumMaster 互相促進各自團隊的 Retrospective 也是好做法

執行方式#

Figure 22.4: Sprint retrospective activity

輸入與輸出#

輸入輸出
Retrospective 焦點具體改善行動
練習活動與材料洞察待辦清單(Insight Backlog)
客觀數據改善的團隊凝聚力
主觀數據(每位參與者的個人感受)
先前的 Insight Backlog

第一步:營造氛圍(Set the Atmosphere)#

  • 讓人們感到安全表達意見,不懼報復
  • 建立基本規則(Working Agreement):聚焦組織系統與流程,而非針對個人
  • 建立主動參與的先例——開場讓每人用幾句話表達當前感受或能量水準

第二步:建立共享脈絡(Share Context)#

Figure 22.5: Aligning perspectives to create a shared context

同一事件,不同人可能有截然不同的詮釋。需要將個人視角對齊為團隊共享視角

  1. 先以客觀數據(已承諾的 PBI、完成的 PBI、缺陷數等)建立事實基礎
  2. 再揭露並討論主觀數據(個人對 Sprint 的感受與詮釋)

事件時間線(Event Timeline)#

Figure 22.6: Sprint event timeline

  • 在牆面或白板上畫時間線,參與者用便利貼按時間順序標記 Sprint 中的重要事件
  • 可用不同顏色代表不同事件類型(技術/組織/個人)或感受(正面/中性/負面)

情緒地震圖(Emotions Seismograph)#

Figure 22.7: Emotions seismograph

  • 每位參與者畫出 Sprint 期間的情緒或能量水準曲線
  • 通常畫在事件時間線下方,便於視覺化關聯
  • 將共享脈絡從客觀數據(發生了什麼)擴展到主觀數據(團隊的感受如何)

第三步:識別洞察(Identify Insights)#

Figure 22.8: Retrospective insight card wall

在共享脈絡建立後,參與者挖掘數據以識別改善洞察,需要系統層級(全局)的視角:

  • 什麼做得好?
  • 什麼做得不好?
  • 哪些地方有機會做不同的事?

參與者將洞察寫在卡片上,放到共享牆面上,然後進行組織:

方式一:靜默分組(Silent Grouping)

Figure 22.9: Insight cards clustered into similarity groups

  • 不經口頭討論,參與者透過擺放和移動卡片來協作建立分組
  • 時間效率高且有效

方式二:預設類別

Figure 22.10: Insight cards placed into predetermined groups

  • 事先將牆面分為「繼續做的」「停止做的」「嘗試的」等類別
  • 參與者在建立卡片時直接放入適當類別

第四步:決定行動(Determine Actions)#

洞察是改善的想法與認知;要從中提取長期價值,需要轉化為具體可執行的行動

選擇優先洞察#

Retrospective 通常識別出的改善洞察遠多於團隊能在短時間內消化和執行的量。

Figure 22.11: Example of dot voting

Dot Voting(圓點投票)

  • 每位參與者獲得 3-5 個彩色圓點
  • 同時將圓點貼在認為最高優先的洞察卡片上
  • 可集中貼在一張或分散多張
  • 獲得最多圓點的洞察優先處理

重要性與能量不一定相同。即使某個洞察很重要,如果團隊對執行它沒有動力,現在可能不是好時機。選擇團隊有能量去改善的洞察,更有可能產生具體行動。

決定具體行動#

行動類型範例與做法
任務級工作例如「讓建構伺服器在 build 壞掉時寄 email」→ 指派特定團隊成員在下個 Sprint 執行
行為改變例如「尊重彼此、準時出席 Daily Scrum」→ 不需要消耗團隊產能
障礙移除例如需要第三方軟體最新版本 → ScrumMaster 與採購部門合作解決
需要探索的洞察如果尚不理解根因,行動可以是「在下個 Sprint 調查並收集數據」
flowchart TD
    A[挖掘共享脈絡] --> B[撰寫洞察卡片]
    B --> C[分組歸類]
    C --> D[圓點投票排序]
    D --> E[選擇優先洞察]
    E --> F{行動類型?}
    F -->|任務級工作| G[放入 Sprint Backlog]
    F -->|行為改變| H[團隊自我約定]
    F -->|障礙移除| I[放入 ScrumMaster\n障礙清單]
    F -->|需要探索| J[放入 Insight Backlog\n下次再議]

需要 Product Owner 參與決定團隊分配多少時間在改善行動上——花時間改善意味著可開發功能的時間減少。如果不明確分配時間,改善行動很可能不會被執行。

洞察待辦清單(Insight Backlog)#

  • 保存在 Retrospective 中識別但無法立即處理的洞察
  • 下次 Retrospective 時可作為候選項與新洞察一起排序
  • 有些團隊選擇丟棄未被選中的洞察——如果真的重要,下次 Retrospective 還會被再次識別

第五步:關閉活動(Close the Retrospective)#

  • 回顧行動:描述每個已承諾的行動項目及負責人
  • 表達感謝:感謝參與者的貢獻,特別是非 Scrum 團隊成員的參與
  • 改善 Retrospective 本身:花幾分鐘收集改善 Retrospective 做法的建議——Retrospective 本身也應受到檢視與調適

跟進執行(Follow Through)#

確保 Retrospective 中的決議不只停留在會議室內:

行動類型跟進方式
行為類行動由團隊成員與 ScrumMaster 重申和強化
任務類行動在下個 Sprint Planning 將改善任務放入 Sprint Backlog,再引入新功能;相應調整可用產能
障礙類行動放入 ScrumMaster 的障礙清單;外部團隊負責的放入其對應的 backlog,由 ScrumMaster 追蹤
flowchart TD
    A[Retrospective 產出行動] --> B{行動類型}
    B -->|行為類| C[團隊自我強化\n每日提醒]
    B -->|任務類| D[放入 Sprint Backlog\n作為工作項目追蹤]
    B -->|障礙類| E[放入障礙清單\nScrumMaster 持續追蹤]

不要將「改善計畫」與 Sprint 工作分開管理! 兩條線的做法幾乎總是導致改善計畫被功能驅動的 Sprint 計畫壓過。要確保改善行動真的被執行,必須整合,而非分離。

Sprint Retrospective 常見問題#

Figure 22.12: Sprint retrospective issues

問題說明與對策
不做 Retrospective 或低出席率可能是排程衝突(成員同時屬於多團隊)、無聊、未買入 Scrum、或認為已無改善空間。探討 Retrospective 的價值
空有形式,缺乏實質(All fluff, no stuff)忙碌但沒有可執行成果。考慮引入外部有經驗的促進者
忽視房間裡的大象明顯的關鍵問題無人提起——可能有安全感問題。ScrumMaster 應先協助解決安全感障礙
促進者能力不足新任 ScrumMaster 力不從心,考慮使用外部促進者
令人沮喪、消耗能量Sprint 不順利加上重溫痛苦。花更多時間營造氛圍,或使用外部促進者
指責遊戲促進者必須在出現時立即制止以防止連鎖效應
抱怨大會參與者只想抱怨而無改善意願。邀請能實際推動改變的人參加
取代日常流程改善Retrospective 不應成為唯一的改善時機。ScrumMaster 應在 Sprint 中主動促進即時的流程改善
過度雄心新團隊設定不切實際的改善目標。ScrumMaster 提醒可用產能,協助調節期望
沒有後續跟進如果不跟進就不需要浪費時間做 Retrospective。ScrumMaster 必須積極找出根因並協助團隊解決障礙