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