⑴ 一個軟體項目如何評估工作量和成本
軟體開發成本估算過程可進一步細分為軟體規模估算、工作量估算、成本估算和確定軟體開發成本等四個過程。
其中成本估算需要對直接人力成本、間接人力成本、間接非人力成本及直接非人力成本分別進行估算。
國家標准《GB/T 36964-2018 軟體工程 軟體開發成本度量規范》中建議的軟體開發成本估算基本流程如下圖所示:
國家准中的四個估算過程,層層遞進,逐步細化,最終達到科學、一致的成本估算。
一、軟體規模估算
通常情況下,規模估算是軟體成本估算過程的起點。
估算規模是後續計算軟體項目的工作量、成本和進度的主要輸入,是項目范圍管理的關鍵,因此,在條件允許的情況下,應首先進行規模估算。
在規模估算過程中,需要注意以下情況:
在規模估算開始前,應根據可行性研究報告或類似文檔明確項目需求及系統邊界。項目需求除包含最基本的業務需求外,還應進行初步的子系統/模塊劃分,並對每一子系統或模塊的基本用戶需求進行說明,以保證可以根據項目需求進行規模預估。
依據項目特點和需求詳細程度不同,通常估算人員在選擇估算方法時應採用納入國際標準的功能點方法進行功能規模估算,在適用IFPUG或NESMA方法時,可以根據需求的粒度和管理需要,選擇預估功能點方法、估算功能點方法或者詳細功能點方法。
若當前的項目需求極其模糊或不確定,可不進行規模估算,而直接採用類比法或類推法估算工作量和成本。
二、工作量估算
在完成規模估算後,應當開展工作量估算工作,若當前項目未開展規模估算,也可直接啟動工作量估算工作。
工作量估算時,可採用方程法、類比法、類推法、功能點法:
方程法:即基於基準數據建立參數模型,通過輸入各項參數,確定估算值。
類比法:即將待估算項目的部分屬性與類似的一組基準數據進行比對,進而確定估算值。
類推法:即將待估算項目的部分屬性與高度類似的一個或幾個已完成項目的數據進行比對,並進行適當調整後確定估算值。
功能點法:從用戶視角出發,通過量化系統功能來度量軟體的規模,這種度量主要基於系統的邏輯設計。功能點規模度量方法在國際上的應用已經比較廣泛,並且已經取代代碼行成為最主流的軟體規模度量方法。
在開展工作量估算的過程中,需要注意以下情況:
當需求極其模糊或不確定時,如果此時具有高度類似的歷史項目,則可直接採用類推法,充分利用歷史項目數據來粗略估算工作量。
當需求極其模糊或不確定時,如果此時具有與本項目部分屬性類似的一組基準數據,則可直接採用類比法,充分利用基準數據來粗略估算工作量。
對於規模估算已經開展的項目,可採用方程法,通過輸入各項參數,確定待估算項目的工作量。若客戶或高層對項目的工期有明確的要求時,在採用方程法估算工作量時,工期要求有可能是方程的參數之一。
為追求估算的准確性,建議在條件允許的情況下,可採用兩種估算方法,對估算結果進行交叉驗證,若估算結果差別不大,可直接使用兩種估算結果的平均值或以某種估算結果為准,若差別較大,需進行差異分析。
工作量的估算結果宜為一個范圍而不是單一的值。
三、成本估算
在獲得了工作量估算結果後,可採用科學的方法進行成本估算。
在成本估算過程中,應需要注意的情況:
類比法和類推法,同樣適用於需求極其模糊或不確定時的成本估算;
間接成本是否與工作量估算結果相關取決於間接成本分攤計算方式。在絕大多數組織,項目周期越長,項目組成員越多,其分攤的間接成本就越高,此時項目的間接成本與工作量估算結果直接相關;
直接非人力成本通常與工作量估算結果無關,宜單獨分項測算;
成本估算結果,也通常為一個范圍,而不是單一的值。
四、確定軟體開發成本
在《軟體工程 軟體開發成本度量規范》中,將軟體開發成本分為四類,主要是為便於對成本構成(即哪些成本屬於開發成本,哪些不屬於開發成本)進行清晰界定。
而在實際確定軟體開發成本時,通常並不是分別測定四類成本,加和後獲得總成本,而是通常採用以下兩種方式確定總成本:
根據人力成本費率及工作量估算直接人力成本和間接成本之和,再加上直接非人力成本,獲得總成本;
根據規模綜合單價和軟體規模,測算出直接人力成本和間接成本之和,再加上直接非人力成本,獲得總成本。
在進行軟體的規模、工作量、成本估算時應遵循以下原則:
在規模估算時,應根據項目特點和需求的詳細程度選擇合適的估算方法;
充分利用基準數據,採用方程法、類比法或類推法,對工作量和成本進行估算;
工作量和成本的估算結果宜為一個范圍值;
在進行成本估算時,如有明確的工期要求,應充分考慮工期對項目成本的影響,可以根據項目實際情況以及工期對項目的影響程度,對成本的估算結果進行調整;
成本估算過程中宜採用不同的方法分別估算並進行交叉驗證。如果不同方法的估算結果產生較大差異,可採用專家評審方法確定估算結果,也可使用較簡單的加權平均方法;
在軟體項目的不同場景下(如預算、招投標、項目計劃和變更管理等)採用國家標准時,相關要求見國家標准中附錄A。
除了上述主要原則外,我們還需注意在使用基準數據時:
對於委託方和第三方,建議使用或參考軟體行業基準數據進行估算。估算模型的調整因子的增減或取值有可能隨著行業基準數據的變化而變化。
對於開發方,在引入行業基準數據的基礎上,可逐步建立組織級基準資料庫,以提高估算精度。組織級基準數據定義應與行業基準數據定義保持一致,以便於與行業基準數據進行比對分析,並持續提升組織能力。
⑵ 如何核算一個軟體開發項目的成本
軟體開發項目的成本從以下四個方面核算:
1、開發人員工資:外包項目報價的基礎是開發人員的工資,工資由工作年限、經驗、水平決定。開發人員包括產品經理、UI設計師、前端工程師、服務端工程師、客戶端工程師等,不同的外包項目需要的開發人員不同。
2、時間成本:軟體開發過程中,可交付成果的產出主要散粗依賴程序員,程序員成本消耗最高。程序員寫代碼的時間越長,成本越高,軟體成本常以每日為單位進行估算。
3、識別活動和分解工作成本:軟體啟動開發後,進行需求分析、撰寫需求規格說明書、需求評審、測試等活動。在項目前期,需識別軟體開發的相關活動項,並進行工作分解,確定每個活動項的前沖沒鎮後依賴關系。
4、估算人員角色及察侍數量:活動項確定後,逐個評估活動項執行所需要的資源,根據交付成果評估所需人員,開發相對應的軟體。每種軟體所要求掌握的技能不同,角色和級別不同。
⑶ 如何核算一個軟體開發項目的成本
如何核算一個軟體開發項目的成本
如今,不少企業都想擁有屬於自己企業或產品的手機APP,但其中最困擾企業主的問題就是:開發一款手機APP到底需要多少錢?
簡單點來說,要視手機APP的需求及質量而言,價位一般在幾千到十幾萬左右,更高端的價格更高。
四、APP開發公司的所在地
需要注意的是,同樣實力的APP開發公司,在不同的城市也會導致APP的成本費用高一些