再發(fā)現(xiàn)的話會使得更正代價很大。其它檢測模棱兩可需求的技術(shù)由Gause 和We i n b e rg(1 9 8 9)給予介紹。
4. 不必要的特性
“畫蛇添足”是指開發(fā)人員力圖增加一些“用戶欣賞”但需求規(guī)格說明中并未涉及的新功能。經(jīng)常發(fā)生的情況是用戶并不認為這些功能性很有用,以致在其上耗費的努力“白搭”了。開發(fā)人員應(yīng)當為客戶構(gòu)思方案并為他們提供一些具有創(chuàng)新意識的思路,具體提供哪些功能要在客戶所需與開發(fā)人員在允許時限內(nèi)的技術(shù)可行性之間求得平衡,開發(fā)人員應(yīng)努力使功能簡單易用,而不要未經(jīng)客戶同意,擅自脫離客戶要求,自作主張。同樣,客戶有時也可能要求一些看上去很“酷”,但缺乏實用價值的功能,而實現(xiàn)這些功能只能徒耗時間和成本。為了將“畫蛇添足”的危害盡量減小,應(yīng)確信:你明白為什么要包括這些功能,以及這些功能的“來龍去脈”,這樣使得需求分析過程始終是注重那些能使用戶完成他們業(yè)務(wù)任務(wù)的核心功能。
5. 過于精簡的規(guī)格說明
有時,客戶并不明白需求分析有如此重要,于是只作一份簡略之至的規(guī)格說明,僅涉及了產(chǎn)品概念上的內(nèi)容,然后讓開發(fā)人員在項目進展中去完善,結(jié)果很可能出現(xiàn)的是開發(fā)人員先建立產(chǎn)品的結(jié)構(gòu)之后再完成需求說明。這種方法可能適合于尖端研究性的產(chǎn)品或需求本身就十分靈活的情況( McConnell 1996)。但在大多數(shù)情況下,這會給開發(fā)人員帶來挫折(使他們在不正確的假設(shè)前提和極其有限的指導下工作),也會給客戶帶來煩惱(他們無法得到他們所設(shè)想的產(chǎn)品)。
6. 忽略了用戶分類
大多數(shù)產(chǎn)品是由不同的人使用其不同的特性,使用頻繁程度也有所差異,使用者受教育程度和經(jīng)驗水平也不盡相同。如果你不能在項目早期就針對所有這些主要用戶進行分類的話,必然導致有的用戶對產(chǎn)品感到失望。例如,菜單驅(qū)動操作對高級用戶太低效了,但含義不清的命令和快捷鍵又會使不熟練的用戶感到困難。
7. 不準確的計劃
“上述是我對新產(chǎn)品的看法,好,現(xiàn)在你能告訴我你什么時候能完成嗎?”許多開發(fā)人員都遇到這種難題。對需求分析缺乏理解會導致過分樂觀的估計,而當不可避免的超支發(fā)生時,會帶來頗多麻煩。據(jù)報道,導致需求過程中軟件成本估計極不準確的原因主要有以下五點:頻繁的需求變更、遺漏的需求、與用戶交流不夠、質(zhì)量低下的需求規(guī)格說明和不完善的需求分析(Davis 1995)。
對不準確的要求所提問題的正確響應(yīng)是“等我真正明白你的需求時,我就會來告訴你”?;诓怀浞中畔⒑臀唇?jīng)深思的對需求不成熟的估計很容易為一些因素左右。要作出估計時,最好還是給出一個范圍(如最好的情況下,很可能的,最壞情況下)或一個可信賴的程度(我有9 0 %的把握,我能在8周內(nèi)完成)。未經(jīng)準備的估計通常是作為一種猜測給出的,聽者卻認為是一種承諾。因此我們要盡力給出可達到的目標并堅持完成它。