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