王玲 盧彩霞
摘要:以CMMI①所提供的量化管理思想和FPA②模型的估算思想為基礎(chǔ),研究了基于能力目標(biāo)(PPB③)的軟件研發(fā)人工成本預(yù)算的建立過程。通過過程穩(wěn)定的歷史項(xiàng)目數(shù)據(jù)建立起PPM④,用以預(yù)測(cè)新項(xiàng)目的過程性能,并通過對(duì)可控因子的調(diào)整,以制定出滿足能力目標(biāo)要求的、量化的人工成本預(yù)算范圍值。同傳統(tǒng)的控制人工成本的方法相比,在成本控制目標(biāo)的確定上更可信和客觀。
關(guān)鍵詞: CMMI;能力目標(biāo);人工成本預(yù)算;PPB;PPM
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8669-03
軟件研發(fā)項(xiàng)目中人工成本所占比重很高,管理好人工成本對(duì)降低項(xiàng)目成本意義重大。據(jù)調(diào)查統(tǒng)計(jì)數(shù)據(jù)顯示,當(dāng)前有64.7%的企業(yè)在研發(fā)成本管理方法中使用預(yù)算管理的方法,有16.4%的企業(yè)使用目標(biāo)成本管理的方法[1]。但是目標(biāo)成本的制定是否合理,達(dá)成目標(biāo)的置信度如何,采用什么樣的成本估算方式能減少主觀因素的影響,這些問題往往需要量化的數(shù)據(jù)做支持加以解決。
本文正是按照CMMI模型提供的量化管理的思想,總結(jié)出量化管理的流程,結(jié)合實(shí)際可操作性對(duì)FPA模型進(jìn)行了簡(jiǎn)化改進(jìn),研究了基于能力目標(biāo)的研發(fā)人工成本預(yù)算的建立過程和方法,并通過對(duì)關(guān)鍵過程調(diào)整關(guān)鍵過程中的關(guān)鍵因素,達(dá)到滿足能力目標(biāo)的要求。
1 CMMI簡(jiǎn)介
CMMI是美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所應(yīng)美國(guó)聯(lián)邦政府的要求,于1991年開始并持續(xù)完善的一種用于評(píng)價(jià)軟件開發(fā)組織能力并幫助其改善質(zhì)量的方法模型。CMMI 模型可以通過連續(xù)式和階段式兩種表示方式反映組織過程的成熟度等級(jí)。在階段式的表示方法中分5個(gè)級(jí)別,四級(jí)是量化管理級(jí),其特點(diǎn)是對(duì)組織和項(xiàng)目的質(zhì)量、過程性能建立了量化的目標(biāo),并用統(tǒng)計(jì)和量化的技術(shù)來控制過程和管理項(xiàng)目。
2 量化管理流程
過程性能是對(duì)過程實(shí)施結(jié)果的一種度量[2]。按照組織的度量定義收集歷史數(shù)據(jù)建立過程性能模型,描述某些過程實(shí)施結(jié)果的范圍與分布,從而預(yù)測(cè)該過程在其他項(xiàng)目中的實(shí)施。過程性能模型的建立可以幫助組織定量理解已建立的組織標(biāo)準(zhǔn)過程和項(xiàng)目已定義過程的性能,從而進(jìn)一步定量管理組織中的各個(gè)項(xiàng)目[3]。
CMMI四級(jí)過程域“組織過程性能”(Organizational Process Performance, OPP)要求為實(shí)現(xiàn)組織的量化管理目標(biāo)建立并維護(hù)過程性能模型,可以是建立的PPM或PPB。同時(shí)在“量化項(xiàng)目管理”(Quantitative Project Manager,QPM)過程域中應(yīng)用這些PPM或PPB對(duì)目標(biāo)的可控性進(jìn)行監(jiān)控,進(jìn)行原因分析并采取措施將目標(biāo)實(shí)現(xiàn)在可控范圍中。因此PPM 和PPB的建立和應(yīng)用是實(shí)現(xiàn)量化管理的重點(diǎn)。通過對(duì)OPP和QPM這兩個(gè)過程域的特定目標(biāo)和特定實(shí)踐的歸納和總結(jié),形成了基于能力目標(biāo)的量化管理的基本流程:
1) 從組織的多個(gè)商業(yè)目標(biāo)中選擇出一個(gè)或多個(gè),確立為要進(jìn)行量化管理的目標(biāo);
2) 通過歷史數(shù)據(jù)建立的PPB,使用統(tǒng)計(jì)技術(shù)和方法對(duì)量化目標(biāo)的可實(shí)現(xiàn)性進(jìn)行能力分析,從而確定出定量的量化控制目標(biāo);
3) 根據(jù)確定的量化管理目標(biāo),分析并識(shí)別出影響目標(biāo)實(shí)現(xiàn)的過程和因素,通過敏感性分析方法找出關(guān)鍵因素從而確定出關(guān)鍵過程⑤;
4) 定義關(guān)鍵因素的度量;
5) 根據(jù)度量定義,對(duì)收集的數(shù)據(jù)進(jìn)行檢查和驗(yàn)證⑥
6) 使用回歸方法,建立與量化目標(biāo)相關(guān)的一個(gè)或多個(gè)模型;
7) 在項(xiàng)目應(yīng)用中使用PPM或PPB進(jìn)行量化管理;
8) 當(dāng)有新的項(xiàng)目完工后,收集項(xiàng)目數(shù)據(jù),對(duì)組織的PPB、PPM進(jìn)行更新。
3 人工成本預(yù)算的建立
基于以上量化管理的流程和步驟,針對(duì)某軟件公司提出的控制研發(fā)項(xiàng)目人工成本的商業(yè)目標(biāo),那么可以轉(zhuǎn)化為在計(jì)劃階段通過制定人工成本預(yù)算目標(biāo)值的控制來實(shí)現(xiàn)對(duì)人工成本的控制。那么人工成本的預(yù)算目標(biāo)多少是合理和可控的?如何通過調(diào)整因素,制定出滿足目標(biāo)要求的人工成本預(yù)算?圍繞以上問題,該文以下給出了基于能力目標(biāo)的人工成本預(yù)算的建立過程和方法。
3.1 建立能力目標(biāo)
對(duì)于同一類型過程穩(wěn)定的研發(fā)項(xiàng)目,人工成本的控制目標(biāo)值定為多少是合理的呢?目標(biāo)值定高了,不需要進(jìn)行控制很容易就能實(shí)現(xiàn)目標(biāo)。目標(biāo)值定低了,根本不能保證做完項(xiàng)目。因此需要對(duì)人工成本目標(biāo)值可實(shí)現(xiàn)性的能力進(jìn)行分析,從而確定出定量的、可實(shí)現(xiàn)的目標(biāo)值。收集公司歷史研發(fā)項(xiàng)目的人工成本、合同額數(shù)據(jù),計(jì)算項(xiàng)目人工成本率⑦,使用Minitab⑧工具對(duì)人工成本率的能力進(jìn)行分析,如圖1。
圖1 人工成本率能力分析圖
圖1中數(shù)據(jù)分析結(jié)果顯示,采集的20個(gè)樣本數(shù)據(jù)的人工成本率均值是66.3%,當(dāng)設(shè)置的人工成本率上限為70%時(shí),項(xiàng)目人工成本率超出70%上限的概率為0.55%,從概率學(xué)的角度來講是這種情況幾乎是不會(huì)發(fā)生的。因此該公司采樣的歷史人工成本率數(shù)據(jù)所反映出來的是:項(xiàng)目人工成本控制在項(xiàng)目合同總額70%這一目標(biāo)是有能力的,目標(biāo)是可實(shí)現(xiàn)的,從而建立起了對(duì)研發(fā)項(xiàng)目人工成本預(yù)算控制的能力目標(biāo)。
3.2 建立估算模型
3.2.1 FPA模型的估算方法
研究FPA模型對(duì)人工成本的估算方法,其中FPA模型的基本思想是:將應(yīng)用程序的規(guī)模建立在不因程序設(shè)計(jì)語言而改變的外部特性之上[4]。其估算的大致步驟:第1步:統(tǒng)計(jì)計(jì)算初始功能數(shù)(UFC),由不同的數(shù)據(jù)類型⑨和每類數(shù)據(jù)類型的復(fù)雜性級(jí)別權(quán)重⑩加權(quán)求和得出;第2步:計(jì)算技術(shù)復(fù)雜因子TCF11;第3步:用TCF校正UCF,得到功能點(diǎn)FP;第4步:收集和統(tǒng)計(jì)得到的以功能點(diǎn)衡量的軟件生產(chǎn)率(以人月/FP為單位),估算軟件開發(fā)所需人工成本,并安排項(xiàng)目進(jìn)度。在FPA模型中確定FP是關(guān)鍵和重點(diǎn),它是從面向功能的角度考慮問題,而且在估算過程中的主觀成分較多[4-5]。
3.2.2 基于能力目標(biāo)的模型估算方法
該軟件公司研發(fā)項(xiàng)目具有用戶業(yè)務(wù)較穩(wěn)定,需求比較明確,并且是基于統(tǒng)一的開發(fā)平臺(tái),采用相同開發(fā)技術(shù)等特點(diǎn)。收集這些影響因素的數(shù)據(jù)進(jìn)行敏感性分析,在逐步回歸的過程中這些因素因?yàn)榕c工作量相關(guān)性較低而被自動(dòng)篩除,因而在建立估算模型時(shí)忽略數(shù)據(jù)類型間復(fù)雜性級(jí)別、技術(shù)復(fù)雜因子這兩個(gè)因素影響。分析得出規(guī)模(size)、復(fù)用率(reuse rate)、小組生產(chǎn)率(team productivity)12同工作量的關(guān)系是強(qiáng)相關(guān)的。
規(guī)模、復(fù)用率、小組生產(chǎn)率和小組費(fèi)率這四個(gè)關(guān)鍵因素中,規(guī)模大小由客戶的需求所決定是不可調(diào)整的,復(fù)用率是參考?xì)v史同類項(xiàng)目的數(shù)據(jù)也是相對(duì)穩(wěn)定不變的。小組生產(chǎn)率和小組費(fèi)率都與小組人員組成13有關(guān),不同等級(jí)的人員組成使得小組生產(chǎn)率和小組費(fèi)率不同。因此,調(diào)整人員的過程對(duì)于制定滿足能力目標(biāo)的人工成本預(yù)算是一個(gè)關(guān)鍵過程。
3.2.3 模型間的關(guān)系
研發(fā)項(xiàng)目的全過程都涵蓋了人工的投入,所以按照研發(fā)的需求、設(shè)計(jì)、編碼和測(cè)試分階段的制定人工成本預(yù)算。確定工作量是關(guān)鍵,各階段的工作量與各階段的規(guī)模、復(fù)用率和小組生產(chǎn)率有關(guān)。因此,按階段收集歷史項(xiàng)目的規(guī)模(功能點(diǎn)數(shù)、類/表/視圖/存儲(chǔ)過程、代碼行數(shù)、測(cè)試用例數(shù))、人員組成、小組生產(chǎn)率、復(fù)用率、工作量分別建立各階段的規(guī)模模型、生產(chǎn)率模型和工作量模型, 三類模型間的關(guān)系如圖2。
圖2 模型關(guān)系圖
3.3建立人工成本預(yù)算
項(xiàng)目在計(jì)劃階段時(shí),按以下步驟使用模型進(jìn)行預(yù)測(cè),并建立人工成本預(yù)算目標(biāo)值范圍。
1) 項(xiàng)目經(jīng)理按照項(xiàng)目進(jìn)度要求劃分里程碑,初步確定各階段的人員計(jì)劃;
2) 確定項(xiàng)目的初始規(guī)模,分別代入各階段的規(guī)模模型,預(yù)測(cè)出各階段的規(guī)模;
3) 根據(jù)確定的各階段的初始人員計(jì)劃,計(jì)算出各階段小組平均水平,分別代入各階段的生產(chǎn)率模型中,預(yù)測(cè)出各階段的小組生產(chǎn)率;
4) 根據(jù)每個(gè)階段人員組成,計(jì)算各階段小組平均費(fèi)率;
5) 參考?xì)v史項(xiàng)目,確定各階段的規(guī)模的復(fù)用率;
6) 將各階段預(yù)測(cè)出的規(guī)模,小組生產(chǎn)率和復(fù)用率,分別代入各階段工作量模型中,預(yù)測(cè)出個(gè)階段的工作量;
7) 根據(jù)階段工作量來判斷是否超出項(xiàng)目階段進(jìn)度要求14,如果超出,調(diào)整人員,重復(fù)3-7步;如果不超出進(jìn)行下一步;
8) 根據(jù)階段工期和階段小組平均費(fèi)率計(jì)算階段的預(yù)算;
9) 反復(fù)3-8直到完成各個(gè)階段的預(yù)算;
10) 根據(jù)人工成本能力預(yù)算目標(biāo)判斷該預(yù)算是否滿足要求,如果不滿足,調(diào)整人員,反復(fù)3-10 直到滿足進(jìn)度和預(yù)算的要求。
4 項(xiàng)目中的應(yīng)用
以該公司研發(fā)中心的“XXXXX平臺(tái)研發(fā)”項(xiàng)目為例,按照3.3節(jié)步驟計(jì)算結(jié)果如表1。通過工作量和費(fèi)率計(jì)算出來的人工成本預(yù)算均值滿足公司人工成本能力目標(biāo)的要求。
表115 各階段預(yù)測(cè)值
[過程\&預(yù)測(cè)
規(guī)模\&復(fù)用率\&預(yù)測(cè)生產(chǎn)率\&工作量模型\&預(yù)測(cè)工作量(均值)\&需求\&106\&0%\&0.62\&Ln工作量=-0.130+1.02Ln需求數(shù)+0.925Ln(1-復(fù)用率)-1.05Ln生產(chǎn)率\&169人天\&設(shè)計(jì)\&958\&20%\&2.27\&Ln工作量=-2.29+1.27Ln設(shè)計(jì)規(guī)模+1.25Ln(1-復(fù)用率)-0.433Ln生產(chǎn)率\&329人天\&編碼\&109122\&5%\&91.35\&Ln工作量=0.510+0.999Ln代碼行數(shù)+0.964Ln(1-復(fù)用率)-1.11Ln生產(chǎn)率\&1139人天\&測(cè)試\&480\&5%\&0.61\&Ln工作量=0.550+0.880Ln測(cè)試用例數(shù)+1.06Ln(1-復(fù)用率)-1.55Ln生產(chǎn)率\&866人天\&]
5 結(jié)論
采用建立能力目標(biāo)PPB,在以FPA估算模型和方法的指導(dǎo)下,按照CMMI4級(jí)量化管理的流程,建立量化的預(yù)測(cè)模型PPM,并通過關(guān)鍵過程中可控因子的調(diào)整,使項(xiàng)目在計(jì)劃階段能制定出滿足能力目標(biāo)要求的人工成本預(yù)算值范圍,使預(yù)算目標(biāo)值合理性和可信度有較大提高。
同時(shí),也要認(rèn)識(shí)到無論是估算模型還是建立的量化預(yù)測(cè)模型,都不可能對(duì)項(xiàng)目人工成本做到精確計(jì)算。因此,在軟件研發(fā)的過程中,應(yīng)該注意搜集和積累組織中影響控制目標(biāo)的參數(shù)數(shù)據(jù),模型要經(jīng)歷一個(gè)不斷的應(yīng)用、完善的過程后,才能使其更接近實(shí)際情況。
注釋:
① CMMI: Capability Maturity Model Integration,軟件能力成熟度模型集成。
② FPA模型:FPA(Function Point Analysis)是IBM的Allan J.Albrecht于1979年提出的一種軟件開發(fā)成本估算模型。
③ PPB: Process Performance Baselines,過程性能基線。
④ PPM: Process Performance Models,過程性能模型。
⑤ 指在制定量化目標(biāo)過程中,通過調(diào)整這個(gè)過程的中的某個(gè)因素從而到達(dá)實(shí)現(xiàn)滿足量化目標(biāo)的一個(gè)或多個(gè)過程。
⑥ 數(shù)據(jù)檢查和驗(yàn)證是為了保證收集的數(shù)據(jù)滿足統(tǒng)計(jì)學(xué)的要求,以便于后面使用統(tǒng)計(jì)學(xué)的方法進(jìn)行建模和分析。
⑦ 人工成本率=人工成本/項(xiàng)目合同額*100%
⑧ Minitab:是為質(zhì)量改善、教育和研究領(lǐng)域提供統(tǒng)計(jì)軟件和服務(wù)的先導(dǎo),為質(zhì)量改善和概率應(yīng)用提供準(zhǔn)確和易用的的工具。它的基本數(shù)據(jù)錄入方式與EXCEL相近。
⑨ 數(shù)據(jù)類型:指根據(jù)需求分析階段產(chǎn)生的系統(tǒng)規(guī)格說明書,確定出來的向系統(tǒng)輸入的數(shù)據(jù)、從系統(tǒng)輸出的數(shù)據(jù)、用戶查詢、邏輯文件、與其他系統(tǒng)的接口。
⑩ 權(quán)重:指輸入、輸出、查詢、邏輯文件和接口的復(fù)雜性級(jí)別(簡(jiǎn)單級(jí)、平均級(jí)或復(fù)雜級(jí))所確定的權(quán)重
11 TCF: 由包括諸如接口復(fù)雜性、處理復(fù)雜性、系統(tǒng)可操作性、分布處理等功能點(diǎn)復(fù)雜性調(diào)整因子,按照公式TCF=0.65+0.01*
12 小組生產(chǎn)率:根據(jù)歷史項(xiàng)目的數(shù)據(jù),按照公式:小組生產(chǎn)率=規(guī)模*(1-復(fù)用率)/工作量,計(jì)算得出的。
13 人員組成按照內(nèi)部人員和外部人員分別分為初、中、高三個(gè)等級(jí)。
14 項(xiàng)目客戶對(duì)項(xiàng)目進(jìn)度有硬性的要求,所以進(jìn)度要求必須滿足。
15 表中的工作量是滿足人工成本預(yù)算目標(biāo)值進(jìn)行調(diào)整之后的最終預(yù)測(cè)工作量,是通過在初步人員計(jì)劃上進(jìn)行調(diào)整后的結(jié)果。
參考文獻(xiàn):
[1] 梁萊歆,熊艷.基于研發(fā)項(xiàng)目生命周期的成本管理模式研究[J].科研管理,2010,31(1):172.
[2] CMMI Product Team. CMMI for development,Version 1.3[EB/OL].http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
[3] 王慧,周伯生,羅文劼.基于CMMI的軟件過程性能模型[J].計(jì)算機(jī)軟件與算法,2009,30(1):110.
[4] 崔敬東,左廣.軟件開發(fā)成本估算方法的比較研究[J].技術(shù)經(jīng)濟(jì),2002,179(11):51.
[5] 麥克康內(nèi)爾(McConnell.S).軟件估算:“黑匣子”揭秘 [M].宋銳,譯.北京:電子工業(yè)出版社,2007.
3.2.2 基于能力目標(biāo)的模型估算方法
該軟件公司研發(fā)項(xiàng)目具有用戶業(yè)務(wù)較穩(wěn)定,需求比較明確,并且是基于統(tǒng)一的開發(fā)平臺(tái),采用相同開發(fā)技術(shù)等特點(diǎn)。收集這些影響因素的數(shù)據(jù)進(jìn)行敏感性分析,在逐步回歸的過程中這些因素因?yàn)榕c工作量相關(guān)性較低而被自動(dòng)篩除,因而在建立估算模型時(shí)忽略數(shù)據(jù)類型間復(fù)雜性級(jí)別、技術(shù)復(fù)雜因子這兩個(gè)因素影響。分析得出規(guī)模(size)、復(fù)用率(reuse rate)、小組生產(chǎn)率(team productivity)12同工作量的關(guān)系是強(qiáng)相關(guān)的。
規(guī)模、復(fù)用率、小組生產(chǎn)率和小組費(fèi)率這四個(gè)關(guān)鍵因素中,規(guī)模大小由客戶的需求所決定是不可調(diào)整的,復(fù)用率是參考?xì)v史同類項(xiàng)目的數(shù)據(jù)也是相對(duì)穩(wěn)定不變的。小組生產(chǎn)率和小組費(fèi)率都與小組人員組成13有關(guān),不同等級(jí)的人員組成使得小組生產(chǎn)率和小組費(fèi)率不同。因此,調(diào)整人員的過程對(duì)于制定滿足能力目標(biāo)的人工成本預(yù)算是一個(gè)關(guān)鍵過程。
3.2.3 模型間的關(guān)系
研發(fā)項(xiàng)目的全過程都涵蓋了人工的投入,所以按照研發(fā)的需求、設(shè)計(jì)、編碼和測(cè)試分階段的制定人工成本預(yù)算。確定工作量是關(guān)鍵,各階段的工作量與各階段的規(guī)模、復(fù)用率和小組生產(chǎn)率有關(guān)。因此,按階段收集歷史項(xiàng)目的規(guī)模(功能點(diǎn)數(shù)、類/表/視圖/存儲(chǔ)過程、代碼行數(shù)、測(cè)試用例數(shù))、人員組成、小組生產(chǎn)率、復(fù)用率、工作量分別建立各階段的規(guī)模模型、生產(chǎn)率模型和工作量模型, 三類模型間的關(guān)系如圖2。
圖2 模型關(guān)系圖
3.3建立人工成本預(yù)算
項(xiàng)目在計(jì)劃階段時(shí),按以下步驟使用模型進(jìn)行預(yù)測(cè),并建立人工成本預(yù)算目標(biāo)值范圍。
1) 項(xiàng)目經(jīng)理按照項(xiàng)目進(jìn)度要求劃分里程碑,初步確定各階段的人員計(jì)劃;
2) 確定項(xiàng)目的初始規(guī)模,分別代入各階段的規(guī)模模型,預(yù)測(cè)出各階段的規(guī)模;
3) 根據(jù)確定的各階段的初始人員計(jì)劃,計(jì)算出各階段小組平均水平,分別代入各階段的生產(chǎn)率模型中,預(yù)測(cè)出各階段的小組生產(chǎn)率;
4) 根據(jù)每個(gè)階段人員組成,計(jì)算各階段小組平均費(fèi)率;
5) 參考?xì)v史項(xiàng)目,確定各階段的規(guī)模的復(fù)用率;
6) 將各階段預(yù)測(cè)出的規(guī)模,小組生產(chǎn)率和復(fù)用率,分別代入各階段工作量模型中,預(yù)測(cè)出個(gè)階段的工作量;
7) 根據(jù)階段工作量來判斷是否超出項(xiàng)目階段進(jìn)度要求14,如果超出,調(diào)整人員,重復(fù)3-7步;如果不超出進(jìn)行下一步;
8) 根據(jù)階段工期和階段小組平均費(fèi)率計(jì)算階段的預(yù)算;
9) 反復(fù)3-8直到完成各個(gè)階段的預(yù)算;
10) 根據(jù)人工成本能力預(yù)算目標(biāo)判斷該預(yù)算是否滿足要求,如果不滿足,調(diào)整人員,反復(fù)3-10 直到滿足進(jìn)度和預(yù)算的要求。
4 項(xiàng)目中的應(yīng)用
以該公司研發(fā)中心的“XXXXX平臺(tái)研發(fā)”項(xiàng)目為例,按照3.3節(jié)步驟計(jì)算結(jié)果如表1。通過工作量和費(fèi)率計(jì)算出來的人工成本預(yù)算均值滿足公司人工成本能力目標(biāo)的要求。
表115 各階段預(yù)測(cè)值
[過程\&預(yù)測(cè)
規(guī)模\&復(fù)用率\&預(yù)測(cè)生產(chǎn)率\&工作量模型\&預(yù)測(cè)工作量(均值)\&需求\&106\&0%\&0.62\&Ln工作量=-0.130+1.02Ln需求數(shù)+0.925Ln(1-復(fù)用率)-1.05Ln生產(chǎn)率\&169人天\&設(shè)計(jì)\&958\&20%\&2.27\&Ln工作量=-2.29+1.27Ln設(shè)計(jì)規(guī)模+1.25Ln(1-復(fù)用率)-0.433Ln生產(chǎn)率\&329人天\&編碼\&109122\&5%\&91.35\&Ln工作量=0.510+0.999Ln代碼行數(shù)+0.964Ln(1-復(fù)用率)-1.11Ln生產(chǎn)率\&1139人天\&測(cè)試\&480\&5%\&0.61\&Ln工作量=0.550+0.880Ln測(cè)試用例數(shù)+1.06Ln(1-復(fù)用率)-1.55Ln生產(chǎn)率\&866人天\&]
5 結(jié)論
采用建立能力目標(biāo)PPB,在以FPA估算模型和方法的指導(dǎo)下,按照CMMI4級(jí)量化管理的流程,建立量化的預(yù)測(cè)模型PPM,并通過關(guān)鍵過程中可控因子的調(diào)整,使項(xiàng)目在計(jì)劃階段能制定出滿足能力目標(biāo)要求的人工成本預(yù)算值范圍,使預(yù)算目標(biāo)值合理性和可信度有較大提高。
同時(shí),也要認(rèn)識(shí)到無論是估算模型還是建立的量化預(yù)測(cè)模型,都不可能對(duì)項(xiàng)目人工成本做到精確計(jì)算。因此,在軟件研發(fā)的過程中,應(yīng)該注意搜集和積累組織中影響控制目標(biāo)的參數(shù)數(shù)據(jù),模型要經(jīng)歷一個(gè)不斷的應(yīng)用、完善的過程后,才能使其更接近實(shí)際情況。
注釋:
① CMMI: Capability Maturity Model Integration,軟件能力成熟度模型集成。
② FPA模型:FPA(Function Point Analysis)是IBM的Allan J.Albrecht于1979年提出的一種軟件開發(fā)成本估算模型。
③ PPB: Process Performance Baselines,過程性能基線。
④ PPM: Process Performance Models,過程性能模型。
⑤ 指在制定量化目標(biāo)過程中,通過調(diào)整這個(gè)過程的中的某個(gè)因素從而到達(dá)實(shí)現(xiàn)滿足量化目標(biāo)的一個(gè)或多個(gè)過程。
⑥ 數(shù)據(jù)檢查和驗(yàn)證是為了保證收集的數(shù)據(jù)滿足統(tǒng)計(jì)學(xué)的要求,以便于后面使用統(tǒng)計(jì)學(xué)的方法進(jìn)行建模和分析。
⑦ 人工成本率=人工成本/項(xiàng)目合同額*100%
⑧ Minitab:是為質(zhì)量改善、教育和研究領(lǐng)域提供統(tǒng)計(jì)軟件和服務(wù)的先導(dǎo),為質(zhì)量改善和概率應(yīng)用提供準(zhǔn)確和易用的的工具。它的基本數(shù)據(jù)錄入方式與EXCEL相近。
⑨ 數(shù)據(jù)類型:指根據(jù)需求分析階段產(chǎn)生的系統(tǒng)規(guī)格說明書,確定出來的向系統(tǒng)輸入的數(shù)據(jù)、從系統(tǒng)輸出的數(shù)據(jù)、用戶查詢、邏輯文件、與其他系統(tǒng)的接口。
⑩ 權(quán)重:指輸入、輸出、查詢、邏輯文件和接口的復(fù)雜性級(jí)別(簡(jiǎn)單級(jí)、平均級(jí)或復(fù)雜級(jí))所確定的權(quán)重
11 TCF: 由包括諸如接口復(fù)雜性、處理復(fù)雜性、系統(tǒng)可操作性、分布處理等功能點(diǎn)復(fù)雜性調(diào)整因子,按照公式TCF=0.65+0.01*
12 小組生產(chǎn)率:根據(jù)歷史項(xiàng)目的數(shù)據(jù),按照公式:小組生產(chǎn)率=規(guī)模*(1-復(fù)用率)/工作量,計(jì)算得出的。
13 人員組成按照內(nèi)部人員和外部人員分別分為初、中、高三個(gè)等級(jí)。
14 項(xiàng)目客戶對(duì)項(xiàng)目進(jìn)度有硬性的要求,所以進(jìn)度要求必須滿足。
15 表中的工作量是滿足人工成本預(yù)算目標(biāo)值進(jìn)行調(diào)整之后的最終預(yù)測(cè)工作量,是通過在初步人員計(jì)劃上進(jìn)行調(diào)整后的結(jié)果。
參考文獻(xiàn):
[1] 梁萊歆,熊艷.基于研發(fā)項(xiàng)目生命周期的成本管理模式研究[J].科研管理,2010,31(1):172.
[2] CMMI Product Team. CMMI for development,Version 1.3[EB/OL].http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
[3] 王慧,周伯生,羅文劼.基于CMMI的軟件過程性能模型[J].計(jì)算機(jī)軟件與算法,2009,30(1):110.
[4] 崔敬東,左廣.軟件開發(fā)成本估算方法的比較研究[J].技術(shù)經(jīng)濟(jì),2002,179(11):51.
[5] 麥克康內(nèi)爾(McConnell.S).軟件估算:“黑匣子”揭秘 [M].宋銳,譯.北京:電子工業(yè)出版社,2007.
3.2.2 基于能力目標(biāo)的模型估算方法
該軟件公司研發(fā)項(xiàng)目具有用戶業(yè)務(wù)較穩(wěn)定,需求比較明確,并且是基于統(tǒng)一的開發(fā)平臺(tái),采用相同開發(fā)技術(shù)等特點(diǎn)。收集這些影響因素的數(shù)據(jù)進(jìn)行敏感性分析,在逐步回歸的過程中這些因素因?yàn)榕c工作量相關(guān)性較低而被自動(dòng)篩除,因而在建立估算模型時(shí)忽略數(shù)據(jù)類型間復(fù)雜性級(jí)別、技術(shù)復(fù)雜因子這兩個(gè)因素影響。分析得出規(guī)模(size)、復(fù)用率(reuse rate)、小組生產(chǎn)率(team productivity)12同工作量的關(guān)系是強(qiáng)相關(guān)的。
規(guī)模、復(fù)用率、小組生產(chǎn)率和小組費(fèi)率這四個(gè)關(guān)鍵因素中,規(guī)模大小由客戶的需求所決定是不可調(diào)整的,復(fù)用率是參考?xì)v史同類項(xiàng)目的數(shù)據(jù)也是相對(duì)穩(wěn)定不變的。小組生產(chǎn)率和小組費(fèi)率都與小組人員組成13有關(guān),不同等級(jí)的人員組成使得小組生產(chǎn)率和小組費(fèi)率不同。因此,調(diào)整人員的過程對(duì)于制定滿足能力目標(biāo)的人工成本預(yù)算是一個(gè)關(guān)鍵過程。
3.2.3 模型間的關(guān)系
研發(fā)項(xiàng)目的全過程都涵蓋了人工的投入,所以按照研發(fā)的需求、設(shè)計(jì)、編碼和測(cè)試分階段的制定人工成本預(yù)算。確定工作量是關(guān)鍵,各階段的工作量與各階段的規(guī)模、復(fù)用率和小組生產(chǎn)率有關(guān)。因此,按階段收集歷史項(xiàng)目的規(guī)模(功能點(diǎn)數(shù)、類/表/視圖/存儲(chǔ)過程、代碼行數(shù)、測(cè)試用例數(shù))、人員組成、小組生產(chǎn)率、復(fù)用率、工作量分別建立各階段的規(guī)模模型、生產(chǎn)率模型和工作量模型, 三類模型間的關(guān)系如圖2。
圖2 模型關(guān)系圖
3.3建立人工成本預(yù)算
項(xiàng)目在計(jì)劃階段時(shí),按以下步驟使用模型進(jìn)行預(yù)測(cè),并建立人工成本預(yù)算目標(biāo)值范圍。
1) 項(xiàng)目經(jīng)理按照項(xiàng)目進(jìn)度要求劃分里程碑,初步確定各階段的人員計(jì)劃;
2) 確定項(xiàng)目的初始規(guī)模,分別代入各階段的規(guī)模模型,預(yù)測(cè)出各階段的規(guī)模;
3) 根據(jù)確定的各階段的初始人員計(jì)劃,計(jì)算出各階段小組平均水平,分別代入各階段的生產(chǎn)率模型中,預(yù)測(cè)出各階段的小組生產(chǎn)率;
4) 根據(jù)每個(gè)階段人員組成,計(jì)算各階段小組平均費(fèi)率;
5) 參考?xì)v史項(xiàng)目,確定各階段的規(guī)模的復(fù)用率;
6) 將各階段預(yù)測(cè)出的規(guī)模,小組生產(chǎn)率和復(fù)用率,分別代入各階段工作量模型中,預(yù)測(cè)出個(gè)階段的工作量;
7) 根據(jù)階段工作量來判斷是否超出項(xiàng)目階段進(jìn)度要求14,如果超出,調(diào)整人員,重復(fù)3-7步;如果不超出進(jìn)行下一步;
8) 根據(jù)階段工期和階段小組平均費(fèi)率計(jì)算階段的預(yù)算;
9) 反復(fù)3-8直到完成各個(gè)階段的預(yù)算;
10) 根據(jù)人工成本能力預(yù)算目標(biāo)判斷該預(yù)算是否滿足要求,如果不滿足,調(diào)整人員,反復(fù)3-10 直到滿足進(jìn)度和預(yù)算的要求。
4 項(xiàng)目中的應(yīng)用
以該公司研發(fā)中心的“XXXXX平臺(tái)研發(fā)”項(xiàng)目為例,按照3.3節(jié)步驟計(jì)算結(jié)果如表1。通過工作量和費(fèi)率計(jì)算出來的人工成本預(yù)算均值滿足公司人工成本能力目標(biāo)的要求。
表115 各階段預(yù)測(cè)值
[過程\&預(yù)測(cè)
規(guī)模\&復(fù)用率\&預(yù)測(cè)生產(chǎn)率\&工作量模型\&預(yù)測(cè)工作量(均值)\&需求\&106\&0%\&0.62\&Ln工作量=-0.130+1.02Ln需求數(shù)+0.925Ln(1-復(fù)用率)-1.05Ln生產(chǎn)率\&169人天\&設(shè)計(jì)\&958\&20%\&2.27\&Ln工作量=-2.29+1.27Ln設(shè)計(jì)規(guī)模+1.25Ln(1-復(fù)用率)-0.433Ln生產(chǎn)率\&329人天\&編碼\&109122\&5%\&91.35\&Ln工作量=0.510+0.999Ln代碼行數(shù)+0.964Ln(1-復(fù)用率)-1.11Ln生產(chǎn)率\&1139人天\&測(cè)試\&480\&5%\&0.61\&Ln工作量=0.550+0.880Ln測(cè)試用例數(shù)+1.06Ln(1-復(fù)用率)-1.55Ln生產(chǎn)率\&866人天\&]
5 結(jié)論
采用建立能力目標(biāo)PPB,在以FPA估算模型和方法的指導(dǎo)下,按照CMMI4級(jí)量化管理的流程,建立量化的預(yù)測(cè)模型PPM,并通過關(guān)鍵過程中可控因子的調(diào)整,使項(xiàng)目在計(jì)劃階段能制定出滿足能力目標(biāo)要求的人工成本預(yù)算值范圍,使預(yù)算目標(biāo)值合理性和可信度有較大提高。
同時(shí),也要認(rèn)識(shí)到無論是估算模型還是建立的量化預(yù)測(cè)模型,都不可能對(duì)項(xiàng)目人工成本做到精確計(jì)算。因此,在軟件研發(fā)的過程中,應(yīng)該注意搜集和積累組織中影響控制目標(biāo)的參數(shù)數(shù)據(jù),模型要經(jīng)歷一個(gè)不斷的應(yīng)用、完善的過程后,才能使其更接近實(shí)際情況。
注釋:
① CMMI: Capability Maturity Model Integration,軟件能力成熟度模型集成。
② FPA模型:FPA(Function Point Analysis)是IBM的Allan J.Albrecht于1979年提出的一種軟件開發(fā)成本估算模型。
③ PPB: Process Performance Baselines,過程性能基線。
④ PPM: Process Performance Models,過程性能模型。
⑤ 指在制定量化目標(biāo)過程中,通過調(diào)整這個(gè)過程的中的某個(gè)因素從而到達(dá)實(shí)現(xiàn)滿足量化目標(biāo)的一個(gè)或多個(gè)過程。
⑥ 數(shù)據(jù)檢查和驗(yàn)證是為了保證收集的數(shù)據(jù)滿足統(tǒng)計(jì)學(xué)的要求,以便于后面使用統(tǒng)計(jì)學(xué)的方法進(jìn)行建模和分析。
⑦ 人工成本率=人工成本/項(xiàng)目合同額*100%
⑧ Minitab:是為質(zhì)量改善、教育和研究領(lǐng)域提供統(tǒng)計(jì)軟件和服務(wù)的先導(dǎo),為質(zhì)量改善和概率應(yīng)用提供準(zhǔn)確和易用的的工具。它的基本數(shù)據(jù)錄入方式與EXCEL相近。
⑨ 數(shù)據(jù)類型:指根據(jù)需求分析階段產(chǎn)生的系統(tǒng)規(guī)格說明書,確定出來的向系統(tǒng)輸入的數(shù)據(jù)、從系統(tǒng)輸出的數(shù)據(jù)、用戶查詢、邏輯文件、與其他系統(tǒng)的接口。
⑩ 權(quán)重:指輸入、輸出、查詢、邏輯文件和接口的復(fù)雜性級(jí)別(簡(jiǎn)單級(jí)、平均級(jí)或復(fù)雜級(jí))所確定的權(quán)重
11 TCF: 由包括諸如接口復(fù)雜性、處理復(fù)雜性、系統(tǒng)可操作性、分布處理等功能點(diǎn)復(fù)雜性調(diào)整因子,按照公式TCF=0.65+0.01*
12 小組生產(chǎn)率:根據(jù)歷史項(xiàng)目的數(shù)據(jù),按照公式:小組生產(chǎn)率=規(guī)模*(1-復(fù)用率)/工作量,計(jì)算得出的。
13 人員組成按照內(nèi)部人員和外部人員分別分為初、中、高三個(gè)等級(jí)。
14 項(xiàng)目客戶對(duì)項(xiàng)目進(jìn)度有硬性的要求,所以進(jìn)度要求必須滿足。
15 表中的工作量是滿足人工成本預(yù)算目標(biāo)值進(jìn)行調(diào)整之后的最終預(yù)測(cè)工作量,是通過在初步人員計(jì)劃上進(jìn)行調(diào)整后的結(jié)果。
參考文獻(xiàn):
[1] 梁萊歆,熊艷.基于研發(fā)項(xiàng)目生命周期的成本管理模式研究[J].科研管理,2010,31(1):172.
[2] CMMI Product Team. CMMI for development,Version 1.3[EB/OL].http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
[3] 王慧,周伯生,羅文劼.基于CMMI的軟件過程性能模型[J].計(jì)算機(jī)軟件與算法,2009,30(1):110.
[4] 崔敬東,左廣.軟件開發(fā)成本估算方法的比較研究[J].技術(shù)經(jīng)濟(jì),2002,179(11):51.
[5] 麥克康內(nèi)爾(McConnell.S).軟件估算:“黑匣子”揭秘 [M].宋銳,譯.北京:電子工業(yè)出版社,2007.