本篇文章來介紹「規畫系統」(Planning System) 中的:Planning 會議。我相信熟悉 Scrum 的朋友對 Planning 的內含與執行方式都不陌生,我盡量減少己知資訊的重覆,而是聚焦高效率 Planning 會議的實踐方式。
回顧規畫系統方塊圖,細心的各位也許會發現與之前稍有不同。在這裡我更明確的定義了 Refinement 的系統輸出為「產品待辦清單」( Product Backlog ) 上「合格」的待實作 User Story,我對「合格」定義:進行過「細顆粒執行項目」拆分與「點數」評估。而 Planning 的系統輸出為 Sprint 待辦清單。
Planning 會議中要進行的活動就是:
從 Product Backlog 中,挑選下個 Sprint 中團隊可以消化的工程項目,放進 Sprint Backlog
之前的文章提到過,很多團隊會在 Planning 會議中,一併進行 User Story 的討論與估點,造成時間冗長;這個問題在我提出的系統中,已經消除,Planning 的會議效率已預期可大幅提升。此時關注的重點在於「實作項目挑選」以及「團隊實作量能」。
PO 根據商業價值判斷,定義 Product Backlog 的優先順序後,在 Planning 會議中,PO 向團隊解釋驗証與商業目標,以及期望團隊可以交付的 User Story 有哪些。由於此時的 User Story 都已經帶有點數,且根據 123 估點法,PO 已經可以事先估算團隊在 Sprint 中的實作量能,可以拉幾個 User Story 進 Planning 就可以大概估算。例如一個假想的圑隊組成如下:
一個 Sprint 的週期為 2 週,則團隊理想實作量能為:
但團隊開發,絕不可能每個人 30 點排滿滿,因為每個 Sprint 都會有預期 (會議,公司活動,國定假日等)或非預期 (特休,插件,天災等) 的事件,可能影響開發。PO 可以根據經驗,將開發量能給與權重。假設權重為 0.8 ,則調整後的實作量能成為:
以下圖的估點為例:
三個領域的 RD 都有充份的量能可以開發這個 Story,此時 PO 可以輕鬆的判斷,是不是還可以把另一個 User Story 先放進 Planning 會議。或是把時間交給技術主管,進行一些別的開發活動。
上面提到的實作量能,是 PO 的估算值,而實際狀況就是在 Planning 會議中,由 RD 自行回報。例如下述的狀況:
因此在會議中,可以重新對齊團隊開發量能如下:
接下來,就讓 RD 自行挑選工程項目 (Task),此時的精神為 RD 的承諾。PO、Scrum Master、工程主管不干預 RD 自主性。
最後, PO 可以從 Planning 的結果,得知 User Story 是否都可以在 Sprint 中完成交付。根據經驗,我帶過最大的 Scrum 團隊 (20 人),曾經在 40 分鐘內完成 Planning ,並且領域團隊可以向所有人簡報他們預計完成的項目,對齊期望。
這裡會有一個常見的衍伸性問題:
如果 Sprint 無法將完整的 User Story 完成該怎麼辦? 這不就違反 Scrum 精神了嗎? 要刪減 User Story 還是延長 Sprint 時間? 這個疑問,我留待之後的文章專門解答。
下一篇我們來聊聊「規畫系統」的最後一環:開發系統。明天見!