l

2012年11月9日 星期五

用 Kanban + Scrum 支援大型專案

Nov. 09 13:12~14:19

image

 

很多接觸到Scrum(廣義的說,敏捷開發方法)的鄉民們對於Scrum與敏捷方法是否可以用在大型專案開發一開始都保持著懷疑的態度。

鄉民:一個Scrum團隊成員數目是7加減2(5-9)人左右,所以說Scrum只能用來開發小型專案?

Scrum大師:你可以採取Scrum of Scrums的方式來擴展團隊的規模。

鄉民:什麼是Scrum of Scrums?

Scrum大師:就是「雙層(多層)式的Scrum」。簡單的說,假設你的專案成員有36人,把這36人分成4個團隊,每個團隊9個人。針對每個團隊採用Scrum,然後每天Daily Scrum之後,每個團隊的指派一人,再一起開會討論以下幾問題:「上次開會之後你的團隊做了什麼」、「下次開會之前你的團隊準備做什麼」、「團隊是否有遇到任何的阻礙」、「你的團隊正在工作的事項是否會影響到其他團隊」。

***

網路上有很多文章在討論如何擴展Scrum團隊的議題,有興趣的鄉民們Google一下「Scrum of Scrums」、「Large-Scale Scrum」、「Scaling Scrum」這些關鍵字就可以找到不少資料。今天Teddy要談的是,從《Lean from the Trenches: Managing Large-Scale Projects with Kanban》這本書看到的做法。請參考下圖,整個概念跟剛剛提到的Scrum of Scrums很像,就是把一個產品(專案)開發的人力分成幾個小團隊,但是每一個團隊可以自行決定要採用何種開發方式(Scrum、Kanban、XP或是各種敏捷方法的混和體都可以)。但是在整個產品(專案)的層次上,建立一個專案看板,利用這個專案看板來追蹤、管理、協調不同團隊之間的工作流程。

螢幕快照 2012-11-09 下午1.11.49

 

下圖是一個專案看板的範例,在專案看板上,只需要顯示「story」(product backlog item)就可以了,這些story包含user story、technical story、bug fix等。當團隊要實做某些story的時候,就把這些story從Product Backlog(Next 10 User Stories、Next 5 Technical Story或Next 5 Bugs)移到In Progress這個狀態。假設這個專案有兩個開發團隊,一個測試團隊,所以Development這個階段被細切成Team 1 與Team 2 兩欄。這兩個團隊正在工作中的story就會被移到該團隊的In Progress狀態中。

螢幕快照 2012-11-09 下午1.51.20

 

在專案看板上只看到story的流動,並沒有顯示實際施工項目(task)。為什麼?因為通常需要好幾個task才可以做完一個story,如果把task也顯示在專案看板上,那麼專案看板的資訊會太多、太細、太雜亂。專案看板主要是看觀察story在團隊之前流動的狀態,是否卡在哪一個關卡上面。至於團隊內部的細部工作流程,可以針對每個團隊再建立一個團隊看板。下圖就是一個標準的Scrum工作看板,包含story與task的狀態。

螢幕快照 2012-11-09 下午2.10.03

***

有了這樣的概念之後,Scrum of Scrums的運作就更具體一點。Scrum團隊每天在團隊工作看板前開Daily Scrum會議,結束之後再指派一人到專案看板前開跨團隊的會議。有了專案看板的協助,團隊之間的工作分派會比較清楚。當開發流程卡住的時候,也比較容易看出來卡在哪裡,別人想幫忙也才使得上力。

***

友藏內心獨白:這幾天有點小忙,今天差點擠不出料來 挑眉質疑

沒有留言:

張貼留言