需求是產(chǎn)品的根源,需求工作的優(yōu)劣對產(chǎn)品影響最大。寬泛地講,需求來源于用戶的一些“需要”,這些“需要”被分析、確認(rèn)后形成完整的文檔,該文檔詳細(xì)地說明了產(chǎn)品“必須或應(yīng)當(dāng)”做什么。
所以如果只有一些零碎的對話、資料或郵件,你就以為自己已經(jīng)掌握了需求,那是自欺欺人。就像一條河流,如果源頭被污染了,那么整條河流也就被污染了。 我們經(jīng)??吹降氖牵喝藗儾⒉磺宄烤乖撟鍪裁矗珔s一直忙碌不停地開發(fā)。
需求開發(fā)與管理面臨最普遍的問題是:用戶說不清楚需求。
有些用戶真的不知道需求是什么,或者對需求只有朦朧的感覺,他當(dāng)然說不清楚需求。例如,早期的政府信息化項目用戶通常只有一個朦朧的信息化感覺而已,需求分析中會這樣寫:"總之,要實現(xiàn)那種能夠想到就能做到功能。"。如果開發(fā)方的營銷人員水平比較高,他能夠在用戶不清楚自己要什么的情況下引導(dǎo)用戶“消費”。
有些用戶雖然心里明白想要什么,但卻說不清楚需求。 比如說買鞋子。我們非常了解自已的腳,但很難用語言說清楚腳的大小和形狀。通常拿鞋子去試,試穿時感覺到舒服才會買鞋。一些企業(yè)的信息化項目,每個子部門對自身的需要很清楚,但不知道如何從系統(tǒng)角度來要求。
因此,我們可以說項目開發(fā)最困難的部分也就是準(zhǔn)確說明開發(fā)什么。最困難的概念性工作是編寫出詳細(xì)的需求,包括所有面向用戶、面向機器和其它軟件系統(tǒng)的接口。此工作一旦做錯,將會給系統(tǒng)帶來極大的損害,并且以后對它修改也極為困難。為此,需求分析員絕不能以用戶說不清楚需求為借口而草率地對待需求開發(fā)工作,否則會連累整個開發(fā)團隊的。
業(yè)內(nèi)來看,一個成熟、成功的項目,通常它在前期需求、系統(tǒng)設(shè)計投入的工作量比例會大于30%。
1、需求開發(fā)與分析
需求開發(fā)的目的是通過調(diào)查與分析,獲取用戶需求并定義產(chǎn)品需求。根據(jù)需求調(diào)查和需求分析的結(jié)果,進一步定義準(zhǔn)確無誤的產(chǎn)品需求,產(chǎn)生《產(chǎn)品需求規(guī)格說明書》。系統(tǒng)設(shè)計人員將依據(jù)《產(chǎn)品需求規(guī)格說明書》開展系統(tǒng)設(shè)計工作。 一個良好的需求說明書,應(yīng)該有如下特征
1.1 正確
需求規(guī)格說明書應(yīng)當(dāng)正確地反映用戶的真實意圖,開發(fā)者和用戶自己都不明白用戶究竟“想要什么”和“不要什么”。為確保需求是正確的,開發(fā)方和用戶必須對《需求規(guī)格說明書》進行確認(rèn)。
1.2 清楚
清楚的需求讓人易讀易懂,包括文檔的結(jié)構(gòu)、段落等是否清晰。
1.3 無二義性
“無二義性” 是指每個需求只有唯一的含義。
1.4 一致
“一致”(Consistent)是指各個需求之間不會發(fā)生矛盾。矛盾常常潛伏在需求文檔的上下文中。
1.5 必要
開發(fā)者應(yīng)當(dāng)集中精力先完成必要的需求,如果條件允許則再做“錦上添花”的需求。為了避免主次顛倒,應(yīng)當(dāng)在《產(chǎn)品需求規(guī)格說明書》中將那些“錦上添花”的需求設(shè)置為較低的優(yōu)先級。
1.6 完備
“完備”(Complete)是指《產(chǎn)品需求規(guī)格說明書》中沒有遺漏一些必要的需求,比如是否覆蓋了所有的功能、性能、交叉、安全等需求。
1.7 可實現(xiàn)
《產(chǎn)品需求規(guī)格說明書》中的各項需求對開發(fā)方而言應(yīng)當(dāng)都是可實現(xiàn)的(Attainable)。
“可實現(xiàn)”意味著在技術(shù)上是可行的,并且滿足時間、費用、質(zhì)量等約束。
1.8 可驗證
《產(chǎn)品需求規(guī)格說明書》中的各項需求對用戶方而言應(yīng)當(dāng)都