您的位置:軟件測試 > 軟件項(xiàng)目管理 > 項(xiàng)目管理綜合 >
項(xiàng)目規(guī)模估算失準(zhǔn) 軟件開發(fā)成空中樓閣
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/5/2 15:27:09 ] 推薦標(biāo)簽:

軟件項(xiàng)目的估算歷來是比較復(fù)雜的事,因?yàn)檐浖旧淼膹?fù)雜性、歷史經(jīng)驗(yàn)的可重復(fù)性、估算工具的缺乏以及一些人為錯誤,都會導(dǎo)致軟件項(xiàng)目的估算往往和實(shí)際情況相差甚遠(yuǎn)。據(jù)有關(guān)機(jī)構(gòu)調(diào)查發(fā)現(xiàn),約有60%的軟件項(xiàng)目的失敗是因?yàn)楣浪闫钜鸬模皇且驗(yàn)榧夹g(shù)實(shí)力不夠。因此,估算偏差已被列為軟件項(xiàng)目失敗的四大原因之一。

從軟件工程學(xué)上,我們知道軟件需求和估算是軟件項(xiàng)目的基礎(chǔ)。因?yàn)橹挥袦?zhǔn)確的了解客戶的需求,以之為基礎(chǔ),并使用科學(xué)的方法對目標(biāo)軟件系統(tǒng)的規(guī)模、工作量和進(jìn)度做出合理的估算,我們才能在預(yù)算內(nèi)按時按質(zhì)順利的完成項(xiàng)目。然而,軟件估算作為軟件項(xiàng)目的基礎(chǔ)領(lǐng)域卻常常被人們所忽視。我在近期的一個開發(fā)項(xiàng)目中嘗到忽視軟件規(guī)模估算帶來的苦果,結(jié)果是項(xiàng)目進(jìn)行到一半時發(fā)現(xiàn)不但工期嚴(yán)重滯后于計劃,而且項(xiàng)目的各種資源也嚴(yán)重的不足和缺乏,項(xiàng)目被迫暫停下馬。

常見的項(xiàng)目規(guī)模估算失準(zhǔn)原因

一直以來,軟件項(xiàng)目的規(guī)模估算(Size Estimation)是個爭論不休的問題。不論是對軟件開發(fā)團(tuán)隊(duì)還是對軟件用戶,軟件規(guī)模估算的重要性都是不容置疑的。因?yàn)樗軜O大的影響著甲方對發(fā)包軟件的成本估算,乙方對自身開發(fā)成本的預(yù)測,以及乙方對開發(fā)過程的量化管理等諸多方面。而且,只有相對合理和相對準(zhǔn)確地估算軟件規(guī)模,才能對項(xiàng)目的進(jìn)度安排、資源分配等各個環(huán)節(jié)進(jìn)行合理的部署。所以,軟件項(xiàng)目的規(guī)模估算是軟件項(xiàng)目中相當(dāng)重要的一環(huán)。但是,以下的原因卻使到我在這次項(xiàng)目的實(shí)際操作中對項(xiàng)目規(guī)模估算失準(zhǔn)了:

(1)對項(xiàng)目規(guī)模估算認(rèn)識不足

項(xiàng)目規(guī)模估算一般分為兩種應(yīng)用場景:一是招投標(biāo)的時候用來估價、報價;二是用來安排進(jìn)度計劃和指導(dǎo)項(xiàng)目具體工作的分配。因此,如果對規(guī)模估算認(rèn)識不足的話,將可能會在這兩種應(yīng)用場景中估算失準(zhǔn)。例如,如果項(xiàng)目規(guī)模低估的話會造成人力估算低估、成本預(yù)算低估、日程過短,終人力資源耗盡,成本超出預(yù)算。后為了完成項(xiàng)目不得不趕工,不但會影響到項(xiàng)目質(zhì)量,甚至?xí)䦟?dǎo)致項(xiàng)目失敗。而如果規(guī)模高估的話,會因估價過高而降低了招投標(biāo)時的競爭力,或在進(jìn)度安排時提高了開發(fā)成本和浪費(fèi)資源。由于對規(guī)模估算的認(rèn)識不足,使到我在這次項(xiàng)目中嘗到一個大苦果,是低估項(xiàng)目規(guī)模導(dǎo)致項(xiàng)目需要多次的追加預(yù)算。我不但多次受到公司領(lǐng)導(dǎo)的批評,而且還受到客戶的多次投訴。

(2)個人經(jīng)驗(yàn)估算法帶有一定的局限性

一般來說,依靠歷史或個人經(jīng)驗(yàn)的規(guī)模估算方法都有一定的局限性。原因是很難在項(xiàng)目分析和計劃階段對軟件的規(guī)模進(jìn)行相對準(zhǔn)確的估算。因?yàn)楣浪闶且揽吭u估人員的經(jīng)驗(yàn),所以對評估人員的能力要求比較強(qiáng),并且難以由第三方對評估人員的工作偏差作出修正。在這次項(xiàng)目的初期,我片面的只是根據(jù)個人經(jīng)驗(yàn)進(jìn)行估算,結(jié)果是輕率的估算了項(xiàng)目規(guī)模。這是后導(dǎo)致項(xiàng)目失利的原因之一。另外,不同軟件項(xiàng)目使用的技術(shù)不一樣,這一點(diǎn)也非常影響到軟件規(guī)模的估算。例如同一個功能,使用JAVA語言和使用Ruby語言所涉及的代碼行相差數(shù)十行,甚至數(shù)百行。即使同為JAVA語言,使用不用的框架所需要編寫的代碼行也不一樣。

(3)對項(xiàng)目估算時缺乏數(shù)據(jù)支持

因?yàn)樵谲浖_發(fā)初期時對規(guī)模估算都是很難準(zhǔn)確量化的,所以到底需要多少資源、多長時間或者規(guī)模估算到什么的程度才算是合理的是沒有一個標(biāo)準(zhǔn)的。但一個好的項(xiàng)目估算,是離不開一個準(zhǔn)確的、可信的、客觀的數(shù)據(jù)作為基礎(chǔ)。如果在項(xiàng)目規(guī)模估算時只憑項(xiàng)目管理人員的經(jīng)驗(yàn)進(jìn)行估算,而缺乏大量的數(shù)據(jù)支持,那么估算終會變成常見的"三拍"現(xiàn)象:"首先是項(xiàng)目經(jīng)理拍腦袋估算,然后是項(xiàng)目經(jīng)理估算失準(zhǔn)時拍馬屁的補(bǔ)救,后是項(xiàng)目失敗時拍屁股走人"。當(dāng)然,這只是個玩笑。不過由此可見項(xiàng)目規(guī)模估算不能只依靠經(jīng)驗(yàn)來估算,而應(yīng)該是要有大量的數(shù)據(jù)來支持。

什么是軟件項(xiàng)目的規(guī)模估算?

軟件開發(fā)項(xiàng)目管理中的一項(xiàng)重要任務(wù)是開發(fā)項(xiàng)目的規(guī)模估算,這是極其重要但卻很容易被忽視的一項(xiàng)內(nèi)容。因?yàn)闆]有正確的規(guī)模估算,項(xiàng)目計劃會失去成功的基礎(chǔ)。可惜大部分的開發(fā)團(tuán)隊(duì)都很難做到對項(xiàng)目規(guī)模進(jìn)行準(zhǔn)確的估算。

(1)什么是項(xiàng)目規(guī)模估算?

做好軟件項(xiàng)目管理的基礎(chǔ)是要做好項(xiàng)目的規(guī)劃工作,而做好項(xiàng)目規(guī)劃的前提是要做好軟件估算。也是說,是沒有好的軟件估算,項(xiàng)目的規(guī)劃、跟蹤和控制根本無從談起。因此,軟件估算是項(xiàng)目計劃活動的基礎(chǔ)之一。

軟件估算一般是通過主觀經(jīng)驗(yàn)和客觀分析兩種方法進(jìn)行,包括有四個重要方面:規(guī)模估算、工作量估算、進(jìn)度估算和成本估算。其中,對規(guī)模進(jìn)行估算是為了將項(xiàng)目范圍進(jìn)行量化。規(guī)模估算是整個軟件估算中核心、基礎(chǔ)的環(huán)節(jié),也是整個軟件估算的第一步。規(guī)模估算有兩個主要作用:一是通過規(guī)模估算建立項(xiàng)目基線;二是利用基線對項(xiàng)目生產(chǎn)率和狀態(tài)進(jìn)行評價,并確定軟件過程的進(jìn)度目標(biāo)。也是說,規(guī)模估算是一切估算的基礎(chǔ),是能直接決定和影響到其它三個估算的決策。

(2)常用的軟件規(guī)模估算方法

估算是建立在客觀事實(shí)上對未來可能發(fā)生的事情的一種合理性預(yù)測。估算本身的不確定性,決定了它不可能是百分之百準(zhǔn)確無誤的,但是依據(jù)某種方法進(jìn)行合理估計顯然比瞎猜好得多。軟件估算方法有很多,大致分為基于技術(shù)分解模型和基于經(jīng)驗(yàn)?zāi)P蛢纱箢。目前基于技術(shù)分解模型的方法有:功能點(diǎn)估算法、LOC估算法、MARK II等;基于經(jīng)驗(yàn)?zāi)P偷姆椒ㄓ校篒BM模型、普特南模型、COCOMO模型等。目前基于技術(shù)分解的常用方法是FP功能點(diǎn)估算法和LOC代碼行估算法。本文重點(diǎn)介紹這兩種方法。

①FP功能點(diǎn)法

功能點(diǎn)分析法 (FPA:Function Point Analysis) 是一種相對抽象的方法,是一種人為設(shè)計的估算方式。它是從系統(tǒng)的復(fù)雜性和系統(tǒng)的特性這兩個角度來估算系統(tǒng)的規(guī)模,它的關(guān)注點(diǎn)在于程序的"功能性"和"實(shí)用性",是對軟件和軟件開發(fā)過程的間接估算。初是由 IBM 工程師艾倫艾爾布策提出的,隨后被IFPUG 方法繼承,是目前國際上主流的軟件規(guī)模估算方法。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd