13.4軟件項目的估計
阿超:大家都來談?wù)勎覀內(nèi)绾喂烙嬡浖椖啃枰臅r間吧。我們在第二篇中有過討論和練習(xí)。我先說一點,下面三個詞匯是有區(qū)別的:
估計(Estimation)——繞王屋村步行一圈,我估計要花一個小時。
目標(biāo)(Goal)——領(lǐng)導(dǎo)說讓我們30分鐘就要完成。
決心(Commitment)——那我們決心豁出去了,跑步前進!爭取20分鐘完成任務(wù)!
用軟件項目為例子:
估計——估計這個項目要花至少5到7個月的時間。
目標(biāo)——領(lǐng)導(dǎo)說:但是我們要向“十一”獻禮,只有4個月的時間了!
決心(之一)——那咱們拼了!我們爭取在“十一”之前完成所有任務(wù),向“十一”獻禮!
決心(之二)——那我們爭取在“十一”拿出一個可用的產(chǎn)品,但是不一定有所有功能。
決心(之一)、(之二)是不一樣的。
另一件事情是,從一個粗略的模型到一個最終的產(chǎn)品需要很長的時間。一個演示版出現(xiàn)后,很多領(lǐng)導(dǎo)不理解為啥還要花N個月的時間做這個軟件,大部分功能不都已經(jīng)在那兒了嗎?
對于一個時間驅(qū)動的項來說,如果你在“粗略的模型”階段浪費了一個月的時間,等待各級領(lǐng)導(dǎo)做決定(這是很容易發(fā)生的事情)。你就得在項目開發(fā)過程中把這一個月的時間奪回來——這是非常困難的事情。
二柱:在做上一個項目的時候,我們的領(lǐng)導(dǎo)大智在路上碰到我,提到客戶剛剛和他通了電話,有一個新的功能需求如此如此,問我需要多長時間。我脫口而出,也就是三五天吧。后來和大牛討論之后,三五天變成了七八天。然后在實施過程中,原來認(rèn)為的小問題變成了大問題,最后花了半個月才勉強完成,而且另外兩個同事還幫了不少忙。聽說大智告訴了客戶“五天交貨”,弄得我非常下不來臺。所以我的教訓(xùn)是不要“脫口而出做估計”——因為你在匆忙之中的估計會傳播得非常遠(yuǎn),你再也無法更改。
大拴:作為開放人員,我們還要為我們的領(lǐng)導(dǎo)和客戶設(shè)定正確的期望值——到底我需要多長時間才能開發(fā)出客戶滿意的產(chǎn)品。如果我們總是眼高手低——保證三五天,結(jié)果半個月。那即使我們在這半個月中拼了老命,做得很好,客戶和老板還是不滿意。
大牛:估計活動本身也需要時間。我很高興地看到我們有專門的時間來做“估計”這件事情。以前都是拍拍腦袋,或者在飯桌上你一言我一語就決定了。
阿亨:我們還要用上一次項目的數(shù)據(jù)作為參考,如果我們上一次過于樂觀地估計了進度,那么這次我們要引以為戒。
果凍:兵法云,置之死地而后生,不少成功的經(jīng)理都有意地縮短估計時間,以激發(fā)團隊的士氣。
大家:(紛紛說)果凍,你在哪本書上看到這樣的妙計?你去投奔這些成功的經(jīng)理去吧。
阿亨:(在白板上一邊畫圖,一邊說)果凍的兵法會產(chǎn)生這樣的惡性循環(huán)(如圖13-1所示)。
圖13-1果凍的兵法:惡性循環(huán)
阿超:還有一種可能是,團隊成員不再相信項目的計劃,項目經(jīng)理的喊話會像“狼來了” 一樣沒有效果。