我們知道,軟件開發是由需求驅動的,需求是源于用戶的需要,這是一個基本原則,但是“需要”如何表達成“需求”呢?這就是需求獲取,或曰“需求開發”(CMMI L3的過程域)。
如果我們的產品是面向特定行業或特定客戶的,那么由特定的客戶(業務部門)提交業務需求書是需求的重要來源,在這種情況下,需求獲取有許多有利條件:IT企業與特定客戶具有長期合作關系,在這個過程中可以培養客戶提出需求和表達需求的能力,可以同客戶聯合成立需求小組,共同開發需求。
如果我們的產品是面向市場的,那么市場的聲音或市場的潛在聲音都是用戶的需求,但我們的產品不可能面面俱到,這時我們IT企業有足夠的主動權來選擇用戶、細分市場、定位產品,特別是在市場還未正式地發出聲音之前,通過創意來挖掘未來的需求,這種搶占市場先機的需求獲取,是需求開發的最高境界。
與“需求”密切相關的一個概念就是“用戶”,我們不去定義這個自明的概念,而是提供如下一些觀念供大家借鑒:
用戶是經過篩選的:人們的需要是千差萬別的,有時甚至是相互矛盾的,因此,篩選出真正的用戶、定位好產品是至關重要的。
用戶是沉默的:這是說用戶難以想到細節或描述不清楚需求或不會主動去表達等情況,用戶的“需要”常常是一種“沖動”或“沖突”,隱藏在他的頭腦中、在工作現場、在企業流程或文化中,它與其它信息混雜在一起,并且是支離破碎、用戶未體驗的,用戶不易通過口頭或書面的方式表述清楚,因而用戶是沉默的。因此,應有專業的需求分析師(通常由系統分析員擔任)與用戶交談、到現場調研,進行需求挖掘。
用戶是大喊大叫的:這是面向特定用戶開發產品時常有的情況,特別是按合同開發時,若雙方對需求的理解不一致,強勢的用戶會提出一些過分要求。我們要與用戶交朋友,達到相互理解,并采取相應的策略化解矛盾。
用戶是可引導的:面向行業的IT企業,通常較用戶有更多的、更成熟的應用系統經驗或更寬廣的視野,這時可以向用戶推薦應用系統架構或處理模式。對于業務的具體處理流程,IT人員也可以更多地從新的視角(從軟件實現和改進操作的角度)提出建議來引導用戶。
需求獲取就是要在上述對“用戶”概念的認識基礎上,將用戶的“需要”挖掘出來,我總結了如下的一些挖掘需求的方法:
1、分析特定客戶(業務部門)提交的業務需求書
2、與特定客戶(業務部門)進行討論與交流(或聯合成立需求組),包括:
需求討論會
與業務專家或代表討論
3、通過調查獲取需求,常見需求調查方式有:
與用戶交談,向用戶提問題
參觀用戶的工作流程,觀察用戶的操作
用戶工作的情景分析
現有系統的問題報告和改進要求,事件和響應
市場調查和向用戶群體發調查問卷
與同行、專家交談,聽取他們的意見
分析已經存在的同類軟件產品,提取需求
從現有產品或競爭產品的文檔中提取需求
從行業標準、規則中提取需求
總之,需求開發就是在只有一個大體需要或只是一個概念上的想法的基礎上,IT人員通過廣泛的調查,并從服務意識的角度出發,帶領客戶或引導客戶一起“搞清楚”需求。而調查是廣泛的,包括:業務專家、一線人員、市場情況、競爭對手等;并且調查是深入的,如:問卷、訪談、研討會、現場了解、收集資料以及與業務人員交朋友。
原文轉自:http://www.anti-gravitydesign.com