怎么用功能點(diǎn)來估算工作量:NESMA功能點(diǎn)估算法(上)
導(dǎo)語:對(duì)于產(chǎn)品人尤其是沒有開發(fā)經(jīng)驗(yàn)的產(chǎn)品人來說,在評(píng)估產(chǎn)品工作量時(shí)往往會(huì)過度聽從開發(fā)人員的預(yù)估,導(dǎo)致產(chǎn)品時(shí)間安排不夠合理。而且開發(fā)人員評(píng)審后大致預(yù)估的時(shí)間會(huì)存在較大出入,因而對(duì)于最熟悉這個(gè)產(chǎn)品細(xì)節(jié)的產(chǎn)品經(jīng)理來說,自己來直接估算開發(fā)工作量就顯得十分有“優(yōu)勢(shì)”了,至少再去和開發(fā)對(duì)線也不至于完全處于被動(dòng)地位。
一、什么是功能點(diǎn),功能點(diǎn)估算有什么用?
對(duì)于一個(gè)軟件來說,功能點(diǎn)是一個(gè)可以作為標(biāo)準(zhǔn)的一個(gè)計(jì)量單位,功能點(diǎn)的多少代表著軟件的規(guī)模大小,那么有了一個(gè)同一的量級(jí)的表現(xiàn)后,不同產(chǎn)品或者功能通過功能點(diǎn)來表示,就可以很好地反饋出產(chǎn)品或者功能的復(fù)雜程度,同時(shí)我們利用功能點(diǎn)來輔助計(jì)算效率、成本等也有很大作用。
使用禪道作為項(xiàng)目管理工具的小伙伴,也會(huì)在提需求的板塊,看到有功能點(diǎn)的錄入要求,這也是作為項(xiàng)目管理中,工作量的估算的重要性。
二、功能點(diǎn)估算方法與基本過程
功能點(diǎn)的估算方法有IFPUG和NESMA等,下面主要是介紹NESMA功能點(diǎn)估算法,NESMA估算法更多的在項(xiàng)目前期,可以快速的利用邏輯文件,給出預(yù)估的功能點(diǎn)數(shù)量,起到較好的指導(dǎo)作用。
NESMA估算法有三種類型的功能點(diǎn)估算,包括:指示功能點(diǎn)計(jì)數(shù)、估算功能點(diǎn)計(jì)數(shù)、詳細(xì)功能點(diǎn)計(jì)數(shù);分別對(duì)應(yīng)項(xiàng)目的前期,中后期的功能點(diǎn)估算需求,同時(shí)估算出來的功能點(diǎn)也是越來越細(xì)化和精準(zhǔn)。當(dāng)然操作難度和復(fù)雜度也是越來越高。
對(duì)于一般性的產(chǎn)品而言,我們主要是使用前兩種(指示功能點(diǎn)計(jì)數(shù)、估算功能點(diǎn)計(jì)數(shù))估算方法即可,兩種方法的主要區(qū)別就在于計(jì)算公式的不同,一個(gè)粗放,一個(gè)則較精細(xì),兩種都可以使用,可以根據(jù)自身項(xiàng)目的具體要求和所處階段來進(jìn)行選擇。
指示功能點(diǎn)計(jì)數(shù):ILF*35+EIF *15
估算功能點(diǎn)計(jì)數(shù):UFP=(7* ILF+5* EIL+4* EI+5* EO+4* EQ)
下面就來介紹上面的公式中用到的因子以及查找方法。
三、兩個(gè)邏輯文件與三個(gè)基本過程
上面的估算方法中提到的ILF、EIF、EI、EO、EQ代表著什么呢?只要弄明白了這幾個(gè)計(jì)算因子,那么帶入公式就可以很快知道我們的這個(gè)產(chǎn)品或者功能的軟件規(guī)模有多大了,所需多少開發(fā)量,也就有了較為準(zhǔn)確的參考標(biāo)準(zhǔn)。
1. 兩個(gè)邏輯文件:ILF和EIF
首先我們理解一下邏輯文件是個(gè)什么東西。功能點(diǎn)估算法,我們是從產(chǎn)品的角度,用戶的視角來進(jìn)行估算的。那么邏輯文件的概念,也就是從用戶的視角出發(fā),來進(jìn)行定義的一類對(duì)用戶有意義的信息。
舉個(gè)栗子:釘釘?shù)娜粘坦δ苤?,我們可以組織日程,發(fā)布日程約會(huì),預(yù)定會(huì)議室等。而這里面涉及到的邏輯文件,就會(huì)有 會(huì)議通知信息、會(huì)議室預(yù)定信息 等“邏輯文件”,“邏輯文件”對(duì)于用戶視角來說,代表著一種業(yè)務(wù)需求的信息或數(shù)據(jù),業(yè)務(wù)流程要進(jìn)行,則必然離不開這部分的各種“文件”。另一個(gè)角度來說,系統(tǒng)就是由文件與交互邏輯組成的。
1)ILF
代表的是內(nèi)部邏輯文件(內(nèi)部接口文件:在本系統(tǒng)維護(hù)的業(yè)務(wù)和數(shù)據(jù)),如上面例子的釘釘?shù)娜粘坦δ苤?,?huì)議通知信息就是一個(gè)ILF(內(nèi)部邏輯文件),也可以理解為會(huì)議通知這個(gè)動(dòng)作,所產(chǎn)生的信息內(nèi)容。發(fā)送會(huì)議通知是這一功能流程的交互過程,而會(huì)議通知信息,則是這個(gè)流程中的內(nèi)部邏輯文件(ILF)。
2)EIF
代表的是外部邏輯文件(外部接口文件:本系統(tǒng)引用,由其它系統(tǒng)維護(hù)的業(yè)務(wù)數(shù)據(jù)),如上面舉例的釘釘日程功能,假設(shè)如果有另外的系統(tǒng)(假設(shè)是一個(gè)會(huì)議室預(yù)訂系統(tǒng))來專門運(yùn)營(yíng)會(huì)議室預(yù)定的,在查詢會(huì)議室預(yù)定情況時(shí),就需要請(qǐng)求外部系統(tǒng)的接口,來獲取會(huì)議室的預(yù)定情況,那么這種情況下,會(huì)議室預(yù)定信息就是一個(gè)EIF(外部邏輯文件)。
總的來說,查找邏輯文件的過程,需要站在用戶的角度,查找業(yè)務(wù)流程中涉及到的邏輯文件,然后區(qū)分是ILF還是EIF。
這里需要注意的點(diǎn)是:邏輯文件一定是從用戶的角度出發(fā)定義的,任何因?yàn)榧夹g(shù)問題需要增加的文件內(nèi)容都不能算作ILF或者EIF。這里有點(diǎn)甲方的意思,我需要發(fā)送一則通知,我不會(huì)管你因?yàn)榘l(fā)送這則通知需要增加多少個(gè)工作表才能完成,你做工作表的工作量是不算入一個(gè)軟件的功能點(diǎn)的。
那么到這里,如果是對(duì)于使用指示功能點(diǎn)計(jì)數(shù)方法估算功能點(diǎn)數(shù)量的情況來說,已經(jīng)可以完成工作量的初步估算工作了(ILF*35+EIF *15),對(duì)于項(xiàng)目前期來說,這個(gè)功能點(diǎn)計(jì)算結(jié)果,已經(jīng)可以提供較為可靠的工作量參考。
2. 三個(gè)基本過程:EI、EO、EQ
對(duì)于需要較為精細(xì)的功能點(diǎn)估算的,或者是一個(gè)較小的功能模塊的開發(fā)需求,則需要繼續(xù)進(jìn)行拆分,尋找每個(gè)邏輯文件里面的基本過程,也就是我們上文說到的交互邏輯,不同的交互邏輯的工作量不同,比如查找就常常比修改的工作量小一些。
下面我們就來繼續(xù)了解三個(gè)基本過程:
- 外部輸入EI:對(duì)數(shù)據(jù)進(jìn)行維護(hù)或者該改變系統(tǒng)狀態(tài)/行為的事物(增刪改)
- 外部輸出EO:對(duì)數(shù)據(jù)加功工后呈現(xiàn)或輸出的事物(操作數(shù)據(jù))
- 外部查詢EQ:對(duì)已有數(shù)據(jù)直接呈現(xiàn)或輸出的事物(對(duì)數(shù)據(jù)不處理,即查詢)
簡(jiǎn)單來說:
- EI就是增刪改操作,比如發(fā)送會(huì)議通知,提交會(huì)議預(yù)定申請(qǐng)等,對(duì)現(xiàn)有的邏輯文件進(jìn)行了操作;
- EO是對(duì)數(shù)據(jù)加工后展示的過程,比如一些數(shù)據(jù)的展示;
- EQ是一些查詢操作,他和EO的區(qū)別在于EO的數(shù)據(jù)規(guī)模是不確定的,更偏向于是實(shí)時(shí)更新的數(shù)據(jù)規(guī)模,按照輸入的條件整合后輸出展示,EQ則是預(yù)設(shè)的穩(wěn)定的數(shù)據(jù)規(guī)模,不需要進(jìn)一步處理而直接輸出的基本過程。
如上面的預(yù)定會(huì)議的例子中,會(huì)議通知查看就是一個(gè)EQ(對(duì)現(xiàn)有數(shù)據(jù)的查詢并直接輸出)。找出了產(chǎn)品/功能中的所有邏輯文件以及其中的基本過程之后,就可以直接放入公式中進(jìn)行計(jì)算,從而得出該產(chǎn)品/功能的功能點(diǎn)數(shù)量,那么軟件規(guī)模就大概有了一個(gè)單位比較了。
四、適用范圍和階段
使用NESMA估算功能點(diǎn)的方法,可以比較準(zhǔn)確的估算出產(chǎn)品的功能點(diǎn)數(shù)量,并反饋開發(fā)工作量,但是這個(gè)估算法也是存在一定的前提的,比如只有指定類型的產(chǎn)品使用此方法得出的功能點(diǎn)才能真實(shí)反映工作量,而其他產(chǎn)品則不適用。
比如以數(shù)據(jù)和交互處理為中心的;以功能多少為主要造價(jià)制約因素的(如電子政務(wù),業(yè)務(wù)管理系統(tǒng),辦公自動(dòng)化,ERP等系統(tǒng))適用NESMA估算法;而包含大量復(fù)雜算法;創(chuàng)意型軟件;以非功能性需求為主(如視頻和圖像處理軟件,殺毒軟件,網(wǎng)絡(luò)游戲,性能優(yōu)化任務(wù)等)等則不適用NESMA估算法。
因此在進(jìn)行產(chǎn)品功能點(diǎn)估算的時(shí)候,需要先區(qū)別自己做的產(chǎn)品類型,根據(jù)實(shí)際情況進(jìn)行工作量的估算。
本文由 @大飛Eric 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
大神你好。請(qǐng)教一下,這個(gè)公式算出來的工作量是工時(shí)還是工天呢?
是工時(shí)哈,根據(jù)算出來的總工時(shí)除以人數(shù),再換算成工天就可以了
準(zhǔn)確來說應(yīng)該說計(jì)算出來的是工作量,也就是軟件規(guī)模,實(shí)際工時(shí)需要根據(jù)公司制定或者行業(yè)中的相關(guān)開發(fā)效率,來估算出來。比如假設(shè)估算出來規(guī)模是100,團(tuán)隊(duì)的研發(fā)效率為5 小時(shí)/功能點(diǎn),那么需要完成的工時(shí)則是500小時(shí)
您好 估算功能點(diǎn)計(jì)數(shù):UFP=(7* ILF+5* EIL+4* EI+5* EO+4* EQ),公式中的數(shù)值代表的是什么含義呢,是怎么計(jì)算得來的,還有可以舉例說明一下計(jì)算的方式嗎?
公式中的數(shù)值其實(shí)都是根據(jù)估算方法論里面給定的一些指定數(shù)值來的,這篇中我還沒介紹到復(fù)雜程度的影響,這些數(shù)值默認(rèn)都是中等復(fù)雜度的值,簡(jiǎn)單來說其實(shí)就是固定的計(jì)算規(guī)則。計(jì)算方式的話就是通過文中的一些技巧找到對(duì)應(yīng)的邏輯文件以及交互過程,代入公式中就可以計(jì)算出來~