软件风险基础知识
在軟件開發和實際應用過程中,都會存在一定的風險,而對于該種風險的規避則已經成為軟件測試工作開展過程中的核心所在。
?
軟件風險管理的概念:
在軟件開發過程中所遭遇到的預算和進度問題以及部分對軟件項目會產生影響的因素,都被稱之為軟件項目風險。對于軟件風險的管理遵循以下基本原則,即試圖通過一種完全可行的原則和實踐,對可能影響項目成功的因素進行規范化控制和管理,繼而減少項目失敗的概率和風險,提升團隊自身的穩固性。借助風險管理能夠有效幫助項目經理及時找尋到項目的核心,繼而將有限精力放置于重大風險的管理和控制方面,最終使得測試管理工作由被動轉為主動。
?
軟件項目中的風險來源:
軟件項目的風險主要來源于需求、技術、成本和進度。
需求風險
已經納入基線的需求在繼續變更;需求定義不準確,進一步的定義會擴展項目。
在軟件開發過程中,由于產品自身的定義并不明確,因此常常會需要比預期更多的時間對其進行更正,此外,在需求制定過程中,因為沒有客戶的積極參與,使得需求變化管理難以準確制定,更無法形成計劃編制風險。計劃、資源以及產品定義完全依賴客戶或者上層領導的口頭指令,在此過程中常常會出現指令不一致的現象。計劃的制定其實是對項目進行優化,但是不現實的計劃只能算作期待狀態。
?
組織和管理風險
僅僅由管理層或者市場人員完成技術決策,將會使得計劃整體進度緩慢,計劃時間也會不斷延長,低效的項目組織結構會使得生產效率大大降低。管理層審查決策的周期比預期的時間長;預算削減,打亂項目計劃;管理層作出了打擊項目組織積極性的決定;缺乏必要的規范,導至工作失誤與重復工作;非技術的第三方的工作(預算批準、設備采購批準、法律方面的審查、安全保證等)時間比預期的延長。
?
人員具有的風險
在項目實施過程中如果對于人員的培訓不夠及時,開發人員和管理階層之間存在矛盾,那么將會使得決策速度大大放緩,繼而影響項目的整體進度。而項目團隊如果缺乏激情,那么將會極大的影響自身的生產能力。項目后期加入新的開發人員,需進行培訓并逐漸與現有成員溝通,從而使現有成員的工作效率降低;由于項目組成員之間發生沖突,導致溝通不暢、設計欠佳、接口出現錯誤和額外的重復工作;不適應工作的成員沒有調離項目組,影響了項目組其他成員的積極性;沒有找到項目急需的具有特定技能的人。
?
開發環境存在的風險
在開發環境中存在的風險主要包括設施沒有及時到位,或者雖然能夠到位但是缺乏配套設施。設施的放置過于擁擠和雜亂或者出現破損。開發工具沒有及時到位,對于開發工具的使用不如所期待的那樣產生既定效果。對于全新開發工具的學習時間遠遠超過預期,并且內容極為繁多。
?
客戶風險:
客戶對于最后交付的產品不滿意,要求重新設計和重做;客戶的意見未被采納,造成產品最終無法滿足用戶要求,因而必須重做;客戶對規劃、原型和規格的審核決策周期比預期的要長;客戶沒有或不能參與規劃、原型和規格階段的審核,導致需求不穩定和產品生產周期的變更;客戶答復的時間(如回答或澄清與需求相關問題的時間)比預期長;客戶提供的組件質量欠佳,導致額外的測試、設計和集成工作,以及額外的客戶關系管理工作。
?
產品風險:
矯正質量低下的不可接受的產品,需要比預期更多的測試、設計和實現工作;開發額外的不需要的功能(鍍金),延長了計劃進度;嚴格要求與現有系統兼容,需要進行比預期更多的測試、設計和實現工作;要求與其他系統或不受本項目組控制的系統相連,導致無法預料的設計、實現和測試工作;在不熟悉或未經檢驗的軟件和硬件環境中運行所產生的未預料到的問題;開發一種全新的模塊將比預期花費更長的時間;依賴正在開發中的技術將延長計劃進度。
?
設計和實現風險:
設計質量低下,導致重復設計;一些必要的功能無法使用現有的代碼和庫實現,開發人員必須使用新的庫或者自行開發新的功能;代碼和庫質量低下,導致需要進行額外的測試,修正錯誤,或重新制作;過高估計了增強型工具對計劃進度的節省;分別開發的模塊無法有效集成,需要重新設計或制作。
?
開發中過程風險:
大量的紙面工作導致進程比預期的慢;前期的質量保證行為不真實,導致后期的重復工作;太不正規(缺乏對軟件開發策略和標準的遵循),導致溝通不足,質量欠佳,甚至需重新開發;過于正規(教條地堅持軟件開發策略和標準),導致過多耗時于無用的工作;向管理層撰寫進程報告占用開發人員的時間比預期的多;風險管理粗心,導致未能發現重大的項目風險。
?
?
?
?
軟件風險一般包括不確定性和損失兩個特性。
其中不確定性是指風險可能發生,也可能不發生;
損失是當風險確實發生時,會引起的不希望的后果和損失。
救火和危機管理是對不適合但經常采用的軟件風險管理策略。
已知風險和未知風險是對軟件風險進行分類的一種方式。
員工和預算是在識別項目風險時需要識別的因素。
風險預測從風險發生的可能性大小以及風險發生所產生的后果是否嚴重兩個方面評估風險。
風險類型
客戶特性是指與客戶的素質以及開發者和客戶定期通信的能力相關的風險;
過程定義是指與軟件過程被定義的程度以及它們被開發組織所遵守的程序相關的風險;
開發環境是指與用以構建產品的工具的可用性及質量相關的風險;
構建技術是指與待開發軟件的復雜性及系統所包含技術的“新奇性”相關的風險。
風險分析
風險分析在軟件項目開發中具有重要作用,包括風險識別、風險預測、風險評估和風險控制等。
在風險識別過程中,要識別潛在的預算、進度、個體、資源、用戶和需求等方面的問題以及對整個項目的影響,并建立風險條目檢查表,列出所有可能的風險事項。
在風險預測過程中,需要建立一個表示風險可能性的參考標準,描述風險條目的結果,估計風險對項目的影響等。
風險評估就是量化測評某一事件或事物帶來的影響或損失的可能程度。
風險控制是指風險管理者采取各種措施和方法,消滅或減少風險事件發生的各種可能性,或風險控制者減少風險事件發生時造成的損失。風險控制的四種基本方法是:風險回避、損失控制、風險轉移和風險保留。
?
轉載自:http://www.360doc.com/content/17/0721/07/22573478_672976467.shtml
總結
- 上一篇: oracle在线中文文档,Oracle
- 下一篇: 【机器学习】总结机器学习3个时代的算力规