Product Backlog 要怎麼拆細?
以下內容翻譯自 Stefan Wolpers 撰寫的 Product Backlog Refinement: How to Succeed as a Scrum Team
1. 細化的目的
細化的最終目標是:團隊對某個產品待辦項目「為什麼做、做什麼、怎麼做、誰來做」有共同理解,而開發者也對自己能在一個 Sprint 內完成該項目有信心。2. 花費時間
單一項目的細化可能需要多輪討論。建議保持每次細化會議短而頻繁。
3. 持續進行的細化
產品待辦細化是一項持續性的活動,而非只是那種 60 分鐘內草草完成檢查清單的會議。團隊成員會在學到與某項目有關的新資訊時,自主投入細化,尤其是對他們想參與的項目。細化是 Scrum 團隊在 Sprint 中的日常工作之一。
4. 不需全員參與
細化並不代表所有團隊成員都要參加所有細化活動。對應項目有興趣的人可以選擇參與,並非強制全員參與。
5. 每個人都該參與
Product Owner 應盡力讓整個 Scrum 團隊都參與待辦項目的細化,而非只依賴「資深工程師」或設計師。因為在解決複雜問題時,沒有所謂的專家,只有各種觀點。若只讓少數人參與細化,會讓觀點和專業知識的多樣性受到限制,增加「確認偏誤(confirmation bias)」的風險。
6. 邀請外部角色
可邀請利害關係人或領域專家參與細化,幫助團隊更了解問題與可行解法。
7. Definition of Ready(DoR)
「完成準備的定義」這個概念,要嘛是對新手團隊的暫時訓練輪,要嘛就是一種反模式(anti-pattern)。
8. 不要過度提前細化
Product Backlog 應聚焦在產品目標上,內容大致涵蓋3–6 個 Sprint 的工作量。提前過多會造成浪費,因此只細化那些有可能會被實作的項目即可。
9. 使用者研究
產品待辦細化與產品探索是同步進行、密切相關的活動。使用者研究也屬於細化的一環,開發者可以參與像是訪談使用者、用真實資料建立原型等工作。
10. INVEST 原則
在細化項目時,請遵循 Bill Wake 提出的 INVEST 原則:
I – 獨立(Independent)
N – 可協商(Negotiable)
V – 有價值(Valuable)
E – 可估算(Estimable)
S – 小型化(Small)
T – 可測試(Testable)
11. Definition of Done 與驗收標準
良好的細化需要有清晰的「完成定義(DoD)」。同時,也要了解完成定義與「驗收標準」的差別,並在團隊中建立一致的共識,知道如何應用兩者。
12. 品質考量
在細化時,也應納入技術債與重構等議題,因為這些通常會佔據開發者 15–30% 的工作時間,是持續性的努力。
13. 估點的真正意義
在細化後進行估點是有意義的,前提是我們放下「精確數字」的執著。估點的本質在於確認:整個團隊對這個項目的「為什麼、是什麼、怎麼做」有沒有共識。
如果估點結果有分歧,可能是因為:
- 大家對項目的理解不同
- 團隊中有人技能不足,需要補足
這些問題都會增加未來 Sprint 無法交付價值的風險。
若 Scrum 團隊選擇估點,請使用相對估算法(例如 Story point、T-shirt size、狗賽跑等),避免使用絕對估算。
絕對估算的思維根源於工業時代與泰勒主義,與個人效率、績效與硬性承諾相關,也不適合人類本身的思維方式。
14. 不是所有項目都要寫成 User Story
別陷入「使用者故事格式強迫症」:
例:「身為資料庫管理員,我想把資料庫升級到 5.x 版,這樣就可以……」 使用者故事是站在使用者角度,描述系統未來狀態的一種格式。但不是所有產品待辦項目都需要是使用者故事,還包括:
- Bugs(缺陷)
- Spikes(探索性工作)
- 非功能性需求等
不要浪費團隊時間去硬性套用格式,重點是成員之間的對話與理解,而不是文檔格式的正確性。