,這里只列出部分風(fēng)險作為示意)。這種結(jié)構(gòu)相對于全息風(fēng)險層次結(jié)構(gòu)分類,引入了時間維,一來可以使項目成員更加聚焦于當(dāng)前可能發(fā)生的風(fēng)險,減少工作量從而加快風(fēng)險識別及處理的速度;二來同一種風(fēng)險可能出現(xiàn)在不同的項目時期且發(fā)生概率和帶來的后果也不盡相同,按照時間維劃分,既比較符合其本質(zhì)特點又利于自動處理。同時,我們同樣使用了全息層次分類結(jié)構(gòu),方便根據(jù)不同的風(fēng)險類別來制定不同的管理策略(比如開發(fā)環(huán)境類中有關(guān)需求的風(fēng)險就可以交由需求分析師來處理),這樣可以加快風(fēng)險的識別、處理速度。隨著不同項目各個迭代的進行,風(fēng)險清單被不斷地更新和維護。
(3)針對風(fēng)險采用了一種計算機可理解、可執(zhí)行的形式化方法來描述,我們稱之為風(fēng)險模式結(jié)構(gòu)(RPS,Risk Pattern Structure):<P,C,R,L,E,其中表示風(fēng)險發(fā)生的生命周期階段的并集合,表示風(fēng)險可能出現(xiàn)在項目生命周期或迭代的哪些階段;表示風(fēng)險發(fā)生的前置條件并集合,包含可能導(dǎo)致風(fēng)險發(fā)生的各種最低觸發(fā)條件(如項目或模塊的復(fù)雜性大于15、客戶參與度低于60%等);是風(fēng)險名稱及其描述;是風(fēng)險等級,這里我們將風(fēng)險分為非受控級和受控級,前者表示該風(fēng)險級別不高,不一定必須進入風(fēng)險控制流程,可依據(jù)項目實施者的具體情況而定;而后者就表示風(fēng)險的級別較高,必須進入風(fēng)險控制流程,否則可能會給項目帶來極大的災(zāi)難;是風(fēng)險的代價集合,代價是一個三元組結(jié)構(gòu),分別表示不利的結(jié)果、發(fā)生概率及代價;是風(fēng)險的解決方案。這有點類似于軟件設(shè)計中設(shè)計模式的表示方法。舉例如下:
:{初始階段,細(xì)化階段};:{客戶參與度低于60%};:偏離業(yè)務(wù)目標(biāo);:受控級;:{<錯誤的需求,80%,此需求所需的人天>};:
上面的風(fēng)險是軟件項目中最常見的風(fēng)險:偏離業(yè)務(wù)目標(biāo)。它可能發(fā)生在初始階段和細(xì)化階段;當(dāng)客戶對需求分析活動的參與度低于60%時,滿足風(fēng)險觸發(fā)條件,此時應(yīng)給出風(fēng)險預(yù)警;該風(fēng)險導(dǎo)致的后果是錯誤的需求,發(fā)生的概率是80%;針對風(fēng)險結(jié)果(錯誤的需求)的解決方案分別是再次討論、讓客戶確認(rèn)簽字、不聞不問、讓客戶全程參與需求分析或者查找類似系統(tǒng)的需求。
(4)對于風(fēng)險評估,則可以使用現(xiàn)有的各種技術(shù)。但為了通用性和可復(fù)用性(可形成行業(yè)標(biāo)準(zhǔn)),推薦使用統(tǒng)一的技術(shù),如GERT技術(shù)或者BBNs方法。
(5)風(fēng)險的監(jiān)控與跟蹤引入了觸發(fā)器機制,實現(xiàn)對風(fēng)險的實時響應(yīng)。利用程序監(jiān)控項目的當(dāng)前狀態(tài)(如處于生命周期的哪一個階段、項目模塊的大小、代碼測試的覆蓋率等等),可以根據(jù)前面所定義的風(fēng)險所處的生命周期階段和前置條件進行自動的風(fēng)險匹配和風(fēng)險預(yù)警,預(yù)警結(jié)果可按發(fā)生的概率或后果的代價排序,提供給項目開發(fā)團隊。
(6)風(fēng)險控制則直接與風(fēng)險模式結(jié)構(gòu)中的項進行描述,項目管理人員可以直接選擇可行的已知風(fēng)險控制方案使用。
上面提到,該模型的信息基礎(chǔ)是一個初始的風(fēng)險模式清單,隨著項目的不斷進行更新。這里的更新一般說來可能有兩種:一種是識別出新的風(fēng)險模式,一種是對原有風(fēng)險模式進行某些條件的修改。處理前者時需要注意將新的風(fēng)險模式結(jié)構(gòu)與原有的風(fēng)險模式列表進行對比,以避免重復(fù)。處理后者時則相對比較簡單,將新條件直接與原風(fēng)險模式進行歸并處理即可。
Web軟件項目風(fēng)險的控制
廣義地講,一切項目管理行為都屬于風(fēng)險控制行動,比如遵從開發(fā)方法,因為它能夠降低過程風(fēng)險;選用某種特定的編程語言,是為降低技術(shù)風(fēng)險等。風(fēng)險控制并不是要對所有辨識出的風(fēng)險進行控制,因為控制風(fēng)險同樣是有成本的。一般來說。
在前面第三節(jié)的描述中,我們使用了RPS結(jié)構(gòu)來描述風(fēng)險,其中的項是風(fēng)險解決方案,