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