2015-04-28

需求怎麼估? - Animal Point Workshop Part I - 估需求前必須知道的事

需求怎麼估? - Animal Point Workshop



2015.04.24 星期五
我很榮幸在Agile Meetup新竹場分享這個Topic


























其實這場Topic的靈感是來自於91學長上次的Dog Point Workshop
http://www.codedata.com.tw/social-coding/estimation-with-dog-point-game/
只是我這次有調整了一下講課內容以及workshop的流程

這邊就先整理一下今天的內容吧

今天這場sharing 主要分兩個部分
上半場主講估需求前必須知道的事
下半場就讓大家來玩Animal Point Workshop

來先談談估需求前必須知道的事吧

在任何的軟體開發流程中,需求估算永遠不會消失。
或許很多朋友認為估需求是相當困難且痛苦的一件事,或許很多朋友把大量時間花在冗長的估算上但始終也估不準。
今天這堂課將則是引導出需求估算的另一種方向 - 相對估算
課程將會以Workshop的方式進行,用一個有趣的案例,讓學員們實際操作,體會相對估算的精神。

首先 我請大家先思考一下
目前自己的團隊中對於估需求這件事是否遇到什麼問題?















主要的想法是要解決問題前
至少要知道問題是什麼吧

於是我就請學員們分組討論
5分鐘後請每組挑出三個最重要的問題來分享
以下是學員們的分享:

  • 估不準
  • 照著被訂好的deadline估
  • 每個Sprint的工作量不一
  • 總是被分派到類似的任務
  • 需求不明確
  • 需求超出能力
  • 團隊對工時有落差
  • 範圍太廣很難估

或許今天的內容無法解決他們的問題
但是釐清問題就是解決問題的一大步了

接下來就進入主題了

I. 估需求前必須知道的基本原則

  • 相對比較 比 絕對評估 簡單
  • 小任務 比 大任務 容易掌握
  • 使用 Planning Poker 來估

原則一 : 相對比較絕對評估 簡單
我請大家進入一個情境 : 假設今天你要爬樓梯
請問大家這24層樓的大樓以及101登高賽分別要爬多久?




要很快地回答要爬多久其實有點困難
但是要比較兩者之間的難易度就簡單多了

我們不知道每一棟高樓實際要爬多久
但是知道彼此的相對關係

所以估相對關係真的比較簡單


原則二 :  使用 Planning Poker 來估
我一樣請大家進入一個情境 : 假設今天你要評估肌肉痠痛的程度
一樣是爬樓梯
面對1層樓、3層樓或5層樓甚至是40層樓應該是不一樣的痠痛程度吧!
那我們如何很快地評估肌肉的痠痛程度?
其實可以參考費氏數列 (Successione di Fibonacci in wiki)
















費氏數列的特性是越後面的數字,差距越大。
當數字小的時候,你感覺得到差距


















可是當數字大的時候,你卻分不出誰大誰小,反正都很痛苦就是



















所以費氏數列很完美地詮釋了需求越大,不確定性越大的特性。
我們可以利用這個特性來對需求快速的分類
這邊呼應了原則一,我們對於評估實際的數值感到困難,但評估彼此的相對比例會簡單很多。
當數字小時,即使保守點取較大數,也不會造成太大的影響
當數字大時,不用糾結於40或是41的差別

而Planning Poker正是使用類似費氏數列的數字牌卡
所以這邊推薦大家使用Planning Poker














II. 評估時的注意事項

Who - 誰來估?

























你累了嗎?來聽個故事好嗎?
照片裡的主人翁是個小力士,這個祕密被邪惡老爸發現了之後,規定他一分鐘之內要搬10包尿布!但是實際上小力士只能搬2包。
請問各位如果你是小力士,作何感想?
小力士:實際搬的人又不是你! 真是OOXX
這種情境總是一再上演阿!所以誰要來估?當然是有做事的人才來估。而且要大家一起評估,估出來的結果才會客觀;大家也會達成共識;團隊也有參與感。

所以誰來估?
由做事的人一起評估

When – 何時估?
還沒分派任務前估


原因是將個人因素降低,估出來的結果才會比較客觀。

What – 評估因素
我們在評估這個需求時,可以就這三個角度來思考 :

  • 複雜度
  • 重複性
  • 風險

這邊是參考之前讀的一本書:
Scrum Shortcuts Without Cutting Corners: Agile Tactics, Tools, & Tips

小結
為何推薦大家採用這套相對估算方法?

  • 簡單
  • 客觀評估
  • 達成共識
  • 自我承諾


簡單
越簡單的東西才越容易導入到團隊裡。尤其要改變大家平常的工作習慣,必須想辦法簡單到無縫接軌,或是讓團員們有感覺到好處。才容易導入成功。

客觀評估
大家一起估,就能消除個人主觀的因素。整個團隊估出來的東西才會比較客觀。或許你會問,那估錯怎麼辦?那就下次改進囉!我們也可以利用每次的Retrospective Meeting修正一下估錯的因素。

達成共識
大家一起估的東西,才會達成共識。

自我承諾
我一直都認為自己開出去的支票,比起被別人assign,總是會更想努力地兌現。而這套方法是Member大家一起估的東西,等於是自己承諾的份量,他們肯定會想辦法完成的。

下一篇就來談談Animal Point Workshop怎麼玩喔
需求怎麼估? - Animal Point Workshop Part II - 實際動手玩

參考資料:
估算需求複雜度(1)Story Point 與 Planning Poker

0 意見: