自軟件開發(fā)項(xiàng)目誕生以來,軟件項(xiàng)目的規(guī)模和工作量估算一直是軟件行業(yè)的痛點(diǎn)。業(yè)界曾嘗試過多種估算方法,但均未能很好地解決這一問題。功能點(diǎn)估算方法的出現(xiàn),為軟件項(xiàng)目估算提供了一個(gè)相對(duì)客觀的解決方案。經(jīng)過多年的實(shí)踐,該方法已獲得業(yè)界的肯定,并被納入國家標(biāo)準(zhǔn)。然而,在實(shí)際應(yīng)用過程中,仍需關(guān)注一些具體問題,若處理不當(dāng),將嚴(yán)重影響功能點(diǎn)估算方法的正確性和準(zhǔn)確性。本文結(jié)合筆者在軟件造價(jià)評(píng)估工作中的實(shí)踐經(jīng)驗(yàn),就功能點(diǎn)估算的常見問題進(jìn)行解析,并給出相應(yīng)的應(yīng)對(duì)方案。
功能點(diǎn)是由國際功能點(diǎn)用戶團(tuán)體組織(IFPUG)提出的一種軟件規(guī)模度量的方法。目前國內(nèi)應(yīng)用最廣泛的為NESMA方法,它首先計(jì)算出軟件的規(guī)模(即功能點(diǎn)數(shù)),然后通過規(guī)模進(jìn)行后續(xù)的工作量、工期估算。該方法具有兩個(gè)鮮明的特點(diǎn):一是依據(jù)用戶需求估算,對(duì)于估算人員來說,簡(jiǎn)單易用?;诖颂攸c(diǎn),可以在項(xiàng)目早期就開展估算工作;二是客觀性,與開發(fā)語言、產(chǎn)品設(shè)計(jì)、開發(fā)風(fēng)格等技術(shù)特性無關(guān)。正是因?yàn)檫@兩個(gè)特點(diǎn),功能點(diǎn)估算方法解決了軟件項(xiàng)目估算工作中估算時(shí)間不確定、技術(shù)細(xì)節(jié)影響估算等多個(gè)難點(diǎn),在實(shí)踐應(yīng)用過程中獲得了業(yè)界的肯定。
近年來,功能點(diǎn)估算方法在我國的推廣力度逐步加大。但在實(shí)際工作中,由于對(duì)方法的內(nèi)涵和精髓理解不夠深入,在方法落地實(shí)施過程中也容易發(fā)生一些問題。這些問題產(chǎn)生的原因多種多樣,筆者分析其根本原因,主要有以下三點(diǎn):
一、將功能點(diǎn)和工作量等同
在一些較為看重考核的組織中,容易出現(xiàn)此問題。常見的軟件項(xiàng)目考核指標(biāo),如產(chǎn)品規(guī)模、工作量、生產(chǎn)率等,都與功能點(diǎn)數(shù)密切相關(guān)。功能點(diǎn)數(shù)是影響工作量估算的一個(gè)重要因素,但并非唯一因素。一些項(xiàng)目經(jīng)理常常將這兩個(gè)概念混淆。在實(shí)際估算工作中,一邊進(jìn)行功能點(diǎn)估算,一邊就在計(jì)算開發(fā)需要多少時(shí)間。當(dāng)開發(fā)時(shí)間不夠時(shí),為了保證生產(chǎn)率考核指標(biāo)的達(dá)標(biāo),就在功能點(diǎn)上想辦法。這種為了增加本項(xiàng)目的工作量,人為多估功能點(diǎn)的做法,將嚴(yán)重影響功能點(diǎn)估算方法運(yùn)用的正確性。
二、未依據(jù)業(yè)務(wù)需求或功能進(jìn)行估算
功能點(diǎn)估算方法是對(duì)軟件規(guī)模(即軟件大?。┑囊环N度量,而軟件如何是由業(yè)務(wù)需求來描述和確定的。由于估算工作通常由項(xiàng)目組在計(jì)劃階段完成,很多時(shí)候,項(xiàng)目組估算人員都是開發(fā)人員,這些開發(fā)技術(shù)高手容易將技術(shù)實(shí)現(xiàn)細(xì)節(jié)帶入到估算工作中,由此會(huì)產(chǎn)生不少問題。例如,在一個(gè)系統(tǒng)模塊中按軟件前后臺(tái)分別進(jìn)行估算;對(duì)存放在不同數(shù)據(jù)庫表的同一內(nèi)部邏輯文件進(jìn)行拆分;對(duì)技術(shù)實(shí)現(xiàn)中的臨時(shí)文件進(jìn)行拆分等。這些問題產(chǎn)生的原因都是考慮了技術(shù)實(shí)現(xiàn),而沒有以業(yè)務(wù)需求為基礎(chǔ)進(jìn)行估算。筆者在項(xiàng)目實(shí)踐中,通過加強(qiáng)業(yè)務(wù)需求分析的培訓(xùn),提高了估算人員對(duì)業(yè)務(wù)需求的理解能力,有效減少了此類問題的發(fā)生。
三、按功能中的步驟進(jìn)行拆分
功能點(diǎn)估算方法對(duì)功能的拆分有著明確的要求,但在實(shí)際估算工作中,估算人員往往沒有按要求進(jìn)行拆分。常見表現(xiàn)有:業(yè)務(wù)描述了某個(gè)業(yè)務(wù)步驟發(fā)生了變化,估算人員就直接按業(yè)務(wù)步驟進(jìn)行了估算,這樣不符合功能點(diǎn)估算方法的要求,而且還會(huì)導(dǎo)致相關(guān)估算的嚴(yán)重不足。此外,還有直接按技術(shù)方案對(duì)完整業(yè)務(wù)流程進(jìn)行拆分并進(jìn)行估算的情況,也屬于此類問題。
針對(duì)上述問題,可以從以下三點(diǎn)來應(yīng)對(duì):
一、提高項(xiàng)目管理水平,合理應(yīng)對(duì)估算和評(píng)價(jià)要求
軟件規(guī)模(功能點(diǎn))、工作量和研發(fā)效率這三個(gè)數(shù)據(jù)是密切相關(guān)的,隨意變動(dòng)其中任何一項(xiàng),都會(huì)對(duì)其他項(xiàng)產(chǎn)生影響。在組織級(jí)項(xiàng)目管理工作中,建議將功能點(diǎn)有關(guān)的指標(biāo)不納入到組織級(jí)的強(qiáng)制考核中,以此來充分發(fā)揮功能點(diǎn)估算方法的優(yōu)勢(shì),更加準(zhǔn)確完整地進(jìn)行功能點(diǎn)估算。在此基礎(chǔ)上,幫助項(xiàng)目經(jīng)理制訂合理的項(xiàng)目研發(fā)計(jì)劃。針對(duì)項(xiàng)目的考核可以從組織外圍視角來進(jìn)行考慮,避免組織內(nèi)部管理帶來的內(nèi)耗。
二、重視業(yè)務(wù)需求的后續(xù)分析和完善工作
業(yè)務(wù)需求質(zhì)量也是業(yè)界的難點(diǎn)和痛點(diǎn)之一。在筆者的實(shí)踐工作中,碰到的業(yè)務(wù)需求質(zhì)量參差不齊,總體來說業(yè)務(wù)需求的編寫水平在逐步提高,但也會(huì)看到,由于各種原因,業(yè)務(wù)需求的清晰度和完整度還有很大的提升空間。在業(yè)務(wù)需求還有所欠缺的時(shí)候,項(xiàng)目組應(yīng)該充分發(fā)揮業(yè)務(wù)和技術(shù)融合的強(qiáng)項(xiàng),深入分析和挖掘潛在的業(yè)務(wù)需求,尤其是業(yè)務(wù)關(guān)聯(lián)需求和非功能性需求等隱含需求,將潛在開發(fā)工作量用業(yè)務(wù)需求及對(duì)應(yīng)功能點(diǎn)的形式表現(xiàn)出來。
三、嚴(yán)格按功能點(diǎn)估算方法進(jìn)行功能點(diǎn)估算
功能點(diǎn)估算方法對(duì)如何拆分、如何計(jì)算都有非常明確的要求,但在具體實(shí)踐中,仍然會(huì)碰到各種各樣的問題。針對(duì)不同情況,編制明確的指南來指導(dǎo)估算人員進(jìn)行估算并經(jīng)過三級(jí)審核。這里需要強(qiáng)調(diào)的一點(diǎn)是,估算指導(dǎo)的穩(wěn)定性很重要。正確性不足,但都用一個(gè)方法估算,可以進(jìn)行統(tǒng)一調(diào)整;如果方法老是變來變?nèi)?,后期就難以處理了。聲明:本文著作權(quán)及所有權(quán)均歸北京中基數(shù)聯(lián)科技有限公司所有。任何形式的轉(zhuǎn)載或引用,均需清晰標(biāo)注文章來源。