傳統(tǒng)上,項(xiàng)目經(jīng)理往往會(huì)致力于創(chuàng)建很詳細(xì)的估算,這個(gè)估算從財(cái)務(wù)的角度要經(jīng)得起推敲。當(dāng)然這樣的估算是基于能夠預(yù)見的情況再加上針對(duì)“已知的未知因素”所設(shè)的應(yīng)急預(yù)算…… 然而就像Donald Rumsfeld的名言所說“有一些我們未知的未知因素——有些事情我們根本不知道我們不知道”。就像上面那些商人,我們永遠(yuǎn)無法預(yù)知那些意想不到的情況。我們花越長(zhǎng)的時(shí)間來創(chuàng)建詳細(xì)的估算,麻煩卻越多。我們可以把詳細(xì)的估算看作是一個(gè)綁定報(bào)價(jià),一個(gè)不同于真正交付價(jià)值的目標(biāo),它使得我們的注意力都放到能在協(xié)議的日期和成本內(nèi)交付一些東西——任何東西,無論它的價(jià)值高低。
在每次實(shí)施后的回顧評(píng)審中,初始估算和實(shí)際之間的差距總是讓我們備受打擊,然后告訴我們自己下次再努力些。愛因斯坦曾經(jīng)說過,所謂神經(jīng)錯(cuò)亂就是“一遍又一遍地做同樣的事情,卻期望得到不同的結(jié)果”。因此事情不應(yīng)該這樣,一定有其它更好的方法。
敏捷項(xiàng)目顯然就不是這樣?我們何不就從一個(gè)大概的需求范圍開始,然后在做的過程中逐漸理清細(xì)節(jié)?嗯,對(duì),但也不全對(duì)。在敏捷項(xiàng)目中我們不會(huì)去創(chuàng)建詳細(xì)的估算來束縛自己,但是對(duì)將要進(jìn)行的工作量的大小有一個(gè)認(rèn)識(shí)還是很重要的,這就是為什么……
1、為什么我們需要估算?
忘掉那些傳統(tǒng)的估算,那些漂亮的精心制作的甘特圖,那些圖表迫使我們的注意力都放在要進(jìn)行的任務(wù)上,而不是要交付的成果。在項(xiàng)目中有三種活動(dòng)需要我們進(jìn)行一些粗略的估算。
當(dāng)我們?cè)诳紤]一個(gè)新提議項(xiàng)目的合理性時(shí),我們需要提前知道大概的成本,這樣才能決定是否值得投入。
當(dāng)我們正在將新的或改進(jìn)的產(chǎn)品推向市場(chǎng)時(shí),我們需要知道那些重要的特性大概什么時(shí)候可以發(fā)布,這樣我們才能安排相關(guān)的活動(dòng)。
當(dāng)我們?cè)跒楣ぷ髋艃?yōu)先級(jí)時(shí),產(chǎn)品負(fù)責(zé)人需要知道每個(gè)故事(或待辦清單項(xiàng))的成本,而團(tuán)隊(duì)需要知道每個(gè)故事的價(jià)值。
有件事很有意思,只要整個(gè)團(tuán)隊(duì)都一起參與進(jìn)來共同協(xié)作,估算本身也可以變成一種很有意義的活動(dòng)。它有助于團(tuán)隊(duì)增進(jìn)理解,并保證團(tuán)隊(duì)每個(gè)人都對(duì)要交付的需求范圍和價(jià)值達(dá)成共識(shí)。
然而對(duì)“估算”這個(gè)詞的傳統(tǒng)理解可能會(huì)讓我們偏離這個(gè)方向。
2、使用“大小”而不是“估算”
為了避免讓人誤會(huì)我們討論的是對(duì)成本和時(shí)間的估算,當(dāng)我們?cè)u(píng)估一個(gè)故事的復(fù)雜程度時(shí),有些人喜歡用“大小”而不是“估算”來描述。在90年代當(dāng)我第一次使用Scrum和XP時(shí)——那時(shí)它們都還沒有被稱為敏捷實(shí)踐——我們是使用T-shirt尺寸來評(píng)估故事的大小(S,M,L,和XL)。
現(xiàn)在我們使用故事點(diǎn)數(shù)——一種評(píng)估故事之間相對(duì)大小的方法——因此我們先找到可能最簡(jiǎn)單的故事,將它的點(diǎn)數(shù)設(shè)為1點(diǎn),接下來用其他的故事與它進(jìn)行比較,如果另一個(gè)故事比這個(gè)更復(fù)雜,那個(gè)故事可能就是3點(diǎn)。
讓評(píng)估變得更有趣的是,我們不采用簡(jiǎn)單連續(xù)的數(shù)列,比如1,2,3,4,5等——而是采用一種近似菲波拉契數(shù)列的形式,像1,2,3,5,8,13等(就如《達(dá)芬奇密碼》里面看到的)。這樣當(dāng)數(shù)字越大相鄰數(shù)之間的間隔也越大,使得我們更容易區(qū)分哪個(gè)故事更小哪個(gè)更大。
盡管這不是一種精確的科學(xué),但對(duì)上面提到的三種需要估算的情況這種方法已經(jīng)足夠好了。像John Maynard Keynes所說,“粗略的正確好過精確的錯(cuò)誤”。這也意味著,我們?nèi)匀恍枰獙⒐适曼c(diǎn)數(shù)轉(zhuǎn)換成粗略的時(shí)間和成本估算。
另一個(gè)主要用于敏捷項(xiàng)目的實(shí)踐是建立“完成標(biāo)準(zhǔn)”,就是對(duì)一個(gè)故事要能夠標(biāo)注為完成并可發(fā)布所需要滿足的所有條件進(jìn)行全面的理解,包括各種