診斷中小企業(yè)軟件項目管理
發(fā)布時(shí)間:2015/6/23 9:43:00
民間有一句俗語(yǔ):多大的腳穿多大的鞋。對于一個(gè)企業(yè)的管理來(lái)講,大公司有大公司的方式,小公司也有小公司的方式,如果把別人的經(jīng)驗生搬硬套到自己身上,可能會(huì )適得其反。同樣,管理一個(gè)軟件項目也一樣,大項目和小項目的方式雖然不完全一樣。而從另一個(gè)角度來(lái)看,項目的大與小并沒(méi)有本質(zhì)的區別,很多方法是共通的。
小型軟件項目中常犯的錯誤
相對于大型軟件項目,小型軟件項目具有靈活性高、項目功能相對較少、開(kāi)發(fā)人員較少、開(kāi)發(fā)周期較短的特點(diǎn)。業(yè)內常常提到“軟件危機”一詞,常是指一些大型軟件項目延期,導致項目順利交接存在困難。這并不意味著(zhù)“軟件危機”就與小型軟件項目毫無(wú)干系。正如上述小型軟件項目的特點(diǎn),小項目看起來(lái)比較簡(jiǎn)單,比較容易成功實(shí)現,因而人們往往忽視了小項目的管理,其實(shí)這是一種誤解,從本人的經(jīng)驗看來(lái),小項目開(kāi)發(fā)中容易犯以下的一些錯誤:
企業(yè)層面:
1、草率確定項目人員
對于中小IT企業(yè)來(lái)講,人員流動(dòng)性高,崗位頻繁調換是不爭的事實(shí)。如果這種情況出現在項目中,將對項目造成致命的影響。試想一下如果一個(gè)項目,即使是個(gè)小型軟件項目,開(kāi)發(fā)人員三天兩頭調來(lái)調去,開(kāi)發(fā)設計怎么可能實(shí)現呢?所以企業(yè)要根據其項目的周期長(cháng)短謹慎選擇開(kāi)發(fā)人員,保證其在開(kāi)發(fā)過(guò)程中可以不間斷。
2、不看重隱性影響
作為一位項目組成員,當項目自開(kāi)始時(shí),就把自己與項目的命運聯(lián)系在一起了。項目的成功與失敗都無(wú)疑會(huì )對項目組成員造成心理上、情緒上的影響。在我們許多中小企業(yè)中,企業(yè)往往關(guān)心的那些大型項目的成果,而忽視了小型項目。原因往往也很簡(jiǎn)單:大型項目意味著(zhù)大收益。然而,項目對項目組成員的隱性影響卻不管項目的大小,且這些影響最終會(huì )體現在企業(yè)的人員積極性上,這不能不說(shuō)是企業(yè)有效運營(yíng)的關(guān)鍵。
項目管理層面:
1、草率的計劃方案
企業(yè)往往由于項目較小,在軟件開(kāi)發(fā)之前沒(méi)有認真地進(jìn)行項目可行性和工作量的估計,便很草率地制定一個(gè)開(kāi)發(fā)日程表,沒(méi)有認真地估計項目難度,結果實(shí)際完成時(shí)間與估計完成時(shí)間往往有較大差別,這種偏差必將是項目陷入困境。
筆者從一位做項目管理咨詢(xún)工作的朋友哪里了解到,許多中小企業(yè)對于這種偏差的認識始終停留在是執行過(guò)程除了差錯,然而根源卻是項目的前端出了問(wèn)題。
2、蹩腳設計過(guò)程
從小項目的特點(diǎn)來(lái)看,開(kāi)發(fā)人員少,意味著(zhù)不同人員的程序之間交互、接口相對少一些;開(kāi)發(fā)周期短意味著(zhù)往往是同樣的幾個(gè)人從頭到尾負責一個(gè)項目。這兩者雖是小項目的優(yōu)勢,卻都讓人容易犯些錯誤,比如實(shí)施中,往往是幾個(gè)人碰一下意見(jiàn),討論一下最基本的數據結構、函數接口便分頭去做自己的工作了,并沒(méi)有一份較正式的文檔。其實(shí)很多中小企業(yè)都是這樣的。這種做法很危險。
危險之一是有的人可能會(huì )對討論出的接口、結構理解有偏差,應該承認并不是所有參加會(huì )議的人總是很明白,人是會(huì )犯錯誤的。而往往一個(gè)單純的誤解可能造成以后的返工。
另一個(gè)危險是由于討論時(shí)忽略了某些情況,等大家都按當時(shí)的分工完成屬于自己的工作后,才發(fā)現各個(gè)模塊組合起來(lái)卻形不成一個(gè)完整的系統。其根源在于系統設計不充分,沒(méi)有一個(gè)負責協(xié)調的人員不斷監控整個(gè)開(kāi)發(fā)過(guò)程。
第三個(gè)危險是一旦有人中途退出開(kāi)發(fā)隊伍,其他人加入時(shí),新來(lái)的人難以理解以前別人做好的代碼,索性自己從頭來(lái)。另外,沒(méi)有文檔的程序,日后維護和版本升級都比較困難。這些不僅是項目沒(méi)有成功,而且為項目的后續工作要付出很多努力。
3、直奔系統測試
指項目不經(jīng)過(guò)單元測試而直接進(jìn)入系統測試,造成這一現象的原因是每個(gè)模塊相對比較簡(jiǎn)單,但是為了測試一個(gè)模塊需要建立一些測試環(huán)境。比如為了測試一個(gè)函數是否正確,應該用一些測試數據去調用該函數,需要編寫(xiě)一些測試數據。筆者曾經(jīng)做開(kāi)發(fā)時(shí),也嫌麻煩,覺(jué)得反正其他模塊也很快出來(lái)了,直接用真正的數據來(lái)運行幾次就行了。 殊不知,一旦直接進(jìn)入系統測試,發(fā)現運行結果不正確后需要一步一步查找。同時(shí),由于模塊間的調用關(guān)系,可能查了很久才發(fā)現是某個(gè)模塊的問(wèn)題。
這種方法如果僥幸成功,效率可能會(huì )很高,但這種概率不超過(guò)40%。所以,總體看來(lái),這種方法一來(lái)效率比較低,大量的時(shí)間用在了將一個(gè)錯誤定位在模塊上了。另外由于這種測試不完全,真正運行系統,當調用某模塊時(shí),可能大部分時(shí)候都是正常數據,極少出現邊界情況,可能某些邊界情況容易被忽視,很久之后才被發(fā)現,正所謂欲速則不達。然而,如果我們對每個(gè)模塊進(jìn)行單元測試時(shí)都進(jìn)行一下邊界測試,就會(huì )很容易消除這些隱患。 (項目管理者聯(lián)盟)
更多內容詳細咨詢(xún):http://www.firg8.com/