小軟件項(xiàng)目開發(fā)的管理

字號:

一個(gè)企業(yè)的管理,大公司有大公司的方式,小公司也有小公司的方式,如果把別人的 經(jīng)驗(yàn)生搬硬套到自己身上,可能會(huì)適得其反。同樣,管理一個(gè)軟件項(xiàng)目也一樣,大項(xiàng)目和小項(xiàng)目的方式不完全一樣。但從另一個(gè)角度來看,項(xiàng)目的大與小并沒有本質(zhì)的區(qū)別,很多方法是共通的。本文的目的是從作者的經(jīng)驗(yàn)來談?wù)勑№?xiàng)目開發(fā)的管理。
    一、小項(xiàng)目的特點(diǎn)
    大家知道,“軟件危機(jī)”的出現(xiàn)起源于一些大型項(xiàng)目的不斷延遲甚至失敗。小項(xiàng)目相比之下,具有以下特點(diǎn):
     1.項(xiàng)目功能相對較少
    2.開發(fā)人員較少
    3.開發(fā)周期較短
    另外,在現(xiàn)實(shí)中,有很多小項(xiàng)目是由一些中小公司進(jìn)行開發(fā)的,這些公司往往人員流動(dòng)性較大,這也是不容忽視的一個(gè)現(xiàn)實(shí).
    二、小項(xiàng)目開發(fā)中常犯的錯(cuò)誤
       小項(xiàng)目看起來比較簡單,比較容易成功,因而人們往往忽視了小項(xiàng)目的管理,其實(shí)這是一種誤解,從本人的經(jīng)驗(yàn)看來,小項(xiàng)目開發(fā)中容易犯以下的一些錯(cuò)誤:
    1、開發(fā)之前沒有認(rèn)真地進(jìn)行項(xiàng)目可行性和工作量的估計(jì)?! ⊥捎陧?xiàng)目較小,便很草率地制定一個(gè)開發(fā)日程表,沒有認(rèn)真地估計(jì)項(xiàng)目難度,結(jié)果實(shí)際完成時(shí)間與估計(jì)完成時(shí)間往往有較大差別。
    2、沒有真正的設(shè)計(jì)過程
    開發(fā)人員少,意味著不同人員的程序之間交互、接口相對少一些。開發(fā)周期短意味著往往是同樣的幾個(gè)人從頭到尾負(fù)責(zé)一個(gè)項(xiàng)目。這兩者都讓人容易犯些錯(cuò)誤。往往是幾個(gè)人碰一下頭,討論一下最基本的數(shù)據(jù)結(jié)構(gòu)、函數(shù)接口便分頭去做自己的工作了,沒有一份較正式的文檔。
    這種做法潛在的危險(xiǎn)之一是有的人可能會(huì)對討論出的接口、結(jié)構(gòu)理解有偏差(應(yīng)該承認(rèn)人是會(huì)犯錯(cuò)誤的)。一個(gè)誤解可能造成以后的返工。   另一個(gè)潛在的危險(xiǎn)是由于討論時(shí)忽略了某些情況,等大家都按當(dāng)時(shí)的分工完成屬于自己的工作后,才發(fā)現(xiàn)各個(gè)模塊組合起來卻形不成一個(gè)完整的系統(tǒng)。其根源在于沒有一個(gè)負(fù)責(zé)協(xié)調(diào)的人員不斷監(jiān)控整個(gè)開發(fā)過程。
    第三個(gè)潛在的危險(xiǎn)是一旦有人中途退出開發(fā)隊(duì)伍,其他人加入時(shí),新來的人難以理解 以前別人做好的代碼,索性自己從頭來。另外,沒有文檔的程序,日后維護(hù)和版本升級都比較困難。
    3.不經(jīng)過單元測試而直接進(jìn)入系統(tǒng)測試
    造成這一現(xiàn)象的原因是每個(gè)模塊相對比較簡單,但是為了測試一個(gè)模塊需要建立一些測試環(huán)境。例如,為了測試一個(gè)函數(shù)是否正確,應(yīng)該用一些測試數(shù)據(jù)去調(diào)用該函數(shù),需要編寫一些測試數(shù)據(jù)。但很多開發(fā)人員嫌麻煩,覺得反正其他模塊也很快出來了,直接用真正的數(shù)據(jù)來運(yùn)行幾次就行了。
    殊不知,一旦直接進(jìn)入系統(tǒng)測試,發(fā)現(xiàn)運(yùn)行結(jié)果不正確后需要一步步查找。由于模塊間的調(diào)用關(guān)系,可能查了很久才發(fā)現(xiàn)是某個(gè)模塊的問題。這種方法一來效率比較低,大量的時(shí)間用在了將一個(gè)錯(cuò)誤定位在模塊上了。另外由于這種測試不完全,真正運(yùn)行系統(tǒng),當(dāng) 調(diào)用某模塊時(shí),可能大部分時(shí)候都是正常數(shù)據(jù),極少出現(xiàn)邊界情況,可能某些邊界情況容易被忽視,很久之后才被發(fā)現(xiàn)。但是如果對每個(gè)模塊進(jìn)行單元測試時(shí)都進(jìn)行一下邊界測 試,就會(huì)很容易消除一些隱患。真可謂欲速則不達(dá)也。