軟件需求在軟件項目中扮演著及其重要的角色。不管哪種類型的項目,無論是新產品開發(fā),還是外包項目,開發(fā)隊伍都面臨著普遍存在的需求問題,比如如何獲取有效的需求、如何處理需求的變更等等。這些問題有其共性的一面,也有和項目類型相關的一面。本文著重討論了在新產品開發(fā)項目中的一些需求問題,以及避免和解決這些問題的建議。
一. 概述
在開始進一步討論之前,我們先明確幾個概念。
首先,本文是從開發(fā)團隊,或者說項目組的角度來看需求問題。所謂開發(fā)團隊,通常包括了程序員、測試員和其他一些項目成員,如配置管理員和軟件架構師,以及基層的管理人員,比如項目經理。類比于傳統(tǒng)企業(yè),開發(fā)團隊相當于企業(yè)的生產車間。但是,在大多數(shù)的軟件組織中,開發(fā)團隊除了擔當“生產”任務以外,往往也是需求獲取的主體;在某些較為正規(guī)的組織中,也許會有市場部門給出一些需求,但這些市場數(shù)據(jù)和有限的調研結果通常是遠遠不夠形成需求規(guī)格書的。
其次,何謂“新產品開發(fā)項目”。簡單而言,在本文中,新產品開發(fā)指開發(fā)團隊需要從無到有將一個想法(idea)轉化為產品(product)。新產品開發(fā)不同于產品升級,開發(fā)團隊沒有一個已存在的基礎;新產品開發(fā)不同于開發(fā)一個實驗型的作品或者演示、原型之類的東西,開發(fā)團隊最終的產出必須是產品,在功能、性能、可用性等方面都有比較高的要求和期望;新產品開發(fā)不同于承接一個軟件開發(fā)項目,也不同于為明確指定的用戶或者客戶定制產品,開發(fā)團隊最終面對的是廣泛的市場,是一個由眾多獨立的最終用戶(同時也是客戶)組成的群體。新產品開發(fā)項目更加不同于維護型的,或者其他類型的項目。轉貼于:中國項目管理資源網(wǎng)
第三,本文所討論的需求基于需求的傳統(tǒng)定義,即軟件需求指用戶對軟件產品明確的和期望的要求。這些要求直接影響了用戶對此產品的滿意程度,或者更直接的說,影響了用戶的購買決定以及對產品和開發(fā)商喜好的判斷。對于開發(fā)團隊而言,在實際工作中,需求問題往往和設計問題,特別是高層(High level)的設計糾纏在一起,很難有明確的界限劃分。但在本文中,需求問題不涉及與具體實現(xiàn)相關的問題,比如技術選型,人機界面。
概括而言,在一個新產品開發(fā)項目中,開發(fā)團隊面臨的需求問題涉及到需求的獲取、分析和管理。本文的余下部分將重點討論新產品開發(fā)項目中典型的四大問題,分別是:有限的需求來源、模糊的需求界定、CPD陷阱和NV陷阱。
二. 有限的需求來源
新產品的想法可能來自老板的拍腦袋,也可能來自市場部的報告,或者也可能來自研究部門的某個創(chuàng)意;但不管怎樣,可以肯定的是,沒有人具備足夠的信息來準確的描繪出未來的產品(而且通常這個未來也不會很遠)是什么樣子。如果項目組成員恰好屬于這個產品的用戶,比如這個產品是一個字處理軟件,或者僅僅是搭上一點關系,比如這個產品是一個個人理財軟件,那獲取需求的任務就更加理所當然的落在了開發(fā)團隊身上。轉貼于:中國項目管理資源網(wǎng)
表面上看,由開發(fā)團隊自己定義需求會使得需求相對穩(wěn)定,對開發(fā)團隊是有利的。但事實上,開發(fā)團隊會面臨不少棘手的問題,最直接最明顯的,就是需求的來源受限。開發(fā)團隊最需要的就是明確的(最好也是穩(wěn)定的)需求,而現(xiàn)在,要開發(fā)團隊自己去獲得,而且獲取需求的來源又很有限。
由于是新產品,在組織內部,開發(fā)團隊通常找不到足夠的幫助。而要從外界獲得,又受到時間、經費和職責等因素的限制。在這種情況下,學習競爭對手的產品是一個很有效的方法。開發(fā)團隊可以從研究和剖析類似產品著手,例如,如果要開發(fā)一個電子郵件客戶端軟件,那么,Outloo