估算需求複雜度(2)Dog Point Game
估算需求複雜度(1)Story Point 與 Planning Poker << 前情 前言在上一篇文章中提到了一些估算的基本原則,包含了:
在 Scrum 的估算過程中,絕大部分都是建議使用 Planning Poker 來讓團隊每個成員進行估算。雖然 Planning Poker 的使用方式相當簡單,但對於第一次接觸 Scrum 或 Planning Poker 的團隊,往往會產生一些摸不著邊際或尷尬的場面。大家不曉得到底該怎麼比較,比較的基底為何?我這樣估會不會跟大家不一樣,不一樣時是不是應該從善如流,下一次就跟大家估一樣?當估得比其他人高時,是不是我就顯得能力比較弱? 這些疑惑,會使得團隊成員不容易享受於輕鬆輕快的估算流程,而影響了團隊的節奏。因此,本篇文章將介紹一個簡單的遊戲:Dog Point。透過把軟體開發中的 story 轉換成小狗的情況,來幫助大家瞭解估算的運作方式、意義。從遊戲中學習效果最好,這也很適合當在團隊剛成立時 team build 的活動。這樣的方式適用於:
Dog Point 原則一:「相對比較」要比「絕對估算」來得簡單且容易有共識主持人:「這隻吉娃娃有多大呢?」 這個問題,就像 PO 問開發人員:「這個需求需要花多少時間完成呢?」 開發團隊每個人的答案可能都不一樣,也因此這樣的估算不容易達成共識。 當我們換個方式,透過相對比較的方式來比較大小時,往往容易達成共識。 [註]當然在某些比較的情況下,還是可能出現有一半的人覺得左邊的狗比較大,另一半的人覺得右邊的狗比較大。這時其實只是代表,這兩隻狗的大小差不多一樣大,他們之間的差距幾乎可以被忽略。 Dog Point 原則二:「粒度小」的估算比「粒度大」的估算精準且容易有共識主持人:「要做出這架紙飛機,你覺得需要花多少時間呢?」 主持人:「如果是要做出這架戰鬥機,你覺得需要花多少時間呢?」 「紙飛機」跟「戰鬥機」的估算,哪一個比較精準?比較有信心?大家估算的誤差比較小呢? 可以發現絕大部分的人認為,任務粒度較小的估算,團隊成員之間估算出的誤差較小,且也比較容易達成共識。 Dog Point 原則三:估算單位以「費氏數列」為參考因為估算過程是整個團隊做事的人一起參與估算,且期望以全部人員達成共識才算估算完畢。所以,如果估算出來的數字不容易達成一致的共識,就會導致估算的過程冗長而沒有效率。 費氏數列在估算中有兩個特性:
舉個例子來說,如果有兩棟房子,分別是 1 層樓與 2 層樓,要比較它們誰比較高,通常不難,因為它們差了一倍的高度。 2 層樓與 3 層樓,也不難比較。但如果是 20 層樓跟 21 層樓,對一般人來說可能就開始不容易比較出大小,又或者是說相差這 1 層樓,對 20 層樓來說,影響或差距不大。 因此,當團隊使用費氏數列當作估算單位的參考,有幾個好處:
Dog Point Workshop 練習-Step 0 準備道具邀請你的 Scrum team 成員參加,最好 PO 也可以一起參加,直接擔任 PO 的角色。主持人則是 Scrum Master 的角色。 請準備好兩樣道具:
這邊用幾個圖示來簡介整個活動的運行過程,首先是團隊成員組成如下: 狗的圖卡先以 4 張當簡介: Dog Point Workshop 練習-Step 1 比大小結果: Step 1 最後呈現的結果,是由團隊決定出這些狗狗,由左至右、由小到大的順序。例如: 規則:
注意事項:
示範過程: 2. Alice 詢問下一張「臘腸狗」的相關資訊,並判斷臘腸狗比吉娃娃大,所以放到吉娃娃右邊。 3. Bob 認為下一張的「西施犬」比「臘腸狗」大,所以放到「臘腸狗」的右邊。 4. Cindy 看到下一張「大丹」的圖片,問到這是算一隻還是兩隻?PO 回答:這是兩隻。因此,Cindy 認為大丹應該是裡面最大的,所以排到最右邊。 5. David 認為,原本排第三的「西施犬」其實只是毛比較長,真要比較「臘腸狗」應該比「西施犬」大。 6. 當 Alice, Bob, Cindy, David 都認同這樣由小到大的順序,喊出「Pass」後,結束 Step 1。 Dog Point Workshop 練習-Step 2 排數字結果: 以 Step 1 的結果為基礎,以吉娃娃為單位,在狗狗圖片底下,依照 planning poker 的卡片,排出相對於「吉娃娃大小」的倍數。例如: 規則:
注意事項:
示範過程: 1. 吉娃娃的單位為 1 。先將 planning poker 中 1 的 card 放到吉娃娃底下。 2. Alice 認為,「臘腸狗」是「吉娃娃」的 2 倍大。 4. 接著 Cindy 認為,那「臘腸狗」應該是「吉娃娃」的 3 倍大。 6. 在 Alice Pass 後, Bob 認為一隻「大丹」應該就有「吉娃娃」的 20 倍大,這一張是「兩隻大丹」,所以應該把 20 改成 40 。 7. 在所有人都喊出 Pass 後,結束 Step 2 。代表這樣的大小順序以及比例,是團隊一同的共識。 Dog Point Workshop 練習-Step 3 定義「吉娃娃」最後的 Step 3 相當簡單,還記得我們前面提到的準則嗎?粒度越小的評估,誤差越小,且越容易達成共識。團隊只需要針對「吉娃娃」定義出絕對的複雜度或是對應絕對的工時,例如「吉娃娃」如果代表了一個「單表自訂查詢」的 UI ,團隊一致認為只需要「0.5 hr」即可完成,如下所示: 那麼所有狗狗(或是 user story ,或是 task)的絕對大小,就可以依此推估出來。如下所示: 結論Dog Point 的估算遊戲,與前面提到的估算準則相呼應:
最後,還是有幾點要請讀者們留意的部分:
我再重複一次最重要的精神:「團隊在當下,一起做出每個成員都可以接受的決定,那個決定就是當下的最佳解。」所有做事的人,都估出同樣的數字時,即使這個數字跟實務上的執行有所落差,那也是團隊一起認同、共同承擔與接受的。 最後附上我在 2015 年微軟實戰課程日,針對 Dog Point 估算的演講影片,裡面的示範過程以動畫呈現,相信能讓讀者更加有感。也期望這樣的估算遊戲,能幫助到許多團隊在遊戲中學習與體驗 Scrum 估算的精神、準則與方式。 |