摘要:據(jù)統(tǒng)計(jì),約80%~90%信息化投資沒有達(dá)到預(yù)期目標(biāo),80%的項(xiàng)目超期或超預(yù)算,40%的項(xiàng)目以失敗告終,只有不足25%的項(xiàng)目達(dá)到預(yù)期的技術(shù)和業(yè)務(wù)目標(biāo)。
關(guān)鍵詞:需求管理
在全球軟件業(yè)高速發(fā)展的今天,軟件項(xiàng)目的實(shí)施情況卻不甚理想。據(jù)統(tǒng)計(jì),約80%~90%信息化投資沒有達(dá)到預(yù)期目標(biāo),80%的項(xiàng)目超期或超預(yù)算,40%的項(xiàng)目以失敗告終,只有不足25%的項(xiàng)目達(dá)到預(yù)期的技術(shù)和業(yè)務(wù)目標(biāo)。這種局面的出現(xiàn)是與軟件項(xiàng)目本身所蘊(yùn)含的諸多風(fēng)險(xiǎn)密切相關(guān)的,如技術(shù)風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、需求風(fēng)險(xiǎn)等;而能夠?qū)π枨箫L(fēng)險(xiǎn)進(jìn)行有效控制則是決定整個(gè)項(xiàng)目成敗的關(guān)鍵。
企業(yè)信息化項(xiàng)目中存在的主要需求風(fēng)險(xiǎn)
1.軟件需求的定義和層次
什么是軟件需求呢?關(guān)于這個(gè)概念有各種各樣的定義,IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997)中定義需求為:
(1)用戶解決問題或達(dá)到目標(biāo)所需的條件或權(quán)能(Capability)。
(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。
(3)一種反映上面(1)或(2)所描述的條件或權(quán)能的文檔說明。
這個(gè)定義包括了從用戶角度和開發(fā)者角度來闡述需求;另外一種定義是從系統(tǒng)外部出發(fā)認(rèn)為需求是“用戶所需要的并能觸發(fā)一個(gè)程序或系統(tǒng)開發(fā)工作的說明”(Jones 1994)。下面的定義則從用戶需要進(jìn)一步轉(zhuǎn)移到系統(tǒng)特性( Sommerville and Sawyer 1997):需求是指明必須實(shí)現(xiàn)什么的規(guī)格說明。它描述了系統(tǒng)的行為、特性或?qū)傩裕窃陂_發(fā)過程中對系統(tǒng)的約束。
從上面這些定義可以看出,人們可以從不同角度去理解和描述需求,而關(guān)鍵是參與項(xiàng)目的人員能夠針對需求描述達(dá)成清晰一致的共識。此外,軟件需求又劃分為業(yè)務(wù)需求、用戶需求和功能需求三個(gè)層次,業(yè)務(wù)需求(Business Requirement)反映了組織機(jī)構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,用戶需求(User Requirement)描述了用戶使用產(chǎn)品必須完成的任務(wù),功能需求(Functional Requirement)定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能。這種層次的劃分體現(xiàn)出了需求從抽象到具體、從系統(tǒng)外部到內(nèi)部的逐級轉(zhuǎn)化過程。對于軟件開發(fā)人員來說最終必須獲得準(zhǔn)確詳細(xì)地功能需求描述,而客戶經(jīng)常會認(rèn)為只要將業(yè)務(wù)需求或用戶需求描述出來就足夠了,從而使最終開發(fā)人員獲取的需求信息不夠充分,或與客戶的期望產(chǎn)生差異。
2.軟件需求的重要性
對于軟件開發(fā)工作來說,其原始驅(qū)動力來自于用戶的需求,而非軟件開發(fā)技術(shù)本身。軟件或信息系統(tǒng)只是輔助人們完成某項(xiàng)工作任務(wù)的工具,必須依靠使用者告訴它要做什么和怎么做,且每一細(xì)節(jié)規(guī)則的定義必須是明確具體的,才能使整個(gè)信息系統(tǒng)正常運(yùn)轉(zhuǎn)起來。因此軟件需求是軟件開發(fā)工作的一個(gè)最重要的輸入。
在判斷一個(gè)軟件項(xiàng)目是否成功時(shí),一般從以下幾方面來衡量:
(1)項(xiàng)目是否達(dá)到預(yù)期目標(biāo);
(2)項(xiàng)目的實(shí)施是否使工作效率得到提升;
(3)軟件的使用者是否有良好的感受;
(4)項(xiàng)目成本和工期是否控制在計(jì)劃之內(nèi)。
從以上幾點(diǎn)不難看出,要在這幾方面取得理想成果,項(xiàng)目需求將是一個(gè)關(guān)鍵因素:
(1)項(xiàng)目范圍和需求的定義要明確清晰;
(2)對利于工作效率提升的需求能夠得到充分挖掘和體現(xiàn);
(3)需求應(yīng)能全面真實(shí)體現(xiàn)出各個(gè)層面軟件使用者的訴求;
(4)項(xiàng)目建設(shè)過程中能夠?qū)π枨笞兏鼘?shí)施有效控制。
3.主要需求風(fēng)險(xiǎn)識別
既然需求對軟件項(xiàng)目的成敗起到如此關(guān)鍵之作用,對需求風(fēng)險(xiǎn)的控制就變得尤為重要了。在應(yīng)用軟件開發(fā)過程中,由于軟件需求本身的隱含性、用戶與開發(fā)者之間的溝通障礙,以及需求隨著