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