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