互聯(lián)網(wǎng)應(yīng)用的迅速普及,推動(dòng)了Web軟件技術(shù)的飛速發(fā)展,同時(shí)也導(dǎo)致了傳統(tǒng)應(yīng)用軟件的Web化趨勢(shì)。SaaS、SOA、云計(jì)算這些響當(dāng)當(dāng)?shù)募夹g(shù)名詞,無一不是這種現(xiàn)象的最佳注解。不過,調(diào)查卻顯示W(wǎng)eb軟件項(xiàng)目在沒有達(dá)到商業(yè)要求、沒有具備應(yīng)有的功能、延期和超支這四項(xiàng)失敗情況的比例竟然分別達(dá)到了84%、53%、79%和63%。那么,Web軟件項(xiàng)目與傳統(tǒng)軟件項(xiàng)目究竟有何不同,為什么它的失敗率竟如此之高?它面臨哪些風(fēng)險(xiǎn),我們又該如何識(shí)別并管理這些風(fēng)險(xiǎn)以將損失降到最低呢?本文針對(duì)Web軟件項(xiàng)目快速開發(fā)的特點(diǎn),在總結(jié)前人對(duì)軟件項(xiàng)目風(fēng)險(xiǎn)管理研究的基礎(chǔ)之上,首先提出了適用于Web軟件項(xiàng)目到風(fēng)險(xiǎn)管理模型設(shè)計(jì)原則,隨后提出了針對(duì)Web軟件項(xiàng)目的快速風(fēng)險(xiǎn)管理模型,并提出了Web軟件項(xiàng)目風(fēng)險(xiǎn)的控制方法,最后對(duì)該模型提出了改進(jìn)意見。
Web軟件項(xiàng)目的風(fēng)險(xiǎn)
從實(shí)踐中我們知道,軟件項(xiàng)目的風(fēng)險(xiǎn)來源于不確定性。在軟件項(xiàng)目建設(shè)過程中,項(xiàng)目本身的不確定性表現(xiàn)在以下幾個(gè)方面:
(1)項(xiàng)目需求的不確定性。人們不可能在軟件開發(fā)之前準(zhǔn)確地把握當(dāng)時(shí)的需求及其之后的走勢(shì),這一點(diǎn)已經(jīng)由Peter Wegner利用數(shù)學(xué)的方法給出了嚴(yán)格的證明。
(2)從需求到設(shè)計(jì)和實(shí)施轉(zhuǎn)換的不確定性。軟件項(xiàng)目不同于傳統(tǒng)的建筑項(xiàng)目,它既是現(xiàn)實(shí)的又是抽象的,至今也不能將設(shè)計(jì)和實(shí)施完全分離,人們很難確定需求規(guī)格說明對(duì)后續(xù)設(shè)計(jì)是否是完整、充分的。
(3)重用項(xiàng)目成果的不確定性。重用已有項(xiàng)目成果從理論上講可以回避上述兩個(gè)方面的不確定性,但在實(shí)踐當(dāng)中,仍然無法有效達(dá)到目的。重用構(gòu)件的接口描述是否準(zhǔn)確?如何確定現(xiàn)有構(gòu)件或子系統(tǒng)可否滿足當(dāng)前任務(wù)的要求?
相較于傳統(tǒng)軟件項(xiàng)目,Web軟件項(xiàng)目的特征可歸納為創(chuàng)新性、需求變化頻繁、小團(tuán)隊(duì)、技術(shù)更新快、生命周期短等。首先,Web軟件工程的研究起步較晚,Web軟件的開發(fā)方法學(xué)還在不斷地完善當(dāng)中,目前多采用被稱為敏捷(Agile)方法的輕量級(jí)開發(fā)方法。這里的“輕”指的就是這些方法不像傳統(tǒng)方法那樣強(qiáng)調(diào)管理和控制,追求項(xiàng)目的可預(yù)測(cè)性和過程狀態(tài)的可視性,而是盡可能地減少開發(fā)過程中的中間制品(文檔),從而減輕開發(fā)人員的負(fù)擔(dān)。不過遺憾地是,這類方法通常只關(guān)注于軟件開發(fā)的技術(shù)層面,還沒有對(duì)項(xiàng)目的風(fēng)險(xiǎn)管理給予足夠的重視,采用這類方法可能導(dǎo)致對(duì)風(fēng)險(xiǎn)管理的忽視。同時(shí),由于Web軟件項(xiàng)目涉及到的開發(fā)人員具有多學(xué)科性,項(xiàng)目成員之間的不同專業(yè)背景也給項(xiàng)目帶來了更大的組織風(fēng)險(xiǎn)。其次,Web軟件開發(fā)技術(shù)日新月異,特別是在開源軟件模式興起以后,各類技術(shù)框架(Framework)層出不窮,這為開發(fā)者帶來很多可復(fù)用的組件,可以說Web軟件項(xiàng)目是建立在大規(guī)模復(fù)用基礎(chǔ)之上的。但是由于開源軟件組織的松散性和開發(fā)人員對(duì)這些組件的不夠精通,往往給項(xiàng)目帶來額外的系統(tǒng)風(fēng)險(xiǎn)。再次,由于Web軟件項(xiàng)目工期短以及要求盡快推向市場(chǎng)的特點(diǎn),在項(xiàng)目實(shí)施時(shí)也容易因?yàn)槊つ康刈非箝_發(fā)速率而忽視對(duì)風(fēng)險(xiǎn)的管理,最終導(dǎo)致風(fēng)險(xiǎn)太晚被發(fā)現(xiàn)而需要消耗大量成本才能解決。最后,由于Web軟件項(xiàng)目開發(fā)團(tuán)隊(duì)小、成員少,往往無力進(jìn)行有效的風(fēng)險(xiǎn)管理。所有的這些特點(diǎn)使得Web軟件項(xiàng)目面臨高風(fēng)險(xiǎn),同時(shí)還更加容易被人忽視。
國(guó)內(nèi)外針對(duì)Web項(xiàng)目風(fēng)險(xiǎn)的研究現(xiàn)狀
國(guó)外對(duì)于軟件項(xiàng)目風(fēng)險(xiǎn)管理的研究始于上世紀(jì)70年代對(duì)軟件缺陷預(yù)測(cè)的研究。普遍認(rèn)為1989年Boehm發(fā)表的專著《軟件風(fēng)險(xiǎn)管理》奠定了該領(lǐng)域的理論基礎(chǔ)。Boehm軟件風(fēng)險(xiǎn)管理體系把風(fēng)險(xiǎn)管理分成兩大階段,每一階段具有三個(gè)步驟,如表1 Boehm軟件風(fēng)險(xiǎn)管理體系所示。
自1990年以來,美國(guó)卡耐基-梅隆大學(xué)的軟件工程研究所SEI在