高婕
摘要:近年來,企業(yè)在信息化建設(shè)的過程當(dāng)中,企業(yè)與各層軟件項(xiàng)目開發(fā)商進(jìn)行了密切的合作,很多項(xiàng)目的研究與開發(fā)離不開各企業(yè)。軟件項(xiàng)目管理在此機(jī)遇下,應(yīng)運(yùn)而生,其中風(fēng)險(xiǎn)管理是軟件項(xiàng)目管理中的重要組成部分,本文對軟件項(xiàng)目管理及其風(fēng)險(xiǎn)管理的過程進(jìn)行了探討跟研究。
關(guān)鍵詞:企業(yè)信息化 軟件項(xiàng)目管理 風(fēng)險(xiǎn) 層次分析
1 軟件項(xiàng)目管理論述
1.1 什么是軟件項(xiàng)目管理
“軟件項(xiàng)目管理”中所謂的“項(xiàng)目”指的是包含有多個(gè)不同活動的一個(gè)系統(tǒng),其中的所有活動因具有相同的目標(biāo),使得它們之間產(chǎn)生了復(fù)雜的相互刺激、相互作用,從而使得此系統(tǒng)具有獨(dú)特的功能。而“軟件項(xiàng)目”說明這是一個(gè)與計(jì)算機(jī)或互聯(lián)網(wǎng)掛鉤的“項(xiàng)目”,這其中的所有活動都要在特定的時(shí)間、預(yù)算、環(huán)境、資源限定內(nèi)完成。
而軟件項(xiàng)目管理則是為了使這些由各種與互聯(lián)網(wǎng)掛鉤的活動所構(gòu)成的系統(tǒng),能夠按照特定的環(huán)境順利完成,對該系統(tǒng)的完成期限、人員、資源、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等進(jìn)行分析和管理的活動,該系統(tǒng)的最終目的是使得客戶滿意度以及公司獲利度都達(dá)到最大化。雖然光靠管理還不能完全達(dá)到此目標(biāo),但軟件項(xiàng)目管理無疑是一個(gè)催化劑,它有利于將開發(fā)人員的個(gè)人開發(fā)能力轉(zhuǎn)化成企業(yè)的開發(fā)能力,從而提高企業(yè)的整體競爭力[1]。
1.2 軟件項(xiàng)目管理和其他類型的項(xiàng)目
經(jīng)分析,與其他項(xiàng)目的管理方式相比,軟件項(xiàng)目的管理顯然具有某些不同的特征[2]:
(1)不可見性
一個(gè)像蓋房子或修鐵路這樣的具有型制品的項(xiàng)目,其每個(gè)階段的進(jìn)展,人們是可以直接看到的,而 “軟件項(xiàng)目”的制造過程中,客戶是無法每一步都看到的。這說明軟件項(xiàng)目管理具有不可見性的特點(diǎn),而想要了解軟件項(xiàng)目管理,要考慮的是如何使其中的每一個(gè)過程都變得可視化。
(2)復(fù)雜性
大到航空母艦,小到一顆糖果,以及其他實(shí)體制品,每一塊錢是如何花費(fèi)的是可以看得見的。但是對于軟件項(xiàng)目,如何計(jì)量錢花在這些軟件產(chǎn)品上的多少,那就復(fù)雜的多了。
(3)一致性
傳統(tǒng)的“制造者”一般都使用一些物理系統(tǒng)例如金屬、塑料、植物或其他實(shí)體材料來進(jìn)行作業(yè)。這些物理系統(tǒng)所包含的實(shí)體材料雖然也有一定的復(fù)雜性,但是它們都服從某些物理或化學(xué)定律。同樣的道理,對于軟件項(xiàng)目中的所有產(chǎn)品,軟件開發(fā)者也需遵循一定的準(zhǔn)則,比如他們的所作所為都必須與客戶需求保持一致。
因此,雖然參加軟件項(xiàng)目的制作與維護(hù)工作不只一個(gè)成員,可每個(gè)成員所做的最終成果都必須具有一致性,而這就需要管理者來協(xié)調(diào)和解決[3]。
(4)靈活性
軟件可以被方便的改變,這是軟件的長處之一。然而這也意味著,一旦有外部的變更,例如客戶對軟件的需求有所變更,或者當(dāng)軟件系統(tǒng)接入一個(gè)組織的系統(tǒng)時(shí),這就期望改變軟件來適應(yīng)其他組件,而不是改變其他組件來適應(yīng)軟件。因而只要外界環(huán)境有變化,比如用戶需求有變,軟件系統(tǒng)就會經(jīng)常被變更。
1.3 軟件項(xiàng)目管理的內(nèi)容
不論是個(gè)人還是公司團(tuán)隊(duì)協(xié)作開發(fā),軟件項(xiàng)目管理中的六個(gè)階段:需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試、安裝及維護(hù)都是缺一不可的[4]。
在八十年代初,美國著名軟件工程學(xué)者B.W.Boehm 總結(jié)出了七條軟件開發(fā)過程中需要遵循的準(zhǔn)則[5]。它們分別是:
1.采用用分階段型的生命周期來嚴(yán)格計(jì)劃管理;2.堅(jiān)持進(jìn)行階段評審;3.實(shí)行嚴(yán)格的產(chǎn)品控制;4.采用現(xiàn)代程序設(shè)計(jì)技術(shù);5.結(jié)果應(yīng)能夠清楚地審查;6.開發(fā)小組的人員應(yīng)該少而精;7.承認(rèn)并不斷改進(jìn)傳統(tǒng)軟件工程的實(shí)踐性。
1.4 為什么軟件項(xiàng)目管理很重要
首先是成本的問題。2002年至2003年,英國政府花費(fèi)在ICT項(xiàng)目上的經(jīng)費(fèi)已經(jīng)遠(yuǎn)遠(yuǎn)超過公路系統(tǒng)上的經(jīng)費(fèi)[6]。
非常不幸的是,投入經(jīng)費(fèi)再多,也不是每個(gè)項(xiàng)目都能成功。在2003年度的一份分析報(bào)告中,美國Standish Group通過分析13522個(gè)項(xiàng)目得出結(jié)論:只有1/3的項(xiàng)目是成功的;82%的項(xiàng)目延期,43%的項(xiàng)目超出預(yù)算。
從以上的案例可以發(fā)現(xiàn),導(dǎo)致該項(xiàng)目失敗的最大原因與項(xiàng)目管理缺陷有關(guān)。因此,要想使得軟件項(xiàng)目成功、高效的進(jìn)行,不僅僅要多投入,還要找到有效的管理方法,才能前后兼顧,運(yùn)籌帷幄。
2 風(fēng)險(xiǎn)論述
2.1 風(fēng)險(xiǎn)的定義
在企業(yè)軟件項(xiàng)目開發(fā)中,常常會出現(xiàn)超出預(yù)算延遲時(shí)間,甚至失敗的可能性[7] [8]。不確定性導(dǎo)致了風(fēng)險(xiǎn)和潛在損失的發(fā)生。因此,風(fēng)險(xiǎn)通常被定量的表述為風(fēng)險(xiǎn)發(fā)生的概率與其可能引起的損失程度的乘積。Charette認(rèn)為潛在的損失應(yīng)該通過一定的方法進(jìn)行推測,Kumamoto和Henley認(rèn)為效用值也很重要。綜合他們的看法可以得到分析風(fēng)險(xiǎn)的四要素:風(fēng)險(xiǎn)事件(what can go wrong)、風(fēng)險(xiǎn)概率(likelihood)、風(fēng)險(xiǎn)值(value)、效用值:
因此,軟件項(xiàng)目管理中將會出現(xiàn)的各種不確定因素,倘若我們能夠提前預(yù)測到風(fēng)險(xiǎn),未雨綢繆,就可以最大限度減少風(fēng)險(xiǎn)的發(fā)生。這是風(fēng)險(xiǎn)管理中最有效的手段。
2.2 風(fēng)險(xiǎn)分類
根據(jù)軟件項(xiàng)目管理內(nèi)容,我們可以將風(fēng)險(xiǎn)分為:
(1)技術(shù)風(fēng)險(xiǎn)。
主要體現(xiàn)在影響軟件生產(chǎn)率的各種要素上,比如:需求識別不完備、客戶對需求缺乏認(rèn)同、客戶不斷變化的需求、需求沒有優(yōu)先級、識別需求中客戶參與不夠、設(shè)計(jì)質(zhì)量較低,重復(fù)返工、過高估計(jì)了新技術(shù)對生產(chǎn)效率的影響、對應(yīng)用領(lǐng)域熟悉度不夠、采用的開發(fā)平臺不符合企業(yè)實(shí)際情況等等。
(2)管理風(fēng)險(xiǎn)。
比如:項(xiàng)目目的不明確、項(xiàng)目計(jì)劃和任務(wù)識別不完善、項(xiàng)目組織結(jié)構(gòu)降低生產(chǎn)效率、缺乏項(xiàng)目管理規(guī)范、團(tuán)隊(duì)溝通不協(xié)調(diào)等等。
(3)人員風(fēng)險(xiǎn)。
比如:人員素質(zhì)低下、缺乏足夠的培訓(xùn)、開發(fā)人員和管理人員關(guān)系不佳、缺乏有效的激勵措施、缺乏項(xiàng)目急需技能的人員、團(tuán)隊(duì)成員因?yàn)闇贤▽?dǎo)致重復(fù)返工等等。
(4)商業(yè)風(fēng)險(xiǎn)。
2.3 風(fēng)險(xiǎn)管理的重要性
風(fēng)險(xiǎn)管理是屬于未雨綢繆的范疇,因此,有效的風(fēng)險(xiǎn)管理可以避免企業(yè)在人員、財(cái)務(wù)、法律、社會責(zé)任以及投資方面的各種風(fēng)險(xiǎn),從而減少企業(yè)必須要的損失,保證穩(wěn)定的正增長的經(jīng)營活動。因此對于最求穩(wěn)步成長的企業(yè)來說,風(fēng)險(xiǎn)管理在整個(gè)管理流程中都顯得尤其重要。
3 風(fēng)險(xiǎn)管理的過程
項(xiàng)目風(fēng)險(xiǎn)管理流程一般由若干個(gè)主體部分所構(gòu)成,這些主體之間不僅有著相互作用的關(guān)系,而且與流程外的其他管理也會互相影響。不同的項(xiàng)目管理組織從不同的角度對項(xiàng)目風(fēng)險(xiǎn)流程進(jìn)行劃分。
風(fēng)險(xiǎn)管理的過程中,其各個(gè)階段的關(guān)系,如圖1所示。
3.1 識別風(fēng)險(xiǎn)
識別風(fēng)險(xiǎn)的步驟中最關(guān)鍵的一步是將不確定性轉(zhuǎn)變?yōu)槊鞔_的風(fēng)險(xiǎn)。根據(jù)一系列方法來確定風(fēng)險(xiǎn)的類型,進(jìn)而給出對策和建議。風(fēng)險(xiǎn)識別的過程如圖2所示。其中風(fēng)險(xiǎn)識別的輸入可以是項(xiàng)目的WBS、項(xiàng)目計(jì)劃、歷史項(xiàng)目數(shù)據(jù)、項(xiàng)目資源要求等信息。在識別過程中故障樹、風(fēng)險(xiǎn)樹等等都是常用的風(fēng)險(xiǎn)識別工具,項(xiàng)目風(fēng)險(xiǎn)的準(zhǔn)確識別與否取決于組織決策者的知識與經(jīng)驗(yàn)。
3.1.1 檢查單法
項(xiàng)目識別最常用也是最簡單的方法是建立風(fēng)險(xiǎn)項(xiàng)目檢查表。如表3-1所示,為一個(gè)軟件開發(fā)風(fēng)險(xiǎn)檢查單的修訂版。理想的情況下,項(xiàng)目相關(guān)人員的代表小組應(yīng)該核對一遍項(xiàng)目檢查表,以判斷哪些風(fēng)險(xiǎn)可能會在項(xiàng)目中出現(xiàn),然后根據(jù)類型來看決策。
項(xiàng)目管理方法認(rèn)為在項(xiàng)目實(shí)施的過程中,評審可以識別出很多問題以及解決方法。有時(shí)候,這些問題可以添加到組織風(fēng)險(xiǎn)檢查單隊(duì)列中,以便于新的項(xiàng)目使用。
3.1.2 頭腦風(fēng)暴法
在日常的組織決策中,由于組織中成員們心理作用的影響,決策結(jié)果很容易傾向于權(quán)威者或大多數(shù)成員的意見,由此形成了“群體思維”。而這種群體思維使得組織中成員缺乏批判精神和創(chuàng)造能力,最重要的是這損害了決策質(zhì)量。為了保證組織管理決策的創(chuàng)造性和有效性,學(xué)術(shù)界研究并改善了組織決策的新方法,頭腦風(fēng)暴法就是其中的一個(gè)。
落實(shí)到軟件項(xiàng)目開發(fā)中,頭腦風(fēng)暴法就是由項(xiàng)目小組成員在一起,不受項(xiàng)目權(quán)威影響,每個(gè)人充分發(fā)揮自己的能力思考項(xiàng)目中可能的風(fēng)險(xiǎn),自由討論和發(fā)言,充分預(yù)測項(xiàng)目中出現(xiàn)的各種情況,最終匯總成為項(xiàng)目的風(fēng)險(xiǎn)表。在此中,頭腦風(fēng)暴法被運(yùn)用的目的是獲得一份客觀的、公平的、綜合的軟件項(xiàng)目風(fēng)險(xiǎn)列表。
3.2 風(fēng)險(xiǎn)評估
風(fēng)險(xiǎn)識別時(shí)的一個(gè)問題,也是最值得考慮的的問題,就是風(fēng)險(xiǎn)的列表潛在是無限的。為了區(qū)分出其中的危害和可能出現(xiàn)的更大的風(fēng)險(xiǎn),可以通過下面的公式對風(fēng)險(xiǎn)的影響進(jìn)行評估:
風(fēng)險(xiǎn)影響(RE)=PC
其中可能性P(0P1)是指出現(xiàn)不如意結(jié)果的可能性。損失C是不如意的結(jié)果發(fā)生所帶來的后果。而后果是由風(fēng)險(xiǎn)、成本、進(jìn)度、技術(shù)等要素之間的關(guān)系來決定。通過風(fēng)險(xiǎn)影響(RE)來量化風(fēng)險(xiǎn)為所有已知風(fēng)險(xiǎn)提供了相對的優(yōu)先順序。例如:
時(shí)間:測試可能會持續(xù)兩個(gè)多月;可能性=0.8。
風(fēng)險(xiǎn)影響=0.83個(gè)月測試帶來的損失
正確程度:獨(dú)立完成檢驗(yàn)可能會耗資200 000;可能性=0.7
風(fēng)險(xiǎn)影響=0.7200 000元
成本:恢復(fù)測試需要兩個(gè)工程師花一個(gè)月的時(shí)間;可能性=0.95
風(fēng)險(xiǎn)影響=0.95恢復(fù)測試的成本。
而大多數(shù)管理者拒絕對損失或者某些事情發(fā)生的可能性進(jìn)行精確的估計(jì),這其中的原因是大多數(shù)的估計(jì)都是猜測出來的。因此我們在本文用層次分析法來評估系統(tǒng):在估計(jì)事物的區(qū)別時(shí),可用中等、較強(qiáng)、強(qiáng)、較弱、弱五種判斷很好的表示。分別用1、3、5、7、9五個(gè)數(shù)值來表示。當(dāng)需要更高的精度時(shí),還可以在相鄰判斷之間做出比較,其間用2、4、6、8來表示。
3.3 風(fēng)險(xiǎn)監(jiān)控
風(fēng)險(xiǎn)監(jiān)控是項(xiàng)目風(fēng)險(xiǎn)管理的最后一項(xiàng),風(fēng)險(xiǎn)在項(xiàng)目的推進(jìn)過程中可能會增大或者減弱,所以需要進(jìn)行風(fēng)險(xiǎn)來檢查每個(gè)風(fēng)險(xiǎn)的化解程度,如果最初的化解措施是無效的,要及時(shí)調(diào)整應(yīng)對辦法來化解風(fēng)險(xiǎn),并識別隨著它們消失而產(chǎn)生的新的風(fēng)險(xiǎn)。
風(fēng)險(xiǎn)監(jiān)控的內(nèi)容包括:
1) 不斷地跟蹤風(fēng)險(xiǎn)發(fā)展變化;
2) 不斷地識別新的風(fēng)險(xiǎn);
3) 不斷地分析風(fēng)險(xiǎn)的產(chǎn)生概率;
4) 不斷的整理風(fēng)險(xiǎn)表;
5) 不斷地規(guī)避優(yōu)先級別高的風(fēng)險(xiǎn)。
4 結(jié)論
企業(yè)的信息化帶來的是軟件項(xiàng)目管理的日趨成熟,其中風(fēng)險(xiǎn)也會隨著它的進(jìn)展而不斷發(fā)生變化,為了有效的控制項(xiàng)目的各項(xiàng)指標(biāo),很有必要進(jìn)行軟件項(xiàng)目的風(fēng)險(xiǎn)管理,如果忽視風(fēng)險(xiǎn)管理,可能會導(dǎo)致項(xiàng)目的失敗。風(fēng)險(xiǎn)管理包括六個(gè)步驟:風(fēng)險(xiǎn)識別、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)計(jì)劃制定、風(fēng)險(xiǎn)應(yīng)對、風(fēng)險(xiǎn)控制。這六個(gè)步驟不是按照串行方式一步一步走的,而是不斷循環(huán)進(jìn)行的。最終風(fēng)險(xiǎn)管理的結(jié)果要落實(shí)到項(xiàng)目管理的文檔中,作為歷史資料留存。