以下文章來(lái)源于信息化與數(shù)字化 ,作者陳曉明
來(lái)源:信息化與數(shù)字化
導(dǎo)讀: 本文我們就來(lái)看看常用的估算方法都有哪些,業(yè)界又是怎么來(lái)做的呢。
(相關(guān)資料圖)
一.工作量評(píng)估概述
長(zhǎng)期以來(lái),如何度量軟件研發(fā)成本一直是軟件業(yè)界的難題,科學(xué)、統(tǒng)一的軟件研發(fā)成本度量標(biāo)準(zhǔn)既是有效進(jìn)行軟件項(xiàng)目管理的重要依據(jù),也是當(dāng)前軟件產(chǎn)業(yè)發(fā)展的迫切需要。很多軟件行業(yè)從業(yè)人員感嘆道,這么高科技的行業(yè),在成本預(yù)算的確定性、開發(fā)速度和組織效能上,甚至還遠(yuǎn)遠(yuǎn)不如看起來(lái)很傳統(tǒng)的建筑制造行業(yè)。一座摩天大樓可能在半年內(nèi)就可以建好,而一個(gè)大型軟件開發(fā)時(shí)間可能要好幾年,并且隨著時(shí)間的變長(zhǎng)項(xiàng)目失敗率會(huì)越高。
缺乏成本度量依據(jù)及成本控制,可能在項(xiàng)目生命周期的各個(gè)階段造成影響,如:在預(yù)算階段,會(huì)造成預(yù)算浪費(fèi)或預(yù)算不足;招投標(biāo)階段,可能出現(xiàn)惡意競(jìng)標(biāo)或低價(jià)中標(biāo);在項(xiàng)目實(shí)施階段,引發(fā)項(xiàng)目變更或成本超支。
但在實(shí)際情況中,軟件工作量評(píng)估也面臨著各種各樣的問(wèn)題,如:項(xiàng)目范圍不確定、沒(méi)有可以參考的歷史項(xiàng)目、項(xiàng)目個(gè)性化多、評(píng)估結(jié)果不斷被質(zhì)疑等等。那么如何在現(xiàn)狀基礎(chǔ)之上,做好軟件規(guī)模評(píng)估這件事呢?國(guó)際著名軟件工程專家-Caper Jones曾說(shuō)過(guò):良好的估算方法和可靠的歷史數(shù)據(jù)提供了最好的希望,現(xiàn)實(shí)將戰(zhàn)勝不可能的要求。
下面,我們就來(lái)看看常用的估算方法都有哪些,業(yè)界又是怎么來(lái)做的呢。
二.常用評(píng)估方法
目前,常用的評(píng)估方法包括如下幾大類:專家法、類推/類比法、方程法,其中,專家法常用的是WBS拆分法、Delphi法;類推/類比法會(huì)基于類似的歷史項(xiàng)目或一組基準(zhǔn)數(shù)據(jù)做估算;方程法要基于基準(zhǔn)數(shù)據(jù)建模,并會(huì)與行業(yè)、企業(yè)數(shù)據(jù)相結(jié)合對(duì)模型不斷調(diào)優(yōu),同時(shí)從功能視角、技術(shù)視角將方法劃分為兩大類。
1. 專家法-WBS拆分法
含義:即項(xiàng)目結(jié)構(gòu)拆分估算法,將項(xiàng)目或產(chǎn)品分解為具體的工作,然后分別對(duì)各個(gè)工作進(jìn)行時(shí)間估算,最終求和得出項(xiàng)目或產(chǎn)品的總工作量。
適用場(chǎng)景:適用于實(shí)施階段,有詳細(xì)的需求說(shuō)明書作為依據(jù)的項(xiàng)目。
如:(1)項(xiàng)目實(shí)施階段排期、分工;(2)存量項(xiàng)目二期/三期的售前評(píng)估。
2. 專家法-Delphi法
含義:由多種相關(guān)經(jīng)驗(yàn)的人共同參與,各人進(jìn)行估算,然后匯總討論,最終得出一個(gè)綜合后的結(jié)果;
適用場(chǎng)景:適用于輸入的材料不足,需求模糊的模塊或項(xiàng)目。
如:(1)售前階段,一句話需求;(2)新產(chǎn)品類型項(xiàng)目。
3. 類推/類比法
含義:指將本項(xiàng)目的部分屬性與高度類似的歷史項(xiàng)目或一組基準(zhǔn)數(shù)據(jù)進(jìn)行比對(duì),進(jìn)而獲得待估算項(xiàng)目工作量、工期或成本估算值的方法。
適用場(chǎng)景:與本項(xiàng)目有類似屬性,如:規(guī)模、業(yè)務(wù)領(lǐng)域、應(yīng)用場(chǎng)景、復(fù)雜度、開發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)等。
如:與資金方對(duì)接、外部系統(tǒng)對(duì)接等。
4. 方程法
含義:基于基準(zhǔn)數(shù)據(jù)建模,結(jié)合行業(yè)數(shù)據(jù)、企業(yè)數(shù)據(jù)對(duì)模型不斷迭代優(yōu)化,最終計(jì)算出項(xiàng)目工作量、成本。
適用場(chǎng)景:輸入的材料較完整,有詳細(xì)的需求描述、用例描述等。
如項(xiàng)目實(shí)施階段,有需求說(shuō)明書、設(shè)計(jì)文檔作為輸入材料。
在方程法中,按照功能視角、技術(shù)視角進(jìn)一步劃分為兩個(gè)類別,其中功能視角包括,功能點(diǎn)評(píng)估方法(Function Point Analysis,下文簡(jiǎn)稱FPA)、對(duì)象點(diǎn)、用例點(diǎn)、故事點(diǎn)等;技術(shù)視角包括,代碼行、數(shù)據(jù)庫(kù)表、函數(shù)數(shù)量等。在上述方法中,應(yīng)用最廣泛的為功能點(diǎn)FPA。
該方法由Allan J. Albrecht于1970s在IBM提出,主要應(yīng)用在金融科技領(lǐng)域。在1980s、1990s逐步形成國(guó)際標(biāo)準(zhǔn),廣泛應(yīng)用于金融、電信、政府等領(lǐng)域,并在日本、韓國(guó)、荷蘭等國(guó)使用該方法作為政府軟件采購(gòu)的依據(jù)。2000s,國(guó)內(nèi)引入功能點(diǎn)方法,迅速在金融、能源、電信等各領(lǐng)域推廣,尤其國(guó)內(nèi)銀行業(yè),已普遍采用該方法度量軟件規(guī)模,如中國(guó)銀行、中國(guó)農(nóng)業(yè)銀行、交通銀行、國(guó)開行、招商銀行、平安銀行、郵儲(chǔ)銀行、南京銀行、天津銀行等。
中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究院、北京軟件造價(jià)評(píng)估技術(shù)創(chuàng)新聯(lián)盟和北京軟件和信息服務(wù)交易所聯(lián)合發(fā)布的《中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)》文檔里也有關(guān)于不同行業(yè)和地區(qū)的軟件行業(yè)的一些基準(zhǔn)數(shù)據(jù),有興趣的同學(xué)可以參考下。
中國(guó)軟件行業(yè)基準(zhǔn)數(shù)據(jù)
5. 小結(jié)
我們?cè)倩仡櫼幌萝浖u(píng)估的常用方法:WBS拆分法、Delphi專家法、類推/類比法、功能點(diǎn)FPA,在這么多方法中,前幾個(gè)都屬于通用類方法,可以應(yīng)用在各行各業(yè),如:建筑業(yè)的造價(jià)評(píng)估、石油勘探鉆井預(yù)測(cè)等。但只有FPA是專門針對(duì)軟件造價(jià)評(píng)估的方法,且考慮其在金融科技領(lǐng)域已經(jīng)得到廣泛應(yīng)用,所以下面我們具體看一看什么是FPA方法。
三.功能點(diǎn)評(píng)估方法FPA
含義:從用戶視角出發(fā),對(duì)軟件的規(guī)模從邏輯設(shè)計(jì)的角度進(jìn)行度量的標(biāo)準(zhǔn)方法。該方法將系統(tǒng)分為數(shù)據(jù)功能和事物功能兩大類,分別根據(jù)具體的規(guī)則來(lái)計(jì)算功能點(diǎn),最后結(jié)合系統(tǒng)的特征因子來(lái)調(diào)整功能點(diǎn)數(shù),從而得到最終的系統(tǒng)規(guī)模。
適用場(chǎng)景:輸入的材料較完整,有詳細(xì)的需求描述。
可能有點(diǎn)抽象,下面我們一點(diǎn)點(diǎn)展開:
1. 什么是功能點(diǎn)
(1)度量單位
功能點(diǎn)是度量軟件規(guī)模的一種單位,例如生活中我們采用平方米度量房子的面積,用斤或千克來(lái)度量體重一樣。
(2)用戶視角
在評(píng)估過(guò)程中,它是從用戶視角出發(fā),強(qiáng)調(diào)用戶能感知的業(yè)務(wù)價(jià)值。比如我們?cè)谛刨J系統(tǒng)、供應(yīng)鏈系統(tǒng)中常見的“客戶管理”模塊,系統(tǒng)操作用戶是能切切實(shí)實(shí)感知到客戶信息存在的,用戶點(diǎn)擊【新增】【查詢】按鈕,是能感知到信息流變化的。
(3)核心思想
核心思想:一是系統(tǒng)維護(hù)的信息;二是系統(tǒng)處理的復(fù)雜度。
(4)國(guó)際標(biāo)準(zhǔn)
目前已形成5個(gè)國(guó)際標(biāo)準(zhǔn),其中在國(guó)內(nèi)應(yīng)用最廣泛的是IFPUG和NESMA:
l IFPUG 國(guó)際功能點(diǎn)用戶組
lCOSMIC 通用軟件度量國(guó)際聯(lián)盟
l Mk II 英國(guó)軟件度量協(xié)會(huì)
l NESMA 荷蘭軟件度量協(xié)會(huì)
lFiSMA 芬蘭軟件度量協(xié)會(huì)
2. FPA概述
下圖很好的詮釋了FPA的核心思想,中間藍(lán)色框表示我們待評(píng)估的系統(tǒng),其自身維護(hù)了很多的業(yè)務(wù)數(shù)據(jù),稱之為內(nèi)部邏輯文件(ILF)。與外部的交互包括兩種場(chǎng)景,一是用戶,二是外圍系統(tǒng)。在與外部交互過(guò)程中,進(jìn)一步細(xì)分為兩個(gè)層面,一是外部去觸發(fā)、輸入信息,本系統(tǒng)做出相應(yīng)的響應(yīng),即對(duì)應(yīng)評(píng)估結(jié)果的基本過(guò)程(EI、EO、EQ);二是本系統(tǒng)與其他系統(tǒng)對(duì)接時(shí),需要調(diào)用外圍系統(tǒng)信息,這些信息本身是外部系統(tǒng)的內(nèi)部邏輯文件,對(duì)應(yīng)本系統(tǒng)稱之為外部接口文件(EIF)。以上就構(gòu)成了FPA評(píng)估的所有基礎(chǔ)組件,從中我們也可以看出,F(xiàn)PA是從用戶視角出發(fā)去評(píng)估,即系統(tǒng)能向外提供(或輸出)的功能價(jià)值。這也間接的說(shuō)明了,該方法論不適用于非功能性需求、AI等新興技術(shù)開發(fā)為主的規(guī)模度量。
3. FPA計(jì)數(shù)過(guò)程
在FPA評(píng)估過(guò)程中,其實(shí)就是對(duì)輸入文檔(需求、設(shè)計(jì)文檔等)進(jìn)行如下5種基礎(chǔ)功能組件的分解計(jì)數(shù),確定復(fù)雜度,再確定權(quán)重值。
第一步:計(jì)數(shù)
(1)邏輯文件
① ILF(內(nèi)部邏輯文件):在本系統(tǒng)維護(hù)的業(yè)務(wù)數(shù)據(jù)、業(yè)務(wù)規(guī)則。
可以通俗的理解為,系統(tǒng)后臺(tái)維護(hù)的數(shù)據(jù)表,但并不是全部數(shù)據(jù)表。因?yàn)楸痉椒ǖ脑O(shè)計(jì)理念是從用戶視角出發(fā),因此維護(hù)的這些數(shù)據(jù)是要能被用戶感知到的實(shí)體表,如客戶信息表、賬戶信息表、借據(jù)表等,而處理過(guò)程中所設(shè)計(jì)的中間表、配置表等不納入ILF計(jì)數(shù)范圍。
② EIF(外部接口文件):本系統(tǒng)引用,在其他系統(tǒng)維護(hù)的數(shù)據(jù)。
我們與外部系統(tǒng)對(duì)接,會(huì)引用外部的信息,這些文件本身是外部系統(tǒng)的ILF,對(duì)于本系統(tǒng)而言,計(jì)入EIF。
(2)基本過(guò)程
由一個(gè)觸發(fā)事件引起,系統(tǒng)進(jìn)入穩(wěn)定狀態(tài)作為一個(gè)標(biāo)志。因此,在識(shí)別基本過(guò)程時(shí),一定要找到觸發(fā)事件,比如用戶點(diǎn)擊的一個(gè)按鈕或日終的定時(shí)任務(wù)等,但最終系統(tǒng)都要進(jìn)入一個(gè)穩(wěn)定的狀態(tài),這樣才算一個(gè)完整的基本過(guò)程。分為如下3類:
① EI(外部輸入):由外部輸入,并對(duì)內(nèi)部邏輯文件進(jìn)行維護(hù)或改變系統(tǒng)行為的事務(wù)。
舉例:點(diǎn)擊【新增】【修改】按鈕,新增或修改一個(gè)客戶信息,均算作EI。
② EO(外部輸出):對(duì)數(shù)據(jù)加工后呈現(xiàn)或輸出的事務(wù)。
舉例:按月計(jì)提臺(tái)賬查詢或?qū)С?,該臺(tái)賬在生成過(guò)程中,并不是簡(jiǎn)單的將后臺(tái)數(shù)據(jù)表直接輸出(select *from...),而是需要進(jìn)行邏輯計(jì)算、數(shù)據(jù)加工,這種情況算作EO。
③ EQ(外部查詢):對(duì)已有數(shù)據(jù)直接呈現(xiàn)或輸出的事務(wù)。
舉例:客戶信息查詢功能,直接把數(shù)據(jù)庫(kù)中存的數(shù)據(jù)原封不動(dòng)的展示出來(lái),沒(méi)有做任何的加工處理,算作EQ。
說(shuō)明:在實(shí)際規(guī)模估算過(guò)程中,某一個(gè)事務(wù)算作EO/EQ/EI并不是特別關(guān)鍵,因?yàn)樗麄兊臋?quán)重區(qū)別并不是很大。重要的是要數(shù)全了,不要漏~~~
第二步:確定重用程度、修改類型
識(shí)別出邏輯文件或基本過(guò)程后,需要確定每一項(xiàng)的重用程度、修改類型:判斷本事務(wù)與原有系統(tǒng)功能的重用程度(高、中、低);然后再確定其修改類型(新增、修改、刪除)。
下圖為評(píng)估示例:
4. 工作量計(jì)算過(guò)程
FPA計(jì)數(shù)完成后,我們最終是要獲得待評(píng)估系統(tǒng)/項(xiàng)目的工作量,整體計(jì)算過(guò)程如下:
功能組件權(quán)重映射表:
計(jì)算過(guò)程如下表所示:
5. 方法特點(diǎn)與推廣
我們總結(jié)一下FPA方法的特點(diǎn):
(1)客觀性:對(duì)比專家法、類推法,相對(duì)能減少主觀偏差。
(2)輸入文件:輸入的材料較完整,有詳細(xì)的需求描述、用例描述等。
(3)適用場(chǎng)景:有清晰、明確輸入的功能性需求,如實(shí)施階段或存量項(xiàng)目二期,不太適合新項(xiàng)目售前階段的一句話需求;不適用于非功能性需求及新興技術(shù)開發(fā)為主的成本評(píng)估;也不太適合那種交互單一但是難度高的場(chǎng)景,例如復(fù)雜的算法,風(fēng)控模型,安全防控,高標(biāo)準(zhǔn)的基礎(chǔ)架構(gòu)層等。
(4)學(xué)習(xí)成本:雖已對(duì)功能點(diǎn)分析法進(jìn)行精簡(jiǎn),但仍有較大的學(xué)習(xí)、培訓(xùn)成本。
(5)溝通成本:原始需求功能與工作量沒(méi)有直觀對(duì)應(yīng),對(duì)未接觸過(guò)該方法論的同學(xué)理解難度大,溝通成本高。
(6)評(píng)估投入成本:拆解過(guò)程需要考慮細(xì)致的設(shè)計(jì)實(shí)現(xiàn)方式,需要花費(fèi)的時(shí)間、精力較多。
四.總結(jié)
最后,我們對(duì)常用的評(píng)估方法進(jìn)行對(duì)比,大家會(huì)發(fā)現(xiàn)沒(méi)有萬(wàn)能的評(píng)估方法,每一種方法都有其適用的場(chǎng)景,并均有所限。在條件允許的情況下,我們可以進(jìn)行交叉驗(yàn)證。
隨著軟件工程領(lǐng)域的數(shù)字化不斷深入,工作量評(píng)估的精度也在穩(wěn)步提升。舉例來(lái)說(shuō),設(shè)計(jì)工程師現(xiàn)在可以利用Figma等工具,與客戶緊密合作,共同塑造交互性極強(qiáng)的設(shè)計(jì)。而在編碼環(huán)節(jié),團(tuán)隊(duì)成員通過(guò)使用Vscode等在線代碼編輯器共享工作空間,彼此協(xié)同以提升編碼效率。此外,通過(guò)自動(dòng)化測(cè)試以及眾多的RPA(Robotic Process Automation)工具,我們能夠及時(shí)發(fā)現(xiàn)產(chǎn)品的Bug,而且還能記錄下每個(gè)功能點(diǎn)的完成時(shí)間和效率,從而積累大量寶貴的數(shù)據(jù),為工作量評(píng)估提供強(qiáng)有力的參考。
進(jìn)入GPT大模型的時(shí)代,AI的作用更是不可或缺。開發(fā)團(tuán)隊(duì)現(xiàn)在可以借助AI生成代碼,甚至是完整的軟件和產(chǎn)品。AI模型的崛起無(wú)疑將重塑行業(yè)標(biāo)準(zhǔn)。想象一下,當(dāng)用戶能夠清晰地描述他們的奇思妙想和設(shè)計(jì)構(gòu)想時(shí),AI成本估算模型能夠在短時(shí)間內(nèi)提供一個(gè)大致的成本評(píng)估。而后,這些信息可以交由高度專業(yè)化的AI交付模型來(lái)執(zhí)行開發(fā)工作,或者,根據(jù)成本評(píng)估,在市場(chǎng)上尋找最符合要求的開發(fā)團(tuán)隊(duì)來(lái)實(shí)現(xiàn)這些構(gòu)想。數(shù)字化工具和AI的結(jié)合正在為軟件工程注入新的活力,使工作量評(píng)估更加精準(zhǔn),開發(fā)過(guò)程更加流暢,而產(chǎn)品的創(chuàng)新和質(zhì)量也得以提升。
參考資料
[1]張旸旸,王海青,蔡立志,等.軟件成本度量標(biāo)準(zhǔn)實(shí)施指南[M].北京:清華大學(xué)出版社,2017.
[2]王海青等,軟件研發(fā)成本度量規(guī)范釋義[M].北京:機(jī)械工業(yè)出版社,2014.
關(guān)鍵詞:

營(yíng)業(yè)執(zhí)照公示信息