軟件開發成本管理

軟件開發成本管理

 

  軟件開發成本管理之由時間、質量、成本是決定項目管理成敗的鼎之三足,每個項目都有一個預算,項目成功就包含着要在批准的預算範圍內完成項目。但是很多國內軟件業的項目經理,都會認爲項目經理抓好兩件事即可,一手是時間,一手是質量。而對於開發成本的管理,始終沒有上升到應有的高度,即使在一些CMM/CMMI級別比較高的公司,他們對於項目的開發成本也都沒有做到很好的管理。

    爲什麼出現這樣的情況?究其原因,其一,項目經理這個位置在公司發展中走得是技術路線,成本管理並沒有得到很高的重視。其二,成本管理做起來的確比較麻煩,費時費力,效果也不一定精確可用。很多公司現在如果讓他們說出他們開發人員的生產效率是多少,很少有人可以精確說出;加上現在大多項目組織是矩陣式管理,人員作爲資源在項目組裏流動性比較大,所以大多是一筆糊塗帳。其三,就如上面所說,在中國很多公司中,項目經理並不負責項目的預算部分,這項工作往往由職能部門的經理來擔當,由他負責跟蹤、報告和監控項目的開銷。

  說到這裏,有的朋友可能會反駁了,項目中我控制好時間和質量,成本就控制了。誠然,如果一個項目如果時間和質量控制的合適,成本也大多是較好的,但這是遠遠不夠的。我們經常會看到這樣的情形,從前些年的“工資跟着學歷走,程序員要求碩士以上學歷,而招來的技術專業類博士生卻去做服務”到現在軟件行業已經走出高利潤回報的後時代,公司的項目籤合同或者開發或實施過程中看着好像在盈利,但是到了年底覈算,公司卻是虧損嚴重。或是項目到了中後期,無論怎麼努力,爲了千方百計完成項目,花費都已經無法控制等種種現象,表明成本管理依然是軟件行業項目管理的木桶短板。

軟件開發成本管理之術及實踐

  項目成本管理,就是保證項目在預算內完成的管理。如果用最簡單的話來說,成本管理是回答如下花錢問題的:

  這個項目將花多少錢?

  這個預算合理嗎?依據是什麼?

  這些錢夠花嗎?是否預算考慮了項目風險的因素?

  這些錢花在什麼地方?如何花?何時花?

  如何能保證花錢是在預算之內的?

  這個項目實際花了多少錢?

  如何評估花費?

  這個項目花費的歷史記錄對項目成本管理有何貢獻?

  這些問題,從項目成本管理過程中,分爲如下過程:資源計劃編制、費用估算、費用分配和費用控制階段。當然這四個過程並不是瀑布式的,而是組成了項目成本管理的閉環。

計劃編制

  在進入了資源計劃編制階段之前,一般應完成工作範圍說明書和WBS,在資源計劃的過程中,我們要確定完成項目活動需要使用什麼資源以及多少資源,所以輸出就是項目的資源需求計劃,也就是人、物等資源的需求計劃。過程的輸入除了上面所說的工作範圍說明書和工作分解結構WBS外,一般還會有資源配置庫說明、活動的工期估算,以及公司項目管理庫中的機構政策和歷史信息。在此過程中,常用的技術就是專家判斷方案選擇方法,當然也可以用MicroSoft 的Project、IBM的Rational Portfolio Manager等項目管理軟件來進行,將範圍和時間計劃的甘特圖等關聯資源。

費用估算

  費用估算環節,主要是估算要完成項目活動所需資源將耗用多少費用。在這個環節要得出費用估算值、和費用計劃等文檔。這時我們的輸入,除了上一個過程的輸出資源需求外,還需要WBS,因爲WBS是確定成本估算準確性的關鍵,我們需要爲WBS中列出的每項活動所需的資源做出成本估算。除WBS以外,還需要資源價格或者比較符合實際價格的成本估算出版物、歷史信息,以及考慮風險等情況。資源價格即是資源的單位成本,例如招聘的開發人員、測試人員折算的每小時薪金,用上面得出的該資源需求工時數乘以單位成本,就得出該資源成本估算了,累加這些成本。在此過程中,在確定成本估算時一定要包括項目整個生命期的全部成本,例如項目正式結項前,例如驗收前的全部環節,包括上線測試期成本以及一年的質量擔保期的運行成本等。因爲,項目中通常會承諾用戶在質量擔保期內修復Bug或者解決問題,這些開支要包含在估算中。而且,一定要估算出項目所需的所有資源,包括剛纔說的員工工資、外包合作單位的成本、材料費、設備及硬件、軟件工具等成本或者成本分攤。

  成本估算中,常用的技術包括類別估算,也就是通過一些歷史信息或者類似項目的相關信息,考慮項目異同和風險情況,用類別方式從上而下的估算方法。常用於項目範圍不甚明確的時候,這時估算也相對較粗。在CMM/CMMI4企業中,有了量化管理的依據,我們可以根據真實的歷史項目情況,進行類別估算。

  參數化建模方式將影響成本的因素,進行參數化,將一些代表生產率或者單位成本等數量代入模型運算,就可以從該工作要素中得到整個項目的成本估算。例如我們知道單位人工生產率這些參數,在軟件行業是人日(時)代碼行數等,都是非常重要的進行估算的模型參數。如果影響最終結果的因素,有多個參數,我們還可以爲每個參數分配權值。當然根據不同公司政策和項目情況,我們需要累積這個模型。一般如果公司有PMO組織或者嚴格的過程管理組織話,這個方法也經常使用。

  自下而上估算,與類比估算相反,先從WBS的底層,單獨估算項目中的每項活動,。然後加起來算出總體成本。這是較準確的估算方法,但是也較爲費時,因爲它必須要求對每個包進行估算。當然現在很多項目管理工具提供了這種估算自動加和,這也是最常用的估算方法。

費用分配

  費用分配過程是把費用預算分配到每一項活動中,以便獲得項目費用計劃基準。這個過程比較簡單,就是利用費用估計值、WBS、項目進度計劃和風險管理計劃等,制定出項目的費用計劃基準,這裏的費用計劃基準是一個按照實踐階段分配的預算計劃,用來衡量和監控項目費用狀況。可以在接下來的費用控制過程詳細解釋。

費用控制

  制定了項目的費用計劃基準,我們需要根據項目狀況報告、項目變更情況及申請,費用管理計劃等進行費用控制,以便控制費用預算的變更,做出修訂費用估算、更新項目預算以及採取糾正措施等對項目費用控制。費用控制的目標是評估影響引起費用變更的因素,以便保證變更可以在項目各方干係人可以接受;判定費用計劃基準是否偏離,對出現的偏離進行管理和糾正。由於項目管理的過程是變動的過程,我們會遇到很多實際情況而需要進行評審和變更,如何在變動的項目管理中控制費用?所以項目成本管理中最難的就是費用控制。如何在變動中控制項目成本,如何解決這個難題?掙值管理就是常用的技術,用費用偏差CV,進度偏差SV,費用指數CPI以及進度指數SPI等指標進行量化計算,這裏不再贅述。在項目管理或者過程管理高level的公司,經常用此技術進行成本費用控制。

  以上四個過程完成後,項目收尾階段,對於項目成本進行分析和記錄,以便爲本項目管理進行總結和後續項目估算參考使用。例如我們常進行成本偏差以及ROI等各種財務指標分析,以下是使用IBM RPM的一些界面。

  隨着項目管理知識的普及和大家項目管理經驗的積累,項目經理在成本管理領域將會有更多的責任,更多的關注成本管理,補上我們項目管理的短板,勢在必行。

文 / 王曉毅

(來自:《程序員》雜誌 http://www.programmer.com.cn/)

 

2009-02-21  上面文章來源:

http://vipnews.csdn.net/newscontent.aspx?pointid=2009_02_20_144007273

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章