軟件項目成果的需求分析方和軟件項目的承擔者都十分關心這樣的一個問題:什么樣的因素會導致軟件項目的失?與項目有關的因素的改變將對按時、按經(jīng)費預算交付符合預定質(zhì)量要求的軟件成果產(chǎn)生什么樣的影響?這些都屬于軟件項目開發(fā)過程中考慮的風險問題。
軟件項目的風險是指在軟件開發(fā)過程中可能出現(xiàn)的不確定因而造成損失或者影響,如資金短缺、項目進度延誤、人員變更以及預算和進度等方面的問題。風險關注未來的事情,這意味著,軟件風險涉及選擇及選擇本身包含的不確定性,軟件開發(fā)過程及軟件產(chǎn)品都要面臨各種決策的選擇。風險是介于確定性和不確定性之間的狀態(tài),是處于無知和完整知識之間的狀態(tài)。另一方面,風險將涉及思想、觀念、行為、地點等因素的改變。
軟件項目風險會影響項目計劃的實現(xiàn),如果項目風險變成現(xiàn)實,就有可能影響項目的進度,增加項目的成本,甚至使軟件項目不能實現(xiàn)。因此有必要對軟件項目中的風險進行分析并采取相應的措施加以管理,盡可能減少風險造成的損失。風險是在項目開始之后才對項目的執(zhí)行過程其負面的影響,所以軟件項目開始之前風險分析的不足,或者是軟件項目實施過程中風險應對措施不得力,都有可能造成軟件失敗。
如果對項目進行風險管理,就可以最大限度的減少風險的發(fā)生。它是為了將不確定因素出現(xiàn)的概率控制到最低,將不確定性所造成的損失減少到最低限度,對軟件項目全過程中的風險識別、分析和應對的過程。在整個軟件項目的實施過程中,可能形成項目風險的因素有很多,如在項目啟動階段可能存在項目目標不明確,與用戶溝通少導致項目范圍不明確等分先因素;在系統(tǒng)設計階段可能因為缺乏有經(jīng)驗的分析人員、設計人員導致和設計的結果不能直接用于程序員的開發(fā);在項目實施階段可能因為開發(fā)環(huán)境沒有準備好,程序員開發(fā)能力差,或者因為用戶提出新的功能需求導致原有設計實效、開發(fā)費用超支,還有可能因為開發(fā)人員的流動導致項目延期,客戶不滿意等情況。
軟件項目運用專家調(diào)查法和頭腦風暴法分析軟件開發(fā)項目中,并將其進行整理分類。
1、由于與客戶溝通不暢對客戶的需求了解不足造成的風險在軟件開發(fā)項目整個生命周期的中都存在的風險,主要包括需求變更風險,涉及風險,過程風險,安裝及維護風險。
2、由于管理人員素質(zhì)不夠,經(jīng)驗不足,溝通不暢,任務或其分配不合理,對項目的控制力度不夠造成的各種風險,主要包括進度風險,預算風險,管理能力風險,信息安全風險。
3、由于技術力量不足,開發(fā)環(huán)境工具不足造成的。主要包括技術風險,質(zhì)量風險,軟件設計工具風險,軟件開發(fā)工具風險,員工技能風險。
4、由于公司或項目組內(nèi)外部環(huán)境變化所導致的風險,主要包括人力資源風險,政策風險,市場風險,營銷風險。
軟件項目中的風險永遠不能全部消除,而只能采用避免、減輕、和接受三種因?qū)Σ呗浴?/span>
避免:通過分析找出發(fā)生風險事件的原因,消除這些原因來避免一些特定風險事件的發(fā)生。
減輕:通過降低風險事件發(fā)生的概率或得失衡量來減輕風險對項目的影響,也可采用風險轉移的方法來減輕風險對項目的影響。