|
作者 Kenji Hiranabe 譯者 郭曉剛 發(fā)布于 2007年9月13日 下午1時30分 在敏捷項目里,掛在墻上的“人人可見的大圖表”是一種普遍的實踐,它被用來共享項目的狀態(tài)并將之可視化。精益系統(tǒng)里也有這樣的設施。“看板”在日語里的大意是“卡片”或者“標志”的意思。在精益生產系統(tǒng)里,看板方法是給每個標準生產單元或者每個生產批量附上一張卡片。只有當一個“進行中”卡片所代表的工作完成后,才會有一張新卡片被“拉”進系統(tǒng)。 在本文中,我將探究當今敏捷項目中廣泛使用的各種可視化方法,并提出用看板圖(Kanban Board)來組織三種視角(時間、任務和團隊),目的是使整個團隊都能理解項目的當前狀態(tài),并以一種自發(fā)、有動力且互相合作的方式來工作。最后,我將介紹“TRICHORD”這個軟件工具,它用看板方法來實現(xiàn)這三個視角的項目可視化。 敏捷項目中的可視化XP有一種實踐叫做“信息化的工作空間”,從中你可以對項目的進行狀態(tài)一目了然[Beck05]。把故事卡和任務卡掛到墻上是這項實踐的一種簡陋實現(xiàn)方式。掛在墻上的其他圖表有時候也被稱為“信息輻射體”[Cockburn01]或者“人人可見的大圖表” [Jeffries04],它們在現(xiàn)今的敏捷項目空間設施里已經是很常見了。下面,我將展示在日本的敏捷團隊中發(fā)現(xiàn)的一些可視化的例子。 第一個例子是任務看板圖(Task Kanban Board),它的名字來自TPS (Toyota Production System)所用的“Just-In-Time”(JIT)生產方式[Poppendieck03, 07]。
圖1:任務看板圖 看板是代表一項要完成的任務的標簽。在TPS中,它被用來具體化Just-In-Time的“拉”生產控制。在圖1里,看板圖顯示了在本次迭代中要完成的所有任務的當前狀態(tài)。任務用卡片(便箋紙)來代表,狀態(tài)則由板上分別標有“未做”、“正做”和“做完”的三個區(qū)域來代表??窗鍒D幫助團隊理解當前做得如何,以及下一步要做什么,令團隊能夠自我指導。 圖2是另一種類型的看板圖,稱為“特性看板圖(Feature Kanban Board)” [Highsmith04]。 圖2:特性看板圖 表的橫軸代表時間線,線上的豎直區(qū)域代表發(fā)布,在區(qū)域中的卡片各自代表一項該次發(fā)布中要實現(xiàn)的特性。第一個例子常在開發(fā)團隊中使用。跟第一個例子相比,特性看板圖為產品路線圖提供了一種更高層次的概觀,因此分享范圍應該被擴大到整個大團隊,包括客戶、市場員工和管理層。 圖3的“停車場圖(Parking Lot Chart)”被用來提供一種最高層次的對項目狀態(tài)的摘要總結(注意不要同另一種“停車場列表(Parking Lot List)”弄混,那是一種用來幫助捕獲未解決的問題的工具)。它是在《Feature Driven Development》(FDD)[Palmer02]里首次提出來的,現(xiàn)在已在敏捷項目中廣泛使用。有時候也被稱為“項目儀表板(Project Dashboard)”。
圖3:停車場圖 . 圖4所示的另一種可視化方式稱為燃盡圖(Burndown Chart)。
圖4:燃盡圖 這種表在Scrum[Schwaber01]中首次提出,用來顯示剩余的未完成工作(backlog),現(xiàn)在已經蔓延到了大多數(shù)敏捷項目中[Cockburn04][Cohn05]。它抓住了項目的當前狀態(tài)以及完成剩余工作的進展比率。 圖5所示的最后一種有意思的可視化方式叫做表情日歷(Niko-niko Calendar或Smiley Calendar),一種日本人的創(chuàng)造,它顯示了團隊成員每日的心情。當天工作結束后,每個人都在離開團隊空間之前往自己的日歷上畫一個表情符號[Sakata06]。它從成員的精神健康和動力的角度來觀察項目。
圖5:表情日歷
用看板圖作為主要的信息輻射體總而言之,以上提到的可視化工具:
注意在看板圖、燃盡圖和停車場圖三者之中,看板圖的信息最詳細。燃盡圖和停車場圖可以用看板圖的每日變化信息來繪制。因此后面我將把看板圖作為主要的信息輻射體,而用燃盡圖和停車場圖來作為輔助工具,形象地總結看板的變化趨勢。 從三個視角來組織看板仔細觀察看板圖,你會發(fā)現(xiàn)上面表達了三項主題——時間、任務和團隊。下面我嘗試從這三個視角來組織看板。
圖6:時間與任務的分解 1.時間在敏捷項目里,項目時間首先被分解成若干“發(fā)布”,每個發(fā)布又被分解成若干“迭代”,每個迭代又分解成若干“工作日”。
2.任務任務被分成三種粒度。我把最高層次的叫做“特性”,每個特性都被分解成若干“故事”,而每個故事又被分解成若干最低層次的“任務”。
3.團隊項目團隊由為了共同目標而工作的人們組成。一般團隊的成員有一個經理,若干客戶、程序員、業(yè)務分析員、用戶、測試員,以及其它利益相關的人。整個團隊都應該分享時間和任務信息來達成項目的目標。 用看板圖為團隊將任務映射到時間我樂于將看板圖定義成一種團隊中任務與時間之間的映射。請注意“時間”和“任務”都可以分解成三個層次,分解的層次越高,應該牽扯到的管理層次就越高。所以,按照“發(fā)布—特性”、“迭代—故事”和“工作日—任務”的組合來設立看板是合理的,雖然其它時間與任務的組合也并非不可行。
表1:用看板結合時間與任務 “特性看板”的長處在于向全團隊提供項目的一個高度抽象的視角??梢源钆渫\噲鰣D來顯示出最高層次的狀態(tài)。 “故事看板”處在中間層次,向團隊提供每次迭代的最廣泛周密的信息,搭配迭代的燃盡圖會更有效。 “任務看板”的層次最低,它顯示出每日變動的當前狀態(tài),搭配每日的燃盡圖會更有幫助。
圖7:概觀——三種視角以及用看板圖將任務映射到時間 TRICHORD我們正在開發(fā)一個名為“TRICHORD”的敏捷項目管理工具。TRI指的是三種視角(時間、任務和團隊),CHORD則是和諧的意思。 它作為全團隊分享項目狀態(tài)的一個工作空間來運作,如表1所示,里面提供三種層次的看板圖——特性看板(發(fā)布—特性)、故事看板(故事—迭代)和任務看板(工作日—任務)。特性看板用停車場圖來歸納,故事和任務看板用燃盡圖來歸納。
圖8:TRICHORD(看板圖+燃盡圖+停車場圖) 另外,TRICHORD有一個表情日歷服務用來給全團隊分享心情。它也是項目中的SNS交流中心,就像一個簡單的“twitter”。
圖9:TRICHORD表情日歷 TRICHORD用Eclipse RCP實現(xiàn),可與Trac(問題跟蹤系統(tǒng))協(xié)同工作。 致謝非常感謝Mary Poppendieck,他從頭到尾審閱了本文并提出了許多寶貴的建議。 參考資料
關于作者
|
|
|