« XPlanner 使用心得 | 網頁 | Remoting and web services using Spring »

30/05/2005

XPlanner 使用心得

JeffHung 在他的 Blog 裡問我有關 XPlanner 的使用心得。老實講心得都是斷斷續續的,沒經過通盤的思考,而且有些都是一些自己使用上的旁門左道,不見得是標準用法。不論如何,還是把它整理出來,供有心人參考。

XPlanner 的基本觀念

  • XPlanner 是一套支援 XP(Extreme Programming; 終極製程) 的規劃及追蹤軟體
  • 在 XPlanner 中,你可以建立許多的使用者與專案,每個使用者在每個專案中可以有不同的權限
  • 一個專案可以視為一套產品的開發過程,當然也可以對應到與顧客合作進行的軟體客製化專案
  • XPlanner 在專案層級下設有迭代 (Iteration),基本上一個專案應該要有許多 features 或 requirements。透過迭代,你可以安排要將哪些 features 放在哪個迭代,而將另一些 feature 放在另一個迭代。開發時間越早的迭代,應該包含專案越核心的功能,或是較為重要的功能。而後面的迭代則放入選擇性的功能。
  • 迭代層級裡面放置使用者故事 (user stories)。使用者故事用來代表一個使用者可了解的需求,應該是一組獨立,且不可分割的功能。使用者故事同時也用來作為工時估算的單位。決定一個迭 代裡要有哪些使用者故事、要把哪個使用者故事放在哪個迭代的過程,就是發行規劃 (release planning)
  • 使用者故事層級裡放置作業項目(Tasks)。如果把使用者故事看作是需求,那作業項目就是完成某需求所需進行的工作。作業項目由開發人員撰寫,它同時也可用來較為精細的估計工時。
  • 在 XPlanner 裡面你不用怕故事放錯迭代,也不同怕作業項目放錯故事,因為它們都是可以在不同的容器中移動或接續的。

使用 XPlanner 規劃及追蹤軟體開發專案

這部份有些內容參考自 XPlanner 網站:Planning and Tracking

XP (Extreme Programming; 終極製程) 是極富彈性,且還在進化中的軟體開發流程。在實務上有許多的 XP 規劃方法。我們在此說明 XPlanner 所支援的流程。規劃流程的特性及步驟包含:

由顧客及開發人員定義發行計畫 (release plan)

XPlanner 目前還沒有直接支援發行規劃 (release planning)。不過 XPlanner 倒是可以讓你定義許多迭代,並在其中放入適當的故事 (stories)。你可以把這種功能當作是發行規劃的一種方式。實務上,我們還會定義虛擬迭代 (pseudo-iterations) 來容納那些還未排入正式迭代的故事。這樣就可以讓顧各定義他們想看到的產品特性,並為接續的迭代規劃存留原始題材。

使用虛擬的迭代 (pseudo-iteration) 儲存尚未納入排程的故事 (stories)

XPlanner 目前常未直接提供未規劃故事 (unplanned story) 的容器。然而,許多團隊會建立一個稱做是 "backlog"(註: 應該是起源於 Scrum 開發方法學,用來代表 feature repository) 或 "unplanned stories" 的虛擬的迭代,並將迭代啟始時間設定為很久之後,來當作 未規劃故事的容器。將未規劃故事先放在這個虛擬迭代中,之後在概念規劃 (planning game) 時再把適當的故事移到適當的迭代中。

由顧客定義使用者故事 (user stories)

你可以在規劃某一迭代時直接建立使用者故事,或將別的迭代裡的使用者故事移到某迭代中。故事的優先權必須協同顧客敲定。

由開發人員估計實作故事的代價

XPlanner 可以在為故事定義作業項目 (tasks) 之前,就先預估工時。這對一開始時粗估是否能在時間、資源限制內,實作出顧客所要求的故事集是非常有用的。觀察員 (tracker; 追蹤者) 將會參與這個階段,來幫助顧客開發故事。觀察員通常會是故事的開發人員之一,但這並非必要。

一旦選定了一組可行的故事集之後,開發人員將會定義實作故事所需進行的作業項目 (tasks)。這個時候,由開發者為某一故事的工作項目所進行的工時估計,將會取代原始故事的工時粗估。每一個工作項目,都會有一個受理的開發人員 (acceptor)。當開發工作正式進行時,受理人將會 (或可能會) 與另一個配對程式師 (paired programmer) 一同進行開發工作。

開發者以過去迭代的指標來決定其可用預算 (budget, 這裡偏向時間上的預算,而不是指經費上的)。而預算決定了某開發人員在此迭代中可接受的工作。在 XPlanner 中,迭代中每個開發人員的所花費的工時可透過 iteration metrics 頁面呈現。一般來說,將工時除以二 (假如是採用配對程式設計方式) 就是當前迭代可用的預算。

實作故事

如果透過作業項目重新估計的工時仍然在此迭代可接受的預算之內,就可以開始進行作業項目了。

進度追蹤

作業項目開始進行後,就可以追蹤其工時。XPlanner 會在迭代、故事,以及作業項目層級的網頁,以進度列的方式來展示進度。

進度列可用來 (例如,讓相當忙碌及時間有限的顧客) 快速檢視整個團隊的進度。進度列已經過正規化 (normalized) 以減少視覺雜訊的顯示。正規化的缺點是故事的相對大小沒有顯現出來。這樣的資訊是以數值化的方式顯示在迭代表 (iteration table) 及其他頁面中。如果一個作業項目還沒有記錄任何工時,則整條進度列都會是灰色的。

而當作業項目開始進行後,進度列上會以藍色表示已進行的工時。

如果某個作業項目的實際工時已經超出了之前的估計,則 XPlanner 會強制你更新估計工時,才肯讓你儲存輸入工時。之所以這麼做的原因是,XPlanner 不可能在你超出預估工時後,還能幫你估算剩餘工時。而原本的預估並不會喪失,因此還是可以產生 "預估正確性指標 (estimation accuracy metrics)"。

迭代頁面所示的故事層級 (story-level) 進度列,則是作業項目層級進度的整合。

發表留言