2009-01-08 55 views
4

在我們迭代計劃中,我們經常發現自己處於相同的位置,這傢伙 -​​3210敏捷 - 任務分解 - 估計與否?

我絕對同意原型之前,你可以給一個合理的估計。但這同樣適用於任何需要一點體系結構和設計的東西 - 但我不太願意在衝刺範圍內完成所有這些。

其基本思想是,您儘可能多地確定您可以確信的任務,並將其估計爲正常。對於那些你不確定的領域,應該有兩種類型的任務:調查&實施。

調查任務是對您只是不確定的工作的簡要描述,例如「調查如何將Control X綁定到數據」。估計是爲這些提供的。

執行任務是一種傳統的粗略猜測,可能是基於分配的故事點,您認爲實現該功能需要多長時間。

在衝刺期間,當調查任務完成後,開發人員應該處於一個他們有更好的想法發展的階段。然後可以確定「適當」任務,取代實施佔位符。此外,在此階段可能會確定進一步的調查任務,並且該週期繼續進行。

在上面的例子中,我們從7小時的調查任務開始,一個實施任務估計爲14.一旦第一次調查完成,任務1,2和3將被確定並估計一定程度的確定性,其中任務3是另一項調查任務,將在稍後階段確定任務4和5。正如你所看到的,第一次執行估計在14小時內交付了這個功能 - 但實際情況是它至少需要4 + 7 + 3 + 4 + 2 = 20。比初始估計多三分之一。

alt text http://www.duncangunn.me.uk/myweb/images/estimate.png

所有的心思都歡迎 - 我的直覺是,這將飛 - 我說的對還是我錯了兄弟?

乾杯!

回答

0

估計特徵通常是一項複雜的任務。一段時間後,你的估計會變得更好。但好的方法可以是你用故事點估計特徵。故事點是表示問題複雜性的抽象價值(意味着在團隊中達成一致)。 您應該爲相似複雜度的特徵分配相同的複雜性(相同數量的故事點)。然後稍後就足以僅估計一小部分功能(或查看歷史數據),您應該能夠估計出您需要多少時間。

具有相似複雜度的特徵需要類似的實施時間。

2

實際上,該功能的實現需要27個小時 - 您忘記了7個小時的首次調查,所以實際上實際的實施花費了估計的兩倍。

有兩種方法你可以去這樣的:

  1. 只是要估計盡你所能,並可能出現在你的衝刺井噴和拒絕的項目速度(你應該只在該功能做到這一點既緊迫又重要);或
  2. 安排此衝刺的調查並將實施留給其他衝刺 - 不知道該任務需要多長時間,產品負責人沒有足夠的信息來決定是在哪個衝刺階段安排它,甚至不知道是否要這樣做。只有估計的任務應該包含在你的衝刺中。

第一個選項意味着你的衝刺和項目估計有點武斷。第二選擇給你的衝刺提供了更多的可預測性。

在您的示例中,初始調查可能計劃在Sprint 1中進行,但不知道該任務將花費多長時間,產品負責人無法決定如何計劃它。如果您回來的估計時間爲200小時,則產品負責人可能決定完全不執行此功能,或將其延遲至產品的第2版。估算進入,產品負責人安排任務1,任務2和調查Sprint 2的任務3.在估計任務3之後,可以在Sprint 3或更高版本中安排任務4和5。

+0

那裏有一些有趣的想法,謝謝。 – Duncan 2009-01-09 00:00:34

3

我們做什麼。

一些功能涉及新技術。我們無法準確估計它們。期。

我們組成一個數字。基於幾件事。 「感覺」有多難?我們是否可以通過某種「部分」或「恰到好處」的實施方式來實現?

  • 如果很難,那很難。這將是昂貴的。

  • 如果有很多零件,有好的內核和一些獎勵東西,我們有可能只把內核放入發佈版,並將其他東西放在一邊以備後用。很少有事情是「全部或全部」,部分發布是不可能的。在這種情況下,我們必須爲「全部」提供足夠的時間,而且這樣會變得昂貴。

我們的標準方法是獲取有用的東西,如果因爲意想不到的複雜性而耗費時間,可能會將事情推遲到稍後的衝刺。

你稱之爲「調查」,我們稱之爲技術衝刺衝刺。對於那些新的東西,我們編制了估算數字,以安撫那些認爲有必要重新計劃事物的經理。然後我們飆升技術。一旦飆升,我們可以根據我們現在知道的情況修改估算。

+0

謝謝,很高興知道至少我們正處於正確的軌道。我當然喜歡在存在大量不確定性的問題上大力解決問題,然後才能讓我感到滿意。聽到有趣的是,有時你只需要放下腳步! – Duncan 2009-01-09 23:53:34