專案預算怎麼做

才智咖 人氣:2.8W

合理的預算是軟體專案成功的必要條件,預算過低不足以保障專案成功,有可能因為資源匱乏導致專案早產或夭折。而預算過高又有可能導致審批不能通過,致使專案擱淺,亦或造成資源浪費。那麼如何才能作出合理的專案預算呢?

專案預算怎麼做

一、合理的預算建立在對專案全域性特別是專案需求的準確把握的基礎之上

軟體專案規劃的重點是對人員角色、任務進度、經費、裝置資源、工作成果等等做出合適的安排,制定出計劃,使大家按照計劃行事,最終順利地達到預定目標。

要做預算先要對軟體專案的規模有一個預估。軟體需求和估算是軟體專案的基礎。因為只有準確的瞭解客戶的需求,以此為基礎,使用科學的方法對目標軟體系統的規模、工作量和進度做出合理的估算,我們才能在預算內按時按質順利的完成專案。

首先要確定軟體範圍,就是確定目標軟體的資料和控制、功能、效能、約束、介面以及可靠性。這項工作和需求分析是很類似的,如果之前已經達成需求分析規約,那麼可以直接從《需求分析說明書》中把有用的部分拿來使用。如果還沒有開始需求分析,關於確定軟體範圍的方法方面,我們可以採用許多需求分析技術(如需求誘導),從客戶那裡得到一個具體的軟體範圍。當然如果是一次全新的軟體邊界探索,就應當考慮軟體本身可行性問題,包括團隊是否具備在技術、財務、時間、資源上游可靠的保障,軟體本身在市場上是否有可靠的競爭優勢等等。

接下來需要確定工作資源。軟體工作所需資源包括:工作環境(軟硬體環境、辦公室環境)、可複用軟體資源(構件、中介軟體)、人力資源(包括不同各種角色的人員:分析師、設計師、測試師、程式設計師、專案經理……)。這三種資源的組成比例,可以看作一個金字塔的模式,最上面是人力資源、其次是可複用軟體資源、最下面是工作環境。最上面的是組成比例最小的,最下面的是組成比例最大的部分。

人力資源

一個專案到底需要多少種職務的人員構成、多少數量的人員總量,才能成為最有創造力的團隊呢?這恐怕是最讓專案經理頭疼的事情了。任何一個軟體工程,都必須在確定軟體的工作量之後,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任務。

可複用軟體資源

這是一個容易在計劃階段被忽視的重要資源,很多人總是進入編碼階段才發現可複用資源的價值和存在。經過長期的專案積累或是購買,公司的軟體資源庫中或許已經積累了大量的可複用資源,但在當前任務中,只能選擇有價值的資源。根據不同的應用、時間、來源,可複用軟體資源被分為以下幾種:

可直接使用的構件:已有的,能夠從第三方廠商獲得或已經在以前的專案中開發過的軟體。這些構件已經經過驗證及確認且可以直接用在當前的專案中。

具有完全經驗的構件:已有的為以前類似於當前要開發的專案建立的規約、設計、程式碼、或測試資料。當前軟體專案組的成員在這些構件所代表的應用領域中具有豐富的經驗。因此,對於這類構件進行所需的修改其風險相對較小。

具有部分經驗的構件:已有的為以前與當前要開發的專案相關的專案建立的規約、設計、程式碼、或測試資料,但需做實質上的修改。當前軟體專案組的成員在這些構件所代表的應用領域中僅有有限的經驗,因此,對於這類構件進行所需的修改會有相當程度的風險。

新構件:軟體專案組為滿足當前專案的特定需要而必須專門開發的軟體構件。

在採用構件的時候,應當以低成本、低風險為使用前提。如果任何一個漂亮的構件的應用,可能會帶來潛在出錯的風險或者必須經過複雜修改或者效率低下時,我們都應當毫不猶豫地把它拋棄。我們只採用那些能夠滿足專案的需要且可直接使用的構件,或者具有完全經驗的構件,或者經過稍微修改便可使用的構件。

環境資源

“工欲善其事,必先利其器”,要得到高效的開發過程,就必須向工作人員提供良好的軟硬體環境,包括開發工具、開發裝置、工作環境、管理制度。一般管理人員都會購買可以滿足需要的軟體開發工具和硬體平臺,但是工作環境和管理制度往往被忽視。

向工作人員提供更輕鬆自在、安靜舒適的辦公環境的公司員工往往比整天在狹小隔間中工作的'公司員工,產生更高的工作效率。而那些擁有靈活人性化的管理制度的公司,比整天加班的公司更能留住高技術的人才。所以如何在有限資金中,規劃一個合理的環境是很重要的事情。

到此為止,專案規模預估工作已經完成,已形成一個工程開發框架。這是一個有界限的框架,雖然還不夠精確,但足以進行相對合理的預算。

二、合理的預算基於科學的預算方法與工具

由於軟體專案的複雜性、多變性,要做出合理的預算不可能依賴歷史或者個人經驗。要作出合理的預算,首先要保證估算的相對準確性。一般來說,依靠歷史或個人經驗的規模估算方法都有一定的侷限性。原因是很難在專案分析和計劃階段就對軟體的規模進行相對準確的估算。因為估算是依靠評估人員的經驗,所以對評估人員的能力要求比較強,並且難以由第三方對評估人員的工作偏差作出修正。另外,不同軟體專案使用的技術不一樣,這一點也非常影響到軟體規模的估算。例如同一個功能,使用JAVA語言和使用Ruby語言所涉及的程式碼行相差數十行,甚至數百行。即使同為JAVA語言,使用不用的框架所需要編寫的程式碼行也不一樣。專案管理論壇

估算是建立在客觀事實上對未來可能發生的事情的一種合理性預測。估算本身的不確定性,決定了它不可能是百分之百準確無誤的,但是依據某種方法進行合理估計顯然比瞎猜好得多。軟體估算方法有很多,大致分為基於技術分解模型和基於經驗模型兩大類。目前基於技術分解模型的方法有:功能點估演算法、LOC估演算法、MARKII等;基於經驗模型的方法有:IBM模型、普特南模型、COCOMO模型等。目前基於技術分解的常用方法是FP功能點估演算法和LOC程式碼行估演算法。還有許多其它的估算方法。不同的方法適用於不同的具體環境,有些方法雖然很好但並不一定適合當前的任務。因此,建議至少使用兩種方法進行規模估算,不要依賴於任何一種方法。只有量體裁衣,具體問題具體分析,才能得到儘量合理的規模估算。

三、合理的預算基於預算的彈性與韌性

合理的專案預算應該與目標計劃相關聯,並且需要同時兼顧質量目標與進度目標。而由於需求變更的反覆出現與專案不可控因素的切實存在,我們在做專案預算時必須要保證預算的切實可行還要留有一定的彈性空間。另外專案預算其本質上也是一種約束控制機制。專案管理人員或者高層管理人員可以在不同範圍內充分利用這一調節工具來控制專案質量與專案進度。專案管理者聯盟文章

四、合理的預算依賴良好的成本控制與過程跟蹤

專案預算強調選取實現目標的最佳途徑,也就是要對各種可能的方案進行費效分析。因為規劃中的失誤是不能通過其後的計劃和預算來彌補的。所謂費效分析,是對不同方案實現目標的效果和所需的費用進綜合的對比分析,然後根據一定的標準來選取最佳方案。選擇的標準可能是:以最少的費用實現一個既定目標,或以現有的資源實現最大的效果。因而,專案規劃階段的成本控制很重要,幾乎起到決定性的作用。

預算的合理與否更依賴於專案實施過程中的成本控制與過程跟蹤。無論專案前期作了如何完美準確的預算,專案實施過程中如果缺乏有效地監控,所有的付出將都毀於一旦。專案實施過程中需要監控的物件有範圍、成本、進度、資源、質量和風險,在此不作贅述。

TAGS:預算 專案