項(xiàng)目預(yù)算怎么做
合理的預(yù)算是軟件項(xiàng)目成功的必要條件,預(yù)算過(guò)低不足以保障項(xiàng)目成功,有可能因?yàn)橘Y源匱乏導(dǎo)致項(xiàng)目早產(chǎn)或夭折。而預(yù)算過(guò)高又有可能導(dǎo)致審批不能通過(guò),致使項(xiàng)目擱淺,亦或造成資源浪費(fèi)。那么如何才能作出合理的項(xiàng)目預(yù)算呢?
一、合理的預(yù)算建立在對(duì)項(xiàng)目全局特別是項(xiàng)目需求的準(zhǔn)確把握的基礎(chǔ)之上
軟件項(xiàng)目規(guī)劃的重點(diǎn)是對(duì)人員角色、任務(wù)進(jìn)度、經(jīng)費(fèi)、設(shè)備資源、工作成果等等做出合適的安排,制定出計(jì)劃,使大家按照計(jì)劃行事,最終順利地達(dá)到預(yù)定目標(biāo)。
要做預(yù)算先要對(duì)軟件項(xiàng)目的規(guī)模有一個(gè)預(yù)估。軟件需求和估算是軟件項(xiàng)目的基礎(chǔ)。因?yàn)橹挥袦?zhǔn)確的了解客戶的需求,以此為基礎(chǔ),使用科學(xué)的方法對(duì)目標(biāo)軟件系統(tǒng)的規(guī)模、工作量和進(jìn)度做出合理的估算,我們才能在預(yù)算內(nèi)按時(shí)按質(zhì)順利的完成項(xiàng)目。
首先要確定軟件范圍,就是確定目標(biāo)軟件的數(shù)據(jù)和控制、功能、性能、約束、接口以及可靠性。這項(xiàng)工作和需求分析是很類似的,如果之前已經(jīng)達(dá)成需求分析規(guī)約,那么可以直接從《需求分析說(shuō)明書(shū)》中把有用的部分拿來(lái)使用。如果還沒(méi)有開(kāi)始需求分析,關(guān)于確定軟件范圍的方法方面,我們可以采用許多需求分析技術(shù)(如需求誘導(dǎo)),從客戶那里得到一個(gè)具體的軟件范圍。當(dāng)然如果是一次全新的軟件邊界探索,就應(yīng)當(dāng)考慮軟件本身可行性問(wèn)題,包括團(tuán)隊(duì)是否具備在技術(shù)、財(cái)務(wù)、時(shí)間、資源上游可靠的保障,軟件本身在市場(chǎng)上是否有可靠的競(jìng)爭(zhēng)優(yōu)勢(shì)等等。
接下來(lái)需要確定工作資源。軟件工作所需資源包括:工作環(huán)境(軟硬件環(huán)境、辦公室環(huán)境)、可復(fù)用軟件資源(構(gòu)件、中間件)、人力資源(包括不同各種角色的人員:分析師、設(shè)計(jì)師、測(cè)試師、程序員、項(xiàng)目經(jīng)理……)。這三種資源的組成比例,可以看作一個(gè)金字塔的模式,最上面是人力資源、其次是可復(fù)用軟件資源、最下面是工作環(huán)境。最上面的是組成比例最小的,最下面的是組成比例最大的部分。
人力資源
一個(gè)項(xiàng)目到底需要多少種職務(wù)的人員構(gòu)成、多少數(shù)量的人員總量,才能成為最有創(chuàng)造力的團(tuán)隊(duì)呢?這恐怕是最讓項(xiàng)目經(jīng)理頭疼的事情了。任何一個(gè)軟件工程,都必須在確定軟件的工作量之后,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任務(wù)。
可復(fù)用軟件資源
這是一個(gè)容易在計(jì)劃階段被忽視的重要資源,很多人總是進(jìn)入編碼階段才發(fā)現(xiàn)可復(fù)用資源的價(jià)值和存在。經(jīng)過(guò)長(zhǎng)期的項(xiàng)目積累或是購(gòu)買,公司的軟件資源庫(kù)中或許已經(jīng)積累了大量的可復(fù)用資源,但在當(dāng)前任務(wù)中,只能選擇有價(jià)值的資源。根據(jù)不同的應(yīng)用、時(shí)間、來(lái)源,可復(fù)用軟件資源被分為以下幾種:
可直接使用的構(gòu)件:已有的,能夠從第三方廠商獲得或已經(jīng)在以前的項(xiàng)目中開(kāi)發(fā)過(guò)的軟件。這些構(gòu)件已經(jīng)經(jīng)過(guò)驗(yàn)證及確認(rèn)且可以直接用在當(dāng)前的項(xiàng)目中。
具有完全經(jīng)驗(yàn)的構(gòu)件:已有的為以前類似于當(dāng)前要開(kāi)發(fā)的項(xiàng)目建立的規(guī)約、設(shè)計(jì)、代碼、或測(cè)試數(shù)據(jù)。當(dāng)前軟件項(xiàng)目組的成員在這些構(gòu)件所代表的應(yīng)用領(lǐng)域中具有豐富的經(jīng)驗(yàn)。因此,對(duì)于這類構(gòu)件進(jìn)行所需的修改其風(fēng)險(xiǎn)相對(duì)較小。
具有部分經(jīng)驗(yàn)的構(gòu)件:已有的為以前與當(dāng)前要開(kāi)發(fā)的項(xiàng)目相關(guān)的項(xiàng)目建立的規(guī)約、設(shè)計(jì)、代碼、或測(cè)試數(shù)據(jù),但需做實(shí)質(zhì)上的修改。當(dāng)前軟件項(xiàng)目組的成員在這些構(gòu)件所代表的應(yīng)用領(lǐng)域中僅有有限的經(jīng)驗(yàn),因此,對(duì)于這類構(gòu)件進(jìn)行所需的修改會(huì)有相當(dāng)程度的風(fēng)險(xiǎn)。
新構(gòu)件:軟件項(xiàng)目組為滿足當(dāng)前項(xiàng)目的特定需要而必須專門開(kāi)發(fā)的軟件構(gòu)件。
在采用構(gòu)件的時(shí)候,應(yīng)當(dāng)以低成本、低風(fēng)險(xiǎn)為使用前提。如果任何一個(gè)漂亮的構(gòu)件的應(yīng)用,可能會(huì)帶來(lái)潛在出錯(cuò)的風(fēng)險(xiǎn)或者必須經(jīng)過(guò)復(fù)雜修改或者效率低下時(shí),我們都應(yīng)當(dāng)毫不猶豫地把它拋棄。我們只采用那些能夠滿足項(xiàng)目的需要且可直接使用的構(gòu)件,或者具有完全經(jīng)驗(yàn)的構(gòu)件,或者經(jīng)過(guò)稍微修改便可使用的構(gòu)件。
環(huán)境資源
“工欲善其事,必先利其器”,要得到高效的開(kāi)發(fā)過(guò)程,就必須向工作人員提供良好的軟硬件環(huán)境,包括開(kāi)發(fā)工具、開(kāi)發(fā)設(shè)備、工作環(huán)境、管理制度。一般管理人員都會(huì)購(gòu)買可以滿足需要的軟件開(kāi)發(fā)工具和硬件平臺(tái),但是工作環(huán)境和管理制度往往被忽視。
向工作人員提供更輕松自在、安靜舒適的辦公環(huán)境的公司員工往往比整天在狹小隔間中工作的'公司員工,產(chǎn)生更高的工作效率。而那些擁有靈活人性化的管理制度的公司,比整天加班的公司更能留住高技術(shù)的人才。所以如何在有限資金中,規(guī)劃一個(gè)合理的環(huán)境是很重要的事情。
到此為止,項(xiàng)目規(guī)模預(yù)估工作已經(jīng)完成,已形成一個(gè)工程開(kāi)發(fā)框架。這是一個(gè)有界限的框架,雖然還不夠精確,但足以進(jìn)行相對(duì)合理的預(yù)算。
二、合理的預(yù)算基于科學(xué)的預(yù)算方法與工具
由于軟件項(xiàng)目的復(fù)雜性、多變性,要做出合理的預(yù)算不可能依賴歷史或者個(gè)人經(jīng)驗(yàn)。要作出合理的預(yù)算,首先要保證估算的相對(duì)準(zhǔn)確性。一般來(lái)說(shuō),依靠歷史或個(gè)人經(jīng)驗(yàn)的規(guī)模估算方法都有一定的局限性。原因是很難在項(xiàng)目分析和計(jì)劃階段就對(duì)軟件的規(guī)模進(jìn)行相對(duì)準(zhǔn)確的估算。因?yàn)楣浪闶且揽吭u(píng)估人員的經(jīng)驗(yàn),所以對(duì)評(píng)估人員的能力要求比較強(qiáng),并且難以由第三方對(duì)評(píng)估人員的工作偏差作出修正。另外,不同軟件項(xiàng)目使用的技術(shù)不一樣,這一點(diǎn)也非常影響到軟件規(guī)模的估算。例如同一個(gè)功能,使用JAVA語(yǔ)言和使用Ruby語(yǔ)言所涉及的代碼行相差數(shù)十行,甚至數(shù)百行。即使同為JAVA語(yǔ)言,使用不用的框架所需要編寫的代碼行也不一樣。項(xiàng)目管理論壇
估算是建立在客觀事實(shí)上對(duì)未來(lái)可能發(fā)生的事情的一種合理性預(yù)測(cè)。估算本身的不確定性,決定了它不可能是百分之百準(zhǔn)確無(wú)誤的,但是依據(jù)某種方法進(jìn)行合理估計(jì)顯然比瞎猜好得多。軟件估算方法有很多,大致分為基于技術(shù)分解模型和基于經(jīng)驗(yàn)?zāi)P蛢纱箢。目前基于技術(shù)分解模型的方法有:功能點(diǎn)估算法、LOC估算法、MARKII等;基于經(jīng)驗(yàn)?zāi)P偷姆椒ㄓ校篒BM模型、普特南模型、COCOMO模型等。目前基于技術(shù)分解的常用方法是FP功能點(diǎn)估算法和LOC代碼行估算法。還有許多其它的估算方法。不同的方法適用于不同的具體環(huán)境,有些方法雖然很好但并不一定適合當(dāng)前的任務(wù)。因此,建議至少使用兩種方法進(jìn)行規(guī)模估算,不要依賴于任何一種方法。只有量體裁衣,具體問(wèn)題具體分析,才能得到盡量合理的規(guī)模估算。
三、合理的預(yù)算基于預(yù)算的彈性與韌性
合理的項(xiàng)目預(yù)算應(yīng)該與目標(biāo)計(jì)劃相關(guān)聯(lián),并且需要同時(shí)兼顧質(zhì)量目標(biāo)與進(jìn)度目標(biāo)。而由于需求變更的反復(fù)出現(xiàn)與項(xiàng)目不可控因素的切實(shí)存在,我們?cè)谧鲰?xiàng)目預(yù)算時(shí)必須要保證預(yù)算的切實(shí)可行還要留有一定的彈性空間。另外項(xiàng)目預(yù)算其本質(zhì)上也是一種約束控制機(jī)制。項(xiàng)目管理人員或者高層管理人員可以在不同范圍內(nèi)充分利用這一調(diào)節(jié)工具來(lái)控制項(xiàng)目質(zhì)量與項(xiàng)目進(jìn)度。項(xiàng)目管理者聯(lián)盟文章
四、合理的預(yù)算依賴良好的成本控制與過(guò)程跟蹤
項(xiàng)目預(yù)算強(qiáng)調(diào)選取實(shí)現(xiàn)目標(biāo)的最佳途徑,也就是要對(duì)各種可能的方案進(jìn)行費(fèi)效分析。因?yàn)橐?guī)劃中的失誤是不能通過(guò)其后的計(jì)劃和預(yù)算來(lái)彌補(bǔ)的。所謂費(fèi)效分析,是對(duì)不同方案實(shí)現(xiàn)目標(biāo)的效果和所需的費(fèi)用進(jìn)綜合的對(duì)比分析,然后根據(jù)一定的標(biāo)準(zhǔn)來(lái)選取最佳方案。選擇的標(biāo)準(zhǔn)可能是:以最少的費(fèi)用實(shí)現(xiàn)一個(gè)既定目標(biāo),或以現(xiàn)有的資源實(shí)現(xiàn)最大的效果。因而,項(xiàng)目規(guī)劃階段的成本控制很重要,幾乎起到?jīng)Q定性的作用。
預(yù)算的合理與否更依賴于項(xiàng)目實(shí)施過(guò)程中的成本控制與過(guò)程跟蹤。無(wú)論項(xiàng)目前期作了如何完美準(zhǔn)確的預(yù)算,項(xiàng)目實(shí)施過(guò)程中如果缺乏有效地監(jiān)控,所有的付出將都?xì)в谝坏。?xiàng)目實(shí)施過(guò)程中需要監(jiān)控的對(duì)象有范圍、成本、進(jìn)度、資源、質(zhì)量和風(fēng)險(xiǎn),在此不作贅述。
【項(xiàng)目預(yù)算怎么做】相關(guān)文章: