
成本管理 是軟件項目管理的主要內容之一,分析了目前軟件開發成本管理過程中存在的問題,提出了將進度和成本聯系起來考慮,使工作量和實際成本匹配的方法。結合現有的估算方法,設計成本管理系統并將其應用于軟件項目管理 平臺 中,旨在改善軟件開發中成本超支的現象,為企業提高效益。
關鍵詞 軟件項目管理平臺 成本估算 成本控制
--------------------------------------------------------------------------------
隨著信息技術的飛速發展,軟件產業在國民經濟中扮演著越來越重要的角色。對軟件開發實施有效的管理是決定軟件產業發展的至關重要的因素。在軟件項目的開發過程中,項目管理日益受到人們的關注。軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、 風險 等進行分析和管理的活動。成本管理是軟件項目管理的一個主要內容,就目前發展來看,成本管理是軟件項目管理中一個比較薄弱的方面,許多軟件項目由于成本管理不善,造成了軟件造價的成本上升,軟件質量得不到保證。針對這些現象,文章提出了一種新的成本管理方法,并將其應用于正在研究中的課題 -- 軟件項目管理平臺的開發當中,以便于開發有效的軟件 項目管理工具 ,為企業節約成本,提高經濟效益。
1 成本管理概述
項目成本管理包括確保在批準的預算范圍內完成項目所需的各個過程 [1] 。軟件項目成本的管理基本上可以用估算和控制來概括,首先對軟件的成本進行估算,然后形成成本管理計劃,在軟件項目開發過程中,對軟件項目施加控制使其按照計劃進行。成本管理計劃是成本控制的 標準 ,不合理的計劃可能使項目失去控制,超出預算。因此成本估算是整個成本管理過程中的基礎,成本控制是使項目的成本在開發過程中控制在預算范圍之內。
1.1 成本管理的過程
軟件項目成本管理就是根據企業的情況和項目的具體要求,利用公司既定的 資源 ,在保證項目的進度、質量達到客戶滿意的情況下,對軟件項目成本進行有效的組織、實施、控制、跟蹤、分析和考核等一系列管理活動,最大限度地降低項目成本,提高項目利潤。
成本管理的過程包括 [1] :
· 資源計劃,包括決定為實施項目活動需要使用什么資源(人員、設備和物資)以及每種資源的用量。其主要輸出是一個資源需求清單。
· 成本估算,包括估計完成項目所需資源成本的近似值。其主要輸出是成本管理計劃。
· 成本預算,包括將整個成本估算配置到各單項工作,以建立一個衡量績效的基準計劃。其主要輸出是成本基準計劃。
· 成本控制,包括控制項目預算的變化。其主要輸出修正的成本估算、更新預算、糾正行動和取得的教訓。
1.2 軟件開發成本管理過程中的主要問題
( 1 ) 項目成本預算和估算的準確度差。
由于客戶的需求不斷變化,使得工作內容和工作量不斷變化。一旦發生變化, 項目經理 就追加項目預算,預算頻頻變更,等到項目結束時,實際成本和初始計劃偏離很大。
此外,項目預算往往會走兩個極端:過粗和過細。預算過粗會使項目費用的隨意性較大,準確度降低;預算過細會使項目控制的內容過多,彈性差,變化不靈活,管理成本加大。
( 2 ) 缺乏對軟件成本事先估計的有效控制。
在開發初期,對成本不夠關心,忽略對成本的控制,只有在項目進行到后期,實際遠離計劃出現偏差的時候,才進行成本控制,這樣往往導致項目超出預算。
( 3 ) 缺乏成本績效的分析和跟蹤。
傳統的項目成本管理中,將預算和實際進行數值對比,但很少有將預算、實際成本和工作量進度聯系起來,考慮實際成本和工作量是否匹配的問題。
1.3 成本管理方法的改進
目前常用的軟件項目管理工具都側重于某一方面的功能,如 微軟 的 Project2000 側重管理、規劃任務,并在項目執行過程中跟蹤這些任務,偏向于進度安排與跟蹤控制; RUP 側重于用戶需求的描述; PVCS 側重于軟件變更管理。這些軟件項目管理工具都在不斷的完善其功能,雖然也有成本管理的功能,但總的來說大多數都不能用來進行軟件成本估計,缺乏事先成本控制,不能和估計數據自動化協調,不能自動化地利用歷史數據庫中的數據。當前的項目管理工具并不能滿足成本管理的需要。
針對以上成本管理過程中出現的問題,以及目前軟件項目管理工具的不足,文章提出了一種改進的管理方法,將進度和成本聯系起來考慮使工作量和實際成本匹配的方法。并且結合已有的成本估算方法,同時將過程數據庫引入到軟件項目管理中,給出成本管理系統的原型設計。系統采用先進的估算方法解決了成本估算準確度差的問題,工作量和實際成本匹配的方法進行成本的績效分析和跟蹤使得項目成本能夠控制在預算范圍之內。
2 成本管理系統的設計
2.1 系統總體設計
雖然目前已有不少項目管理軟件,但一般只是管理軟件進度和跟蹤監督,和軟件估算是項目獨立的,而且目前還沒有成型的軟件項目成本管理軟件,我們以 為指南,研究軟件開發過程中的特殊性,結合現有的軟件成本估算技術和一般行業的項目管理技術,以進度、人員、成本,變更為中心,提出了軟件成本管理的具體實施方案。并以此為基礎對系統的功能進行分析和設計。
2.2 系統功能設計
( 1 )成本估算是項目成本管理的一個非常重要的部分,精確的軟件成本估算是進行有效的軟件管理的一個必不可少的組成部分。常用的軟件估算方法有:算法模型法、專家判定法、類比估算法等,這些方法各有優缺點。本文采用文獻 [2] 中提到的方法,即將各方法結合起來,互相取長補短,由層次分析法得到各種估算法的權重,再由權重合成法得到估算成本。它可以提高軟件成本估算的精確度。
定義 設 f1 , f2 , ┅ , fm 為 m 個不同模型所得的估算值, wi ( i=1 , 2 , ┅ , m )為第 i 個模型的權重,則
f = 且
即為權重組合估算模型。
假設用 COCOMO 模型 [3] 估算成本為 MM1 , TDEV1 ,用 Delphi 技術估算成本為 MM2 , TDEV2 ,用類比估算法估算成本為 MM3 , TDEV3 ,則由權重組合估算得:
MM = w 1MM 1 + w 2MM 2 + w 3MM 3
TDEV = w1 TDEV1 + w2 TDEV2 + w3 TDEV3
這里 MM 是軟件開發需要的人月數, TDEV 是軟件開發周期。
( 2 )預算變更管理可以記錄每一次資源和成本的變化,保持完整的有注釋的歷史記錄。
( 3 )成本基準計劃是成本控制得標準。即使最好的項目經理采用最優的成本估算方法,也 不可能使預算和實際成本完全一致。因此,項目成本估算應該預留總成本的 5% - 10% 作為不可預見的成本,用于應急項目成本,在成本估算和預算之上。成本控制的基準是項目管理人員根據項目的具體情況確定允許的偏差范圍。在一個項目的進行中,成本基準計劃并非一成不變的,而是隨著用戶的需求變化,項目的變更請求基準計劃可能會得到不斷的校正。
( 4 )進度計劃分為控制計劃和執行計劃,允許用戶實時查詢進度計劃以及實際進度狀態。成本估算通常與工作量聯系起來考慮,成本的跟蹤控制過程也是進度計劃的執行與調整的過程。
( 5 )成本控制是根據成本基準計劃來控制項目預算的變化,成本控制過程的主要輸出是修正的成本估算、更新預算、糾正行動、完工估算和取得的教訓。成本績效分析和跟蹤將預算和實際進行數值對比,將預算成本、實際成本和工作量進度聯系起來,考慮實際成本和工作量是否匹配。系統解決實際成本和工作量匹配的方案如圖 2 。如果實際成本和實際進度不匹配則重新調整計劃,采取必要的措施防止項目成本失去控制。
( 6 )過程數據庫存放項目的成本管理過程的歷史數據,它由已完成項目的數據構成。這些數據可用于成本估算,成本計劃,績效分析等方面。它除了為進行新的項目成本計劃提供依據,也可以為進行中的項目提供實時的過程數據。在項目初始基準計劃制定時期,以過去類似項目的歷史過程度量數據為經驗,制定基準計劃,執行計劃。將本次項目開發執行過程的過程度量數據存入數據庫,作為下一次開發計劃制定的經驗數據。這樣,計劃的制定越來越接近實際。
3 結論
該文討論了目前已經有的一些軟件項目管理系統的不足,不能把預算、工作量和實際進度聯系起來考慮做到有效的成本管理,本文提出了改進的成本管理方法,可以對成本管理進行準確的估算、有效的控制,并且給出了系統的設計。但由于軟件項目管理本身的復雜性,雖然本文所提出的方法有助于成本管理中估算與控制問題的解決,但仍然不可能做到非常好,如果能將成本和進度、質量聯系起來取得三者之間的平衡,勢必對軟件企業的項目管理有很大的實用價值。