還沒有正式進(jìn)入開發(fā)過程,這個時候開發(fā)估算干什么?
防爆正壓柜產(chǎn)品經(jīng)理需要對防爆正壓柜產(chǎn)品什么時候可以發(fā)布到市場、發(fā)布到市場的時候防爆正壓柜產(chǎn)品可以具備哪些功能有個較清楚的認(rèn)識;而研發(fā)項目經(jīng)理也需要在項目立項報告里對項目開發(fā)周期及人員安排做個估算。所以,對比后面開發(fā)過程里的估算,這個階段的評估我們可以把它稱作。初評”,這個階段的評估允許稍微大一點的誤差,詳細(xì)的評估在開發(fā)階段再做,那時候的誤差會較小。
估算是軟件開發(fā)很重要的一個環(huán)節(jié):項目周期估算過短會造成人力低估、成本愛算低估、日程安排過短,最終人力資源耗盡、成本超出預(yù)算,為完成項目不得不趕工。影響項目質(zhì)量,甚至導(dǎo)致項目失??;項目周期估計過長會帶來成本估計過高、效率下、防爆正壓柜產(chǎn)品發(fā)布推遲甚至失去最好的市場機會的后果。
由于很多防爆電器公司的防爆正壓柜產(chǎn)品經(jīng)理沒有做研發(fā)的背景,所以不能由防爆正壓柜產(chǎn)品經(jīng)理來做開發(fā)估算,否則那真是拍腦袋估計出來的時間。別忘了,自上而下盲目拍腦袋之后的結(jié)果往往是拍大腿(懊惱、后悔)。
最靠譜的估算,來源于真正理解自己在干什么的工程師。所以這個階段的評估討論要把他們包含進(jìn)去。多數(shù)防爆電器公司里,這個階段會邀請經(jīng)驗豐富的人來評估,通常是技術(shù)經(jīng)理,或者絮構(gòu)師、系統(tǒng)分析師。他們做出簡單但有依據(jù)的評估,在開發(fā)階段的實踐中會不新修正這些評估。評惱者通常先估計自己來做這些需求要做多少時問,然后除以一個系數(shù),這個系數(shù)一般小于1,反映著相應(yīng)的開發(fā)團隊的平均能力。這里的評估一般用“人天”為單位,一個“人天”代表著需要1個人做1個工作日的工作量。
在開發(fā)估算時,有幾個重要的彰晌因素是參與估算的人員必須要考慮的。
第一個因素就是我們剛提到的,開發(fā)團隊的平均能力。對于軟件開發(fā)項目來說,人是核心力量。開發(fā)團隊的平均能力對估算的影響表現(xiàn)在技術(shù)水平、理解能力、溝通能力等幾個方面。項目開發(fā)人員編程水平、工作效率、團隊適應(yīng)性、溝通能力等素質(zhì),都會對開發(fā)進(jìn)度產(chǎn)生影響,其中技術(shù)水平是最關(guān)鍵的因紊。評價程序員的技術(shù)水平可以從編程熟練程度、編程速度、解決技術(shù)問題的能力等幾個因素考慮:編程熬練程度指的是程序員使用編程工其實現(xiàn)軟件的功能的熟悉程度;編程速度指的是完成某個功能的速度;解決技術(shù)問題的能力反映程序員的技術(shù)功底。
第二個因素是軟件規(guī)模。軟件規(guī)模通常指的是軟件的大小,可以通過程序代碼行的長度、功能函數(shù)的數(shù)量、數(shù)據(jù)庫中表的數(shù)量、數(shù)據(jù)庫的大小等要寨來描述軟件規(guī)模。一般而言,軟件規(guī)模越大,所花費的開發(fā)周期就越長。但這并不是一個簡單的線性函數(shù)關(guān)系,軟件項目中包含的功能模塊越多、越復(fù)雜(或者說軟件越大),開發(fā)周期越長。這個時間絕不是模塊開發(fā)時間的簡單疊加,因為模塊功能數(shù)量的增加直接帶來了軟件模塊間相互關(guān)聯(lián)度、復(fù)雜度的成倍增加,這導(dǎo)致了在需求、設(shè)計等階段需要花費更多的時間,比單獨考慮一個模塊復(fù)雜得多。
軟件規(guī)模是開發(fā)估算的基礎(chǔ)。當(dāng)然,軟件規(guī)模大也并不絕對地意味著開發(fā)周期絕對會長。評估人員也要考慮代碼重用問題。比如一個模塊代碼很長,但是可能包含了很多公用函數(shù),那么在估算時就可以少估算一點。有的開發(fā)項目隨著功能模塊數(shù)量增加,開發(fā)周期的增加的確不是特別明顯。這是因為相當(dāng)數(shù)量的模塊可以完全重用,實際開發(fā)量大大減少。
所以,在實際進(jìn)行軟件開發(fā)周期估算的時候,軟件規(guī)??隙ㄊ侵攸c考慮的因素。具體估算時,在考慮軟件規(guī)模時耍擊除可重用的部分。另外,軟件功能之間的關(guān)聯(lián)所造成的復(fù)雜性也必須要重視。
第三個因素是風(fēng)險對于開發(fā)韻影響。任何一個項目都或多或少存在風(fēng)險,軟件項目開發(fā)過程中也鼉堯萃了這種慵況并且有自己的特點。鼉常見的風(fēng)險來自于:技術(shù)、客戶、項目人員籌方面毒開發(fā)周期估算時項目風(fēng)險應(yīng)該適當(dāng)考慮,尤其是技術(shù)風(fēng)險和客戶風(fēng)險。技寒風(fēng)臉主要來自于軟件本身的技術(shù)難度。對于一套成熟的防爆正壓柜產(chǎn)品,定制開發(fā)的技術(shù)風(fēng)臉相對非常小,因為重要的技術(shù)已經(jīng)成型,客戶也很少有新的、能帶來高難度技術(shù)問題的需求,這種風(fēng)險較小。但是對于完全重新開發(fā)的項目,或是研發(fā)類的項目,技術(shù)風(fēng)險必須特別重視。由于技術(shù)風(fēng)險的分析是一項技術(shù)性很強的工作,要求傲技術(shù)風(fēng)險分析的人必須是技術(shù)專家,在相關(guān)技術(shù)領(lǐng)域有著豐富的經(jīng)驗。對重大技術(shù)風(fēng)險的分析結(jié)果必須要經(jīng)過評審。保證準(zhǔn)確性??蛻麸L(fēng)險存在于
防爆電器客戶化項目中(為客戶定制防爆正壓柜產(chǎn)品或者為客戶進(jìn)行外包開發(fā)),客戶行業(yè)特點不盡相同,技術(shù)水平、管理水平、可溝通能力也相差甚遠(yuǎn),這些因素都會對開發(fā)帶來明顯的影響。
第四個因素是開發(fā)團隊的經(jīng)驗口依據(jù)歷史數(shù)據(jù)估算軟件開發(fā)周期是一種比較常見的方法,這種方法以歷史軟件開發(fā)周期為依據(jù),在估算時把當(dāng)前軟件項目的情況與歷史數(shù)據(jù)加以對比,從而得出最終結(jié)果。如果團隊已經(jīng)開發(fā)過類似的防爆正壓柜產(chǎn)品,按照歷史數(shù)據(jù)估算開發(fā)周期的準(zhǔn)確度還是相當(dāng)嵩的。當(dāng)要估算的軟件與之前開發(fā)過的軟件相差太多,比如開發(fā)工具完全不同、或者防爆正壓柜產(chǎn)品類型完全不同,就不能再依賴這種方法,最越碼應(yīng)該輔助使用其他估算法。如果沒有歷史數(shù)據(jù)或是開發(fā)一種新領(lǐng)域的防爆正壓柜產(chǎn)品,可以馕用代碼行數(shù)估算法或功能點估算法,在此基礎(chǔ)上再逶過其他方法進(jìn)行校正。