軟件項(xiàng)目風(fēng)險(xiǎn)是指在軟件開(kāi)發(fā)過(guò)程中遇到的預(yù)算和進(jìn)度等方面的問(wèn)題以及這些問(wèn)題對(duì)軟件項(xiàng)目的影響。軟件項(xiàng)目風(fēng)險(xiǎn)會(huì)影響項(xiàng)目計(jì)劃的實(shí)現(xiàn),如果項(xiàng)目風(fēng)險(xiǎn)變成現(xiàn)實(shí),就有可能影響項(xiàng)目的進(jìn)度,增加項(xiàng)目的成本,甚至使軟件項(xiàng)目不能實(shí)現(xiàn)。如果對(duì)項(xiàng)目進(jìn)行風(fēng)險(xiǎn)管理,就可以最大限度的減少風(fēng)險(xiǎn)的發(fā)生。但是,目前國(guó)內(nèi)的軟件企業(yè)不太關(guān)心軟件項(xiàng)目的風(fēng)險(xiǎn)管理,結(jié)果造成軟件項(xiàng)目經(jīng)常性的延期、超過(guò)預(yù)算,甚至失敗。成功的項(xiàng)目管理一般都對(duì)項(xiàng)目風(fēng)險(xiǎn)進(jìn)行了良好的管理。因此任何一個(gè)系統(tǒng)開(kāi)發(fā)項(xiàng)目都應(yīng)將風(fēng)險(xiǎn)管理作為軟件項(xiàng)目管理的重要內(nèi)容。
在項(xiàng)目風(fēng)險(xiǎn)管理中,存在多種風(fēng)險(xiǎn)管理方法與工具,軟件項(xiàng)目管理只有找出最適合自己的方法與工具并應(yīng)用到風(fēng)險(xiǎn)管理中,才能盡量減少軟件項(xiàng)目風(fēng)險(xiǎn),促進(jìn)項(xiàng)目的成功。
項(xiàng)目風(fēng)險(xiǎn)管理
項(xiàng)目風(fēng)險(xiǎn)管理是指為了最好的達(dá)到項(xiàng)目的目標(biāo),識(shí)別、分配、應(yīng)對(duì)項(xiàng)目生命周期內(nèi)風(fēng)險(xiǎn)的科學(xué)與藝術(shù)。項(xiàng)目風(fēng)險(xiǎn)管理的目標(biāo)是使?jié)撛跈C(jī)會(huì)或回報(bào)最大化,使?jié)撛陲L(fēng)險(xiǎn)最小化。風(fēng)險(xiǎn)管理涉及的主要過(guò)程包括:風(fēng)險(xiǎn)識(shí)別,風(fēng)險(xiǎn)量化,風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定和風(fēng)險(xiǎn)監(jiān)控,如圖1所示。風(fēng)險(xiǎn)識(shí)別在項(xiàng)目的開(kāi)始時(shí)就要進(jìn)行,并在項(xiàng)目執(zhí)行中不斷進(jìn)行。就是說(shuō),在項(xiàng)目的整個(gè)生命周期內(nèi),風(fēng)險(xiǎn)識(shí)別是一個(gè)連續(xù)的過(guò)程。
?。?)風(fēng)險(xiǎn)識(shí)別:風(fēng)險(xiǎn)識(shí)別包括確定風(fēng)險(xiǎn)的來(lái)源,風(fēng)險(xiǎn)產(chǎn)生的條件,描述其風(fēng)險(xiǎn)特征和確定哪些風(fēng)險(xiǎn)事件有可能影響本項(xiàng)目。風(fēng)險(xiǎn)識(shí)別不是一次就可以完成的事,應(yīng)當(dāng)在項(xiàng)目的自始至終定期進(jìn)行。
?。?)風(fēng)險(xiǎn)量化:涉及對(duì)風(fēng)險(xiǎn)及風(fēng)險(xiǎn)的相互作用的評(píng)估,是衡量風(fēng)險(xiǎn)概率和風(fēng)險(xiǎn)對(duì)項(xiàng)目目標(biāo)影響程度的過(guò)程。風(fēng)險(xiǎn)量化的基本內(nèi)容是確定那些事件需要制定應(yīng)對(duì)措施。。
?。?)風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定:針對(duì)風(fēng)險(xiǎn)量化的結(jié)果,為降低項(xiàng)目風(fēng)險(xiǎn)的負(fù)面效應(yīng)制定風(fēng)險(xiǎn)應(yīng)對(duì)策略和技術(shù)手段的過(guò)程。風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃依據(jù)風(fēng)險(xiǎn)管理計(jì)劃、風(fēng)險(xiǎn)排序、風(fēng)險(xiǎn)認(rèn)知等依據(jù),得出風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃、剩余風(fēng)險(xiǎn)、次要風(fēng)險(xiǎn)以及為其它過(guò)程提供得依據(jù)。
?。?)風(fēng)險(xiǎn)監(jiān)控:涉及整個(gè)項(xiàng)目管理過(guò)程中的風(fēng)險(xiǎn)進(jìn)行應(yīng)對(duì)。該過(guò)程的輸出包括應(yīng)對(duì)風(fēng)險(xiǎn)的糾正措施以及風(fēng)險(xiǎn)管理計(jì)劃的更新。
每個(gè)步驟所使用的工具和方法詳見(jiàn)表1:
表1 風(fēng)險(xiǎn)管理過(guò)程中所使用的工具、方法
風(fēng)險(xiǎn)管理步驟 所使用的工具、方法 風(fēng)險(xiǎn)識(shí)別 頭腦風(fēng)暴法、面談、Delphi法、核對(duì)表、SWOT技術(shù) 風(fēng)險(xiǎn)量化 風(fēng)險(xiǎn)因子計(jì)算、PERT估計(jì)、決策樹(shù)分析、風(fēng)險(xiǎn)模擬 風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定 回避、轉(zhuǎn)移、緩和、接受 風(fēng)險(xiǎn)監(jiān)控 核對(duì)表、定期項(xiàng)目評(píng)估、掙值分析
軟件項(xiàng)目中的風(fēng)險(xiǎn)管理
1、軟件項(xiàng)目中的風(fēng)險(xiǎn)
軟件項(xiàng)目的風(fēng)險(xiǎn)無(wú)非體現(xiàn)在以下四個(gè)方面:需求、技術(shù)、成本和進(jìn)度。IT項(xiàng)目開(kāi)發(fā)中常見(jiàn)的風(fēng)險(xiǎn)有如下幾類(lèi):
?。?)需求風(fēng)險(xiǎn)
?、傩枨笠呀?jīng)成為項(xiàng)目基準(zhǔn),但需求還在繼續(xù)變化;
?、谛枨蠖x欠佳,而進(jìn)一步的定義會(huì)擴(kuò)展項(xiàng)目范疇;
?、厶砑宇~外的需求;
?、墚a(chǎn)品定義含混的部分比預(yù)期需要更多的時(shí)間;
?、菰谧鲂枨笾锌蛻魠⑴c不夠;
?、奕鄙儆行У男枨笞兓芾磉^(guò)程。
?。?)計(jì)劃編制風(fēng)險(xiǎn)
①計(jì)劃、資源和產(chǎn)品定義全憑客戶或上層領(lǐng)導(dǎo)口頭指令,并且不完全一致;
?、谟?jì)劃是優(yōu)化的,是"最佳狀態(tài)",但計(jì)劃不現(xiàn)實(shí),只能算是"期望狀態(tài)";
③計(jì)劃基于使用特定的小組成員,而那個(gè)特定的小組成員其實(shí)指望不上;
?、墚a(chǎn)品規(guī)模(代碼行數(shù)、功能點(diǎn)、與前一產(chǎn)品規(guī)模的百分比)比估計(jì)的要大;
?、萃瓿赡繕?biāo)日期提前,但沒(méi)有相應(yīng)地調(diào)整產(chǎn)品范圍或可用資源;
⑥涉足不熟悉的產(chǎn)品領(lǐng)域,花費(fèi)在設(shè)計(jì)和實(shí)現(xiàn)上的時(shí)間比預(yù)期的要多。
?。?)組織和管理風(fēng)險(xiǎn)
①僅由管理層或市場(chǎng)人員進(jìn)行技術(shù)決策,導(dǎo)致計(jì)劃進(jìn)度緩慢,計(jì)劃時(shí)間延長(zhǎng);
?、诘托У捻?xiàng)目組結(jié)構(gòu)降低生產(chǎn)率;
?、酃芾韺訉彶?決策的周期比預(yù)期的時(shí)間長(zhǎng);
?、茴A(yù)算削減,打亂項(xiàng)目計(jì)劃;
⑤管理層作出了打擊項(xiàng)目組織積極性的決定;
?、奕狈Ρ匾囊?guī)范,導(dǎo)致工作失誤與重復(fù)工作;
?、叻羌夹g(shù)的第三方的工作(預(yù)算批準(zhǔn)、設(shè)備采購(gòu)批準(zhǔn)、法律方面的審查、安全保證等)時(shí)間比預(yù)期的延長(zhǎng)。
(4)人員風(fēng)險(xiǎn)
?、僮鳛橄葲Q條件的任務(wù)(如培訓(xùn)及其他項(xiàng)目)不能按時(shí)完成;
②開(kāi)發(fā)人員和管理層之間關(guān)系不佳,導(dǎo)致決策緩慢,影響全局;
?、廴狈?lì)措施,士氣低下,降低了生產(chǎn)能力;
?、苣承┤藛T需要更多的時(shí)間適應(yīng)還不熟悉的軟件工具和環(huán)境;
?、蓓?xiàng)目后期加入新的開(kāi)發(fā)人員,需進(jìn)行培訓(xùn)并逐漸與現(xiàn)有成員溝通,從而使現(xiàn)有成員的工作效率降低;
?、抻捎陧?xiàng)目組成員之間發(fā)生沖突,導(dǎo)致溝通不暢、設(shè)計(jì)欠佳、接口出現(xiàn)錯(cuò)誤和額外的重復(fù)工作;
?、卟贿m應(yīng)工作的成員沒(méi)有調(diào)離項(xiàng)目組,影響了項(xiàng)目組其他成員的積極性;
?、鄾](méi)有找到項(xiàng)目急需的具有特定技能的人。
?。?)開(kāi)發(fā)環(huán)境風(fēng)險(xiǎn)
?、僭O(shè)施未及時(shí)到位;
?、谠O(shè)施雖到位,但不配套,如沒(méi)有電話、網(wǎng)線、辦公用品等;
?、墼O(shè)施擁擠、雜亂或者破損;
?、荛_(kāi)發(fā)工具未及時(shí)到位;
?、蓍_(kāi)發(fā)工具不如期望的那樣有效,開(kāi)發(fā)人員需要時(shí)間創(chuàng)建工作環(huán)境或者切換新的工具;
?、扌碌拈_(kāi)發(fā)工具的學(xué)習(xí)期比預(yù)期的長(zhǎng),內(nèi)容繁多。
?。?)客戶風(fēng)險(xiǎn)
?、倏蛻魧?duì)于最后交付的產(chǎn)品不滿意,要求重新設(shè)計(jì)和重做;
②客戶的意見(jiàn)未被采納,造成產(chǎn)品最終無(wú)法滿足用戶要求,因而必須重做;
③客戶對(duì)規(guī)劃、原型和規(guī)格的審核 決策周期比預(yù)期的要長(zhǎng);
④客戶沒(méi)有或不能參與規(guī)劃、原型和規(guī)格階段的審核,導(dǎo)致需求不穩(wěn)定和產(chǎn)品生產(chǎn)周期的變更;
?、菘蛻舸饛?fù)的時(shí)間(如回答或澄清與需求相關(guān)問(wèn)題的時(shí)間)比預(yù)期長(zhǎng);
?、蘅蛻籼峁┑慕M件質(zhì)量欠佳,導(dǎo)致額外的測(cè)試、設(shè)計(jì)和集成工作,以及額外的客戶關(guān)系管理工作。
?。?)產(chǎn)品風(fēng)險(xiǎn)
?、俪C正質(zhì)量低下的不可接受的產(chǎn)品,需要比預(yù)期更多的測(cè)試、設(shè)計(jì)和實(shí)現(xiàn)工作;
?、陂_(kāi)發(fā)額外的不需要的功能(鍍金),延長(zhǎng)了計(jì)劃進(jìn)度;
?、蹏?yán)格要求與現(xiàn)有系統(tǒng)兼容,需要進(jìn)行比預(yù)期更多的測(cè)試、設(shè)計(jì)和實(shí)現(xiàn)工作;
?、芤笈c其他系統(tǒng)或不受本項(xiàng)目組控制的系統(tǒng)相連,導(dǎo)致無(wú)法預(yù)料的設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試工作;
⑤在不熟悉或未經(jīng)檢驗(yàn)的軟件和硬件環(huán)境中運(yùn)行所產(chǎn)生的未預(yù)料到的問(wèn)題;
?、揲_(kāi)發(fā)一種全新的模塊將比預(yù)期花費(fèi)更長(zhǎng)的時(shí)間;
?、咭蕾囌陂_(kāi)發(fā)中的技術(shù)將延長(zhǎng)計(jì)劃進(jìn)度。
?。?)設(shè)計(jì)和實(shí)現(xiàn)風(fēng)險(xiǎn)
①設(shè)計(jì)質(zhì)量低下,導(dǎo)致重復(fù)設(shè)計(jì);
②一些必要的功能無(wú)法使用現(xiàn)有的代碼和庫(kù)實(shí)現(xiàn),開(kāi)發(fā)人員必須使用新的庫(kù)或者自行開(kāi)發(fā)新的功能;
?、鄞a和庫(kù)質(zhì)量低下,導(dǎo)致需要進(jìn)行額外的測(cè)試,修正錯(cuò)誤,或重新制作;
?、苓^(guò)高估計(jì)了增強(qiáng)型工具對(duì)計(jì)劃進(jìn)度的節(jié)省量;
⑤分別開(kāi)發(fā)的模塊無(wú)法有效集成,需要重新設(shè)計(jì)或制作。
(9)過(guò)程風(fēng)險(xiǎn)
?、俅罅康募埫婀ぷ鲗?dǎo)致進(jìn)程比預(yù)期的慢;
?、谇捌诘馁|(zhì)量保證行為不真實(shí),導(dǎo)致后期的重復(fù)工作;
③太不正規(guī)(缺乏對(duì)軟件開(kāi)發(fā)策略和標(biāo)準(zhǔn)的遵循),導(dǎo)致溝通不足,質(zhì)量欠佳,甚至需重新開(kāi)發(fā);
?、苓^(guò)于正規(guī)(教條地堅(jiān)持軟件開(kāi)發(fā)策略和標(biāo)準(zhǔn)),導(dǎo)致過(guò)多耗時(shí)于無(wú)用的工作;
⑤向管理層撰寫(xiě)進(jìn)程報(bào)告占用開(kāi)發(fā)人員的時(shí)間比預(yù)期的多;
?、揎L(fēng)險(xiǎn)管理粗心,導(dǎo)致未能發(fā)現(xiàn)重大的項(xiàng)目風(fēng)險(xiǎn)。
2、軟件項(xiàng)目風(fēng)險(xiǎn)管理模型
針對(duì)軟件項(xiàng)目中的風(fēng)險(xiǎn)管理問(wèn)題,不少專(zhuān)家、組織提出了自己的風(fēng)險(xiǎn)管理模型。主要的風(fēng)險(xiǎn)管理模型有:Boehm模型,CRM模型和SERIM模型。
2.1 Barry Boehm模型
模型:RE=P (UO)*L (UO)
其中RE表示風(fēng)險(xiǎn)或者風(fēng)險(xiǎn)所造成的影響,P(UO)表示令人不滿意的結(jié)果所發(fā)生的概率,L(UO)表示糟糕的結(jié)果會(huì)產(chǎn)生的破壞性的程度。Boehm思想的核心是10大風(fēng)險(xiǎn)因素列表。針對(duì)每個(gè)風(fēng)險(xiǎn)因素,都給出了一系列的風(fēng)險(xiǎn)管理策略。在實(shí)際操作時(shí),Boehm以10大風(fēng)險(xiǎn)列表為依據(jù),總結(jié)當(dāng)前項(xiàng)目具體的風(fēng)險(xiǎn)因素,評(píng)估后進(jìn)行計(jì)劃和實(shí)施,在下一次定期召開(kāi)的會(huì)議上再對(duì)這10大風(fēng)險(xiǎn)因素的解決情況進(jìn)行總結(jié),產(chǎn)生新的10大風(fēng)險(xiǎn)因素表,依此類(lèi)推。
2.2 SEI的CRM(Continuous Risk Management)模型
SEI CRM模型的風(fēng)險(xiǎn)管理原則是:不斷地評(píng)估可能造成惡劣后果的因素;決定最迫切需要處理的風(fēng)險(xiǎn);實(shí)現(xiàn)控制風(fēng)險(xiǎn)的策略;評(píng)測(cè)并確保風(fēng)險(xiǎn)策略實(shí)施的有效性。CRM模型要求在項(xiàng)目生命期的所有階段都關(guān)注風(fēng)險(xiǎn)識(shí)別和管理,它將風(fēng)險(xiǎn)管理劃分為五個(gè)步驟:風(fēng)險(xiǎn)識(shí)別、分析、計(jì)劃、跟蹤、控制。
2.3 SERIM(Software Engineering Risk Model)模型
SERIM從技術(shù)和商業(yè)兩個(gè)角度對(duì)軟件風(fēng)險(xiǎn)管理進(jìn)行剖析,考慮的問(wèn)題涉及開(kāi)銷(xiāo)、進(jìn)度、技術(shù)性能等。它還提供了一些指標(biāo)和模型來(lái)估量和預(yù)測(cè)風(fēng)險(xiǎn),由于這些數(shù)據(jù)來(lái)源于大量的實(shí)際經(jīng)驗(yàn),因此具有很強(qiáng)的說(shuō)服力。
結(jié)束語(yǔ)
軟件項(xiàng)目管理從某種意義上講,就是風(fēng)險(xiǎn)管理。我們盡量去定義明確不變的需求,以便進(jìn)行計(jì)劃并高效管理,但商業(yè)環(huán)境總是快速變化的,甚至是無(wú)序的變化。所以,軟件企業(yè)在進(jìn)行項(xiàng)目管理的過(guò)程中,必須采用適合自己的風(fēng)險(xiǎn)管理方法進(jìn)行風(fēng)險(xiǎn)管理,以確保軟件項(xiàng)目在規(guī)定的預(yù)算和期限內(nèi)完成項(xiàng)目。