以及衡量不同階段目標(biāo)的標(biāo)準(zhǔn),在軟件開發(fā)的各個階段中,即需求分析階段、軟件設(shè)計階段、編碼階段和測試階段,我們可以發(fā)現(xiàn)存在于各階段中的風(fēng)險項。并由項目經(jīng)理在啟動、計劃、執(zhí)行、控制、結(jié)束五個階段予以控制。此項目開發(fā)的目標(biāo)是為了向?qū)徲嫻咎峁┹o助審計管理系統(tǒng)。開發(fā)流程也是比較遵從軟件工程的規(guī)范的。但是最終的結(jié)果卻不盡人意,投入了比預(yù)料多幾倍的人力物力。根據(jù)當(dāng)時參與項目的同事的分析,失敗的原因主要是:
1)需求不明確
由于出發(fā)點和利益不同,系統(tǒng)開發(fā)者與用戶對于同一問題常有不同看法,這樣需求分析的風(fēng)險就逐漸加大了。另外對需求變更的控制做得不好。需求的改變,就會產(chǎn)生連鎖反應(yīng),有時候這種反應(yīng)會導(dǎo)致程序的不穩(wěn)定,嚴(yán)重的時候,一個錯誤的修改引起另一處程序的錯誤,而新的錯誤的修改會導(dǎo)致更新的錯誤,更嚴(yán)重的情況,不是所有的錯誤都能被修改。
2)技術(shù)風(fēng)險
此軟件數(shù)據(jù)結(jié)構(gòu)復(fù)雜,邏輯關(guān)聯(lián)性比較強(qiáng)。軟件需要與第三方財務(wù)軟件產(chǎn)品的數(shù)據(jù)庫系統(tǒng)接口。帶來了相當(dāng)?shù)募夹g(shù)開發(fā)困難,阻礙了項目的進(jìn)行。由于以上原因到了測試階段,未確定的需求和不斷發(fā)現(xiàn)的bug成了災(zāi)難。結(jié)果測試當(dāng)天就因為一個bug導(dǎo)致數(shù)據(jù)被誤刪和數(shù)據(jù)混亂。
于是暫停測試,改為封閉式開發(fā),并且繼續(xù)增加人員,第二次修改時是才發(fā)現(xiàn)整個數(shù)據(jù)結(jié)構(gòu)也要發(fā)生變動,這就意味著無異于從新開發(fā)一次,所以最后不得不投入大量的人員予以彌補(bǔ)。分析原因,為什么這個項目會失???看來好像是需求沒有做好,其實是沒有把風(fēng)險放在整個項目這個大系統(tǒng)下來對待,沒有建立一套完整的風(fēng)險管理機(jī)制,這樣一來風(fēng)險因素就容易被忽略。
然而,軟件項目前一階段的失誤會對下一階段產(chǎn)生嚴(yán)重的影響。一旦發(fā)生了變化,就不得不修改設(shè)計、重寫代碼、修改測試用例、調(diào)整項目計劃等等,為項目的正常的進(jìn)展帶來不盡的麻煩。所以,沒有切實可行的風(fēng)險管理過程機(jī)制,就很難有效地保證風(fēng)險管理活動的效率。建立切實可行的風(fēng)險管理過程機(jī)制是軟件風(fēng)險管理理論研究成果最終在實踐中得到應(yīng)用的最根本保證。