一個(gè)項(xiàng)目成功與否往往取決于它是否符合要求,對(duì)于需求及其變更的管理是否正確已是項(xiàng)目成功最為關(guān)鍵的因素。
一、需求管理的概念
Rational把需求定義為“系統(tǒng)必須符合的條件或具備的功能”。著名的需求工程設(shè)計(jì)師Merlin Dorfman和Richard H.Thayer提出了一個(gè)包容且更為精煉的定義:軟件需求可定義為用戶解決某一問題或達(dá)到某一目標(biāo)所需的軟件功能。系統(tǒng)或系統(tǒng)構(gòu)件為了滿足合同、規(guī)約、標(biāo)準(zhǔn)或其他正式實(shí)行的文檔而必須滿足或具備的軟件功能。換句話說,需求管理就是:一種獲取、組織并記錄系統(tǒng)需求的系統(tǒng)化方案,以及一個(gè)使客戶與項(xiàng)目團(tuán)隊(duì)對(duì)不斷變更的系統(tǒng)需求達(dá)成并保持一致的過程。
二、需求管理的目標(biāo)和原則
需求管理的目的是在客戶和處理客戶需求的軟件項(xiàng)目組之間建立對(duì)客戶需求的共同理解。
需求管理的目標(biāo)有兩個(gè):第一,使軟件需求受控,并建立供軟件工程和管理使用的需求基線;第二,使軟件計(jì)劃、產(chǎn)品和活動(dòng)與軟件需求保持一致。
在需求管理過程,為實(shí)現(xiàn)第一個(gè)目標(biāo),必須控制需求基線的變動(dòng),按照變更控制的標(biāo)準(zhǔn)和規(guī)范的過程進(jìn)行需求變更控制盒版本控制;為實(shí)現(xiàn)第二個(gè)目標(biāo),必須就變更和軟件項(xiàng)目各小組達(dá)成共識(shí),對(duì)軟件項(xiàng)目計(jì)劃作出調(diào)整,其中包括人員的安排、用戶的溝通、成本的調(diào)整、進(jìn)度的調(diào)整等。
為進(jìn)行有效的需求管理,一般要遵循如下五個(gè)原則:
第一,需求一定要分類管理。進(jìn)行軟件項(xiàng)目管理的時(shí)候,一定要將軟件需求分出層次。不同層次需求的側(cè)重點(diǎn)、描述方式、管理方式是不同的。
第二,需求必須分優(yōu)先級(jí)。在軟件項(xiàng)目中,如果出現(xiàn)過多的需求,通常會(huì)導(dǎo)致項(xiàng)目超出預(yù)算和預(yù)定進(jìn)度,最終導(dǎo)致軟件項(xiàng)目的失敗,因此需求的優(yōu)先級(jí)可能比需求本身更加重要。
第三,需求必須文檔化。需求必須有文檔記錄。該文檔必須是正確的、最新的、可管理的、可理解的,是經(jīng)過驗(yàn)證的,是在受控的狀態(tài)下變更的。
第四,需求一旦變化,就必須對(duì)需求變更的影響進(jìn)行評(píng)估,這是基本原則。
第五,需求管理必須與需求工程的其他活動(dòng)緊密整合。進(jìn)行需求管理一定不能脫離需求工程,需求工程包括了需求獲取、需求分析、需求描述、需求驗(yàn)證、需求管理,因而需求管理必須與前面的幾個(gè)需求階段保持密切相關(guān)。
三、需求管理的內(nèi)容
需求管理在需求開發(fā)的基礎(chǔ)上進(jìn)行,貫穿于整個(gè)軟件項(xiàng)目過程,是軟件項(xiàng)目管理的一部分。在軟件項(xiàng)目進(jìn)行的過程中,無論正處于哪個(gè)階段,一旦有需求錯(cuò)誤出現(xiàn)或者任何有關(guān)需求的變更出現(xiàn),都需要需求管理活動(dòng)來解決。需求管理是一個(gè)對(duì)系統(tǒng)需求變更了解和控制的過程。初始需求導(dǎo)出的同時(shí)就啟動(dòng)了需求管理規(guī)劃,一旦形成了需求文檔的草稿版本,需求活動(dòng)就開始了。需求活動(dòng)的具體內(nèi)容如下所示:
總之,軟件工程管理的核心思想是:有效的對(duì)軟件開發(fā)整個(gè)過程進(jìn)行合理的規(guī)劃和控制,到在用戶可接受的軟件功能、可靠性、性能等前提下盡可能的低成本、低風(fēng)險(xiǎn)和較高的效率完成軟件開發(fā)。