不清,不能正確反映一項(xiàng)工作的難易程度以及代碼的效率。因此,在傳統(tǒng)的LOC方法上有許多改進(jìn)的方法。這些不斷演化的新方法有:PERT功能點(diǎn)估算法、類比估算法、系統(tǒng)分解法等。
除了以上介紹的兩種方法外,還有許多其它的估算方法。不同的方法適用于不同的具體環(huán)境,有些方法雖然很好但并不一定適合當(dāng)前的任務(wù)。因此,建議至少使用兩種方法進(jìn)行規(guī)模估算,不要依賴于任何一種方法。只有量體裁衣,具體問題具體分析,才能得到盡量合理的規(guī)模估算。
準(zhǔn)確進(jìn)行項(xiàng)目規(guī)模估算的步驟
(1)規(guī)模估算前先制定良好的規(guī)劃
一個(gè)成功的軟件項(xiàng)目首先要有一個(gè)好的起點(diǎn),也就是一個(gè)合理的規(guī)劃。同樣道理,一個(gè)好的規(guī)模估算也需要有一個(gè)好的規(guī)劃。例如,當(dāng)我們的辦公室內(nèi)堆滿了雜亂無章的文件時(shí),恐怕是無法知道對(duì)于我們真正有用的文件在哪里。同樣道理,當(dāng)我們從軟件項(xiàng)目中收集了各種需求、意見和問題時(shí),我們也很難從中估算出整個(gè)項(xiàng)目的規(guī)模、工作量以及成本。因此,在估算之前首先要對(duì)眾多信息進(jìn)行整理、歸類和分析,從而得到一個(gè)條理清晰的項(xiàng)目規(guī)劃。在這個(gè)規(guī)劃提供的框架內(nèi),才可能正確的估算。因?yàn)橛辛艘?guī)劃才能成竹在胸,才能給規(guī)模估算指出正確的方向。
(2)確定軟件項(xiàng)目的范圍
確定軟件項(xiàng)目的范圍,就是確定目標(biāo)軟件的數(shù)據(jù)和控制、功能、性能、約束、接口以及可靠性的要求。這項(xiàng)工作和需求分析是很類似的,如果之前已經(jīng)達(dá)成需求分析規(guī)約,那么可以直接從《需求分析說明書》中把有用的部分拿來使用。如果還沒有開始需求分析,就必須要使用需求分析技術(shù)從客戶處得到一個(gè)具體的軟件范圍。因?yàn)榇_定軟件項(xiàng)目的范圍,就能形成一個(gè)有界限的開發(fā)框架。雖然這個(gè)開發(fā)框架還不夠精確,但足以進(jìn)行規(guī)模的估算工作。
(3)制訂各級(jí)別的估算表框架和模板
在開發(fā)框架明確后,我們下一步要做的是把公司內(nèi)部最有項(xiàng)目經(jīng)驗(yàn)、最有估算經(jīng)驗(yàn)的工程們召集在一起,制定各級(jí)別的估算表框架和估算表模板,并寫上足夠清晰的指導(dǎo)。當(dāng)項(xiàng)目組用這些模板的時(shí)候,就相當(dāng)于用了估算精英們的腦袋來思考本項(xiàng)目的估算了。然后,再根據(jù)項(xiàng)目的實(shí)際情況列出具體的活動(dòng),最后是把這些活動(dòng)進(jìn)行細(xì)化估算。據(jù)我過往的經(jīng)驗(yàn),很多時(shí)候規(guī)模估算沒有做好的緣故是因?yàn)闆]有估算好非直接生產(chǎn)編程的活動(dòng)的規(guī)模,例如管理類、支持類、維護(hù)類的活動(dòng),而根本的原因是沒有制定好估算表框架和有合適的模板可利用。
(4)根據(jù)合適的估算表模板進(jìn)行由底而上的估算
最后一步是項(xiàng)目組根據(jù)項(xiàng)目的特點(diǎn)利用合適的估算表模板繼續(xù)細(xì)化,例如進(jìn)行詳細(xì)的WBS分解,列出要完成這個(gè)項(xiàng)目所需要的全部工作。然后,把這些工作通過由底而上的方式進(jìn)行綜合,以估算出項(xiàng)目規(guī)模的大小。
最后,分享這次項(xiàng)目失敗給我的教訓(xùn):要客觀的利用和看待過去的經(jīng)驗(yàn)。因?yàn)橐酝墓浪憬?jīng)驗(yàn)雖然是寶貴的財(cái)富,但是如果財(cái)富用錯(cuò)了地方就會(huì)變成垃圾。在使用歷史經(jīng)驗(yàn)時(shí),要注意現(xiàn)在和參考經(jīng)驗(yàn)之間的差異。不要忘記,隨著時(shí)間的推移,軟件開發(fā)領(lǐng)域的技術(shù)和方法都在發(fā)生著巨大的改變。