軟件項(xiàng)目之預(yù)算評(píng)估三把刀
發(fā)布時(shí)間:2023/4/21 9:36:00
一、使用完善的評(píng)估方法的重要性。
一般情況下,軟件項(xiàng)目會(huì)受到四種因素的控制,它們分別是時(shí)間、需求、資源(包括人員、硬件條件以及資金)和風(fēng)險(xiǎn)。這些因素的任何意料之外的變化都會(huì)對(duì)我們的項(xiàng)目產(chǎn)生影響。因此,做好時(shí)間和項(xiàng)目資源需求的評(píng)估是非常必要的。如果過低估計(jì)項(xiàng)目預(yù)算,會(huì)由于缺乏項(xiàng)目實(shí)施時(shí)間、資金、硬件條件或是沒有足夠的人來完成等原因?qū)е路浅?yán)重的后果。但如果過高地估計(jì)項(xiàng)目需求預(yù)算,也會(huì)因?yàn)槌杀咎呤蛊髽I(yè)付出很大的代價(jià),最后這個(gè)項(xiàng)目可能會(huì)被擱淺,就算項(xiàng)目被批準(zhǔn)實(shí)施,也會(huì)由于此項(xiàng)目占用大量的資源而使其它的項(xiàng)目由于得不到足夠的資源來呈現(xiàn)“饑餓”狀態(tài)。
從我的經(jīng)驗(yàn)來看,對(duì)一個(gè)項(xiàng)目做時(shí)間和所需資源的預(yù)算評(píng)估通常對(duì)于大多數(shù)團(tuán)隊(duì)和項(xiàng)目經(jīng)理是一個(gè)非常大的挑戰(zhàn)。形成挑戰(zhàn)的原因有很多,如它們對(duì)預(yù)算評(píng)估沒有足夠的經(jīng)驗(yàn)、對(duì)評(píng)估技術(shù)或所涉及的商業(yè)領(lǐng)域缺乏了解,需求不清楚等。盡管負(fù)責(zé)項(xiàng)目預(yù)算評(píng)估的經(jīng)理已經(jīng)嘗試了使用最好的方法來處理需求及各方的關(guān)系問題,但由于以上的原因,不可避免地導(dǎo)至整個(gè)團(tuán)隊(duì)由于評(píng)估失誤而超過預(yù)算,或是項(xiàng)目失敗。還有另外一種評(píng)估預(yù)算的方法,就是使用高度樂觀的方法進(jìn)行評(píng)估,而忽略我們需要處理的具體項(xiàng)目。那么我們到底該怎么做呢?
二、實(shí)用的預(yù)算評(píng)估技術(shù)。
在我們開始研究預(yù)算評(píng)估之前,需要對(duì)我們能提供的預(yù)算評(píng)估類型有一個(gè)初步的認(rèn)識(shí)。預(yù)算評(píng)估可以被簡單地分為下面三種類型:1. 宏觀預(yù)算評(píng)估;這種評(píng)估方式將根據(jù)項(xiàng)目的宏觀輪廓進(jìn)行一個(gè)總體的估計(jì)。這種估計(jì)是非常粗略的。在理想狀態(tài)下,所評(píng)估出來的值應(yīng)該是實(shí)際值的兩倍至三倍。2. 粗略預(yù)算評(píng)估;用這種評(píng)估方式評(píng)估出來的數(shù)據(jù)已經(jīng)非常接近實(shí)際值了。在理想狀態(tài)下,評(píng)估出來的值應(yīng)該是實(shí)際值的50%至100%。3. 精確預(yù)算評(píng)估;這是一種非常好的預(yù)算評(píng)估主要。在理想狀態(tài)下,所評(píng)估出來的值應(yīng)該是實(shí)際值的25%至50%。
決定使用這三種不同預(yù)算評(píng)估類型中的哪一種是十分重要的。當(dāng)我們對(duì)需要做的項(xiàng)目背景和業(yè)務(wù)非常熟悉,并且類似的項(xiàng)目已經(jīng)做過很多次的情況下,使用精確評(píng)估是可行的。當(dāng)我們正在做系統(tǒng)維護(hù)工作時(shí),所能遇到的問題是已知的,或是增加一個(gè)我們?cè)?jīng)做過的功能時(shí),這種預(yù)算評(píng)估是允許的。粗略評(píng)估是在我們對(duì)需求比較熟悉的,以及對(duì)相關(guān)領(lǐng)域和技術(shù)熟悉的情況下采用的。而在所有其他的情況下,最好的預(yù)算評(píng)估方法就是宏觀預(yù)算評(píng)估。也許有很多人固執(zhí)地認(rèn)為宏觀預(yù)算評(píng)估的結(jié)果幾乎等于沒做任何評(píng)估!但這種評(píng)估的結(jié)果實(shí)際上是非常價(jià)值的,因?yàn)檫@些評(píng)估結(jié)果可以給企業(yè)和項(xiàng)目街頭團(tuán)隊(duì)一些關(guān)于正在進(jìn)行的項(xiàng)目需要些什么,其中包括時(shí)間、資源和資金。使用這種方法我們至少知道某個(gè)項(xiàng)目需要兩到六個(gè)月的時(shí)間來完成。如果不進(jìn)行評(píng)估,也許我們根據(jù)就不知道項(xiàng)目需要多少時(shí)間來完成。根據(jù)評(píng)估結(jié)果,我們可以根據(jù)需要對(duì)某些重要的項(xiàng)目進(jìn)行更細(xì)致的預(yù)算評(píng)估。例如,我們可以為我們需要的基礎(chǔ)構(gòu)架提供一個(gè)精略評(píng)估,而不僅僅是一個(gè)關(guān)于人員和時(shí)間的宏觀預(yù)算評(píng)估結(jié)果。
三、如何進(jìn)行宏觀預(yù)算評(píng)估。
當(dāng)我們開始個(gè)全新的項(xiàng)目時(shí),所面對(duì)最多的就是這種預(yù)算評(píng)估方式。新的技術(shù)、對(duì)領(lǐng)域知識(shí)和技術(shù)不熟悉的團(tuán)隊(duì),或是對(duì)需求不清楚。而對(duì)付這些情況最好的預(yù)算評(píng)估方式就是宏觀預(yù)算評(píng)估。
1.打破項(xiàng)目是由許多不同需要的任務(wù)組成的束縛。嘗試著為項(xiàng)目盡可能地增加任務(wù)。典型的做法是按著設(shè)計(jì)和實(shí)現(xiàn)軟件的一般方法來提取出新任務(wù),如分析、設(shè)計(jì)、實(shí)現(xiàn)、演示、測(cè)試、bug核對(duì)、文檔、發(fā)布以及技術(shù)支持等,看看如果這些步驟在每個(gè)任務(wù)中都要求去做,那么就可以考慮將它們提出來做為一個(gè)新的任務(wù)。
2.使用兩個(gè)指標(biāo)來評(píng)估每一個(gè)任務(wù):復(fù)雜度(分為高、中、低三個(gè)檔次)和工作量(分為大、中、小三個(gè)檔次)。一個(gè)并不復(fù)雜的任務(wù)仍然可能是一個(gè)工作量很大的任務(wù)。例如,將paper form上的信息保存在數(shù)據(jù)庫中可能需要數(shù)周的時(shí)間。一個(gè)非常復(fù)雜的的任務(wù)的工作量也可能不大,但仍然需要花很多時(shí)間來完成,例如對(duì)一個(gè)數(shù)據(jù)庫的性能優(yōu)化。對(duì)于復(fù)雜的任務(wù),一般當(dāng)其非常大時(shí),拆分成小的任務(wù)后分配到許多人或團(tuán)隊(duì)時(shí)是非常困難的。而簡單的任務(wù)就很容易地被分拆和分配。
3.有效地評(píng)估任務(wù)所需的時(shí)間。對(duì)于最后形成的任務(wù),需要定義它們所需的時(shí)間和資源。例如,我們可以設(shè)置低復(fù)雜度和工作量少的任務(wù)需要最多需要一周的時(shí)間,而中等復(fù)雜度和小工作時(shí)的任務(wù)需要三周的時(shí)間等等。這些量化后的指標(biāo)和基于團(tuán)隊(duì)和項(xiàng)目的指標(biāo)不同,這此指標(biāo)和數(shù)據(jù)將在下一次評(píng)估時(shí)幫助我們獲得更好的效果。
四、如何進(jìn)行粗略預(yù)算評(píng)估。
當(dāng)我們對(duì)項(xiàng)目的任務(wù)有了一個(gè)好的想法,并知道如何去做的情況下,可以使用這種預(yù)算評(píng)估。1. 最好讓實(shí)際參與項(xiàng)目的人來進(jìn)行這種評(píng)估工作。最后可以將這些參與評(píng)估的人的評(píng)估結(jié)果累加,從而得到最終的預(yù)算評(píng)估。2. 確保評(píng)估函數(shù)的自變量為:時(shí)間、人員和資源需求。3. 對(duì)分拆后的任務(wù)盡可能地考慮到它們的細(xì)節(jié)部分。在上面曾經(jīng)提到過。按著典型的軟件設(shè)計(jì)和實(shí)現(xiàn)軌跡,如分析、設(shè)計(jì)、實(shí)現(xiàn)、演示、測(cè)試、bug核對(duì)、文檔、發(fā)布以及技術(shù)支持,并考慮這些任務(wù)是否為每個(gè)任務(wù)都需要的,對(duì)做這項(xiàng)工作是非常必要的。我們應(yīng)保證每個(gè)時(shí)間單位為八十小時(shí)或更少的時(shí)間。
五、小結(jié)。
本文所討論的技術(shù)可以幫助我們更出色地完成預(yù)算評(píng)估工作。將評(píng)估所得出的數(shù)據(jù)和項(xiàng)目實(shí)際需求數(shù)據(jù)進(jìn)行對(duì)比。鑒別什么是正確的,什么是錯(cuò)誤的。將幫助我們改善下次評(píng)估的結(jié)果。隨著我們從事更多的預(yù)算評(píng)估工作,我們的經(jīng)驗(yàn)將會(huì)有更顯著的增加!