一、使用完善的評估方法的重要性
一般情況下,軟件項目會受到四種因素的控制,它們分別是時間、需求、資源(包括人員、硬件條件以及資金)和風險。這些因素的任何意料之外的變化都會對我們的項目產生影響。因此,做好時間和項目資源需求的評估是非常必要的。如果過低估計項目預算,會由于缺乏項目實施時間、資金、硬件條件或是沒有足夠的人來完成等原因導致非常嚴重的后果。但如果過高地估計項目需求預算,也會因為成本太高使企業(yè)付出很大的代價,最后這個項目可能會被擱淺,就算項目被批準實施,也會由于此項目占用大量的資源而使其它的項目由于得不到足夠的資源來呈現(xiàn)“饑餓”狀態(tài)。
從我的經驗來看,對一個項目做時間和所需資源的預算評估通常對于大多數(shù)團隊和項目經理是一個非常大的挑戰(zhàn)。形成挑戰(zhàn)的原因有很多,如它們對預算評估沒有足夠的經驗、對評估技術或所涉及的商業(yè)領域缺乏了解,需求不清楚等。盡管負責項目預算評估的經理已經嘗試了使用最好的方法來處理需求及各方的關系問題,但由于以上的原因,不可避免地導至整個團隊由于評估失誤而超過預算,或是項目失敗。還有另外一種評估預算的方法,就是使用高度樂觀的方法進行評估,而忽略我們需要處理的具體項目。那么我們到底該怎么做呢?
二、實用的預算評估技術
在我們開始研究預算評估之前,需要對我們能提供的預算評估類型有一個初步的認識。預算評估可以被簡單地分為下面三種類型:
1. 宏觀預算評估:這種評估方式將根據(jù)項目的宏觀輪廓進行一個總體的估計。這種估計是非常粗略的。在理想狀態(tài)下,所評估出來的值應該是實際值的兩倍至三倍。
2. 粗略預算評估:用這種評估方式評估出來的數(shù)據(jù)已經非常接近實際值了。在理想狀態(tài)下,評估出來的值應該是實際值的50%至100%。
3. 精確預算評估:這是一種非常好的預算評估主要。在理想狀態(tài)下,所評估出來的值應該是實際值的25%至50%。
決定使用這三種不同預算評估類型中的哪一種是十分重要的。當我們對需要做的項目背景和業(yè)務非常熟悉,并且類似的項目已經做過很多次的情況下,使用精確評估是可行的。當我們正在做系統(tǒng)維護工作時,所能遇到的問題是已知的,或是增加一個我們曾經做過的功能時,這種預算評估是允許的。粗略評估是在我們對需求比較熟悉的,以及對相關領域和技術熟悉的情況下采用的。而在所有其他的情況下,最好的預算評估方法就是宏觀預算評估。也許有很多人固執(zhí)地認為宏觀預算評估的結果幾乎等于沒做任何評估!但這種評估的結果實際上是非常價值的,因為這些評估結果可以給企業(yè)和項目街頭團隊一些關于正在進行的項目需要些什么,其中包括時間、資源和資金。使用這種方法我們至少知道某個項目需要兩到六個月的時間來完成。如果不進行評估,也許我們根據(jù)就不知道項目需要多少時間來完成。根據(jù)評估結果,我們可以根據(jù)需要對某些重要的項目進行更細致的預算評估。例如,我們可以為我們需要的基礎構架提供一個精略評估,而不僅僅是一個關于人員和時間的宏觀預算評估結果。
三、如何進行宏觀預算評估
當我們開始個全新的項目時,所面對最多的就是這種預算評估方式。新的技術、對領域知識和技術不熟悉的團隊,或是對需求不清楚。而對付這些情況最好的預算評估方式就是宏觀預算評估。
1. 打破項目是由許多不同需要的任務組成的束縛。嘗試著為項目盡可能地增加任務。典型的做法是按著設計和實現(xiàn)軟件的一般方法來提取出新任務,如分析、設計、實現(xiàn)、演示、測試、bug核對、文檔、發(fā)布以及技術支持等,看看如果這些步驟在每個任務中都要求去做,那么就可以考慮將它們提出來做為一個新的任務。
2. 使用兩個指標來評估每一個任務:復雜度(分為高