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