戶可能都不清楚他的需求是什么,這是千真萬(wàn)確的。如果你的用戶告訴你需求就是這些了,不要相信他,繼續(xù)刨根問底,直到你們都筋疲力盡了。
雖然聽上去有些不可思議,但這是教訓(xùn)之談,在我從事的項(xiàng)目之中,沒有一個(gè)用戶在軟件接近完成的時(shí)候打電話對(duì)我說(shuō),我看了你們的軟件,我想我必須改動(dòng)一些地方。在那些日子中,我甚至得了一種電話鈴音恐懼癥。
三、需求風(fēng)險(xiǎn)
下面列出了在做需求分析時(shí)一些很危險(xiǎn)的做法,如果你發(fā)現(xiàn)你的一些做法與之相似,那么,給自己一些時(shí)間,好好思考一下,這些做法會(huì)對(duì)你的軟件產(chǎn)生致命的影響。
1. 無(wú)足夠用戶參與
客戶經(jīng)常不明白為什么收集需求和確保需求質(zhì)量需花費(fèi)那么多功夫,開發(fā)人員可能也不重視用戶的參與。究其原因:一是因?yàn)榕c用戶合作不如編寫代碼有意思;二是因?yàn)殚_發(fā)人員覺得已經(jīng)明白用戶的需求了。在某些情況下,與實(shí)際使用產(chǎn)品的用戶直接接觸很困難,而客戶也不太明白自己的真正需求。但還是應(yīng)讓具有代表性的用戶在項(xiàng)目早期直接參與到開發(fā)隊(duì)伍中,并一同經(jīng)歷整個(gè)開發(fā)過(guò)程。 最重要的就是用戶必須要重視他的軟件,必須讓他明白:如果失敗,他的損失最大(當(dāng)然你的損失也不小,但這時(shí)候你必須讓他重視這項(xiàng)工作)。如果用戶不夠重視,想辦法解決,否則你就不用再繼續(xù)了。
2. 用戶需求的不斷增加
在開發(fā)中若不斷地補(bǔ)充需求,項(xiàng)目就越變?cè)烬嫶笠灾鲁^(guò)其計(jì)劃及預(yù)算范圍。這使得問題更難解決。實(shí)際上,問題根源在于用戶需求的改變和開發(fā)者對(duì)新需求所作的修改。要想把需求變更范圍控制到最小,必須一開始就對(duì)項(xiàng)目視圖、范圍、目標(biāo)、約束限制和成功標(biāo)準(zhǔn)給予明確說(shuō)明,并將此說(shuō)明作為評(píng)價(jià)需求變更和新特性的參照框架。說(shuō)明中包括了對(duì)每種變更進(jìn)行變更影響因素分析的變更控制過(guò)程,有助于所有風(fēng)險(xiǎn)承擔(dān)者明白業(yè)務(wù)決策的合理性,即為何進(jìn)行某些變更,相應(yīng)消耗的時(shí)間、資源或特性上的折中。
產(chǎn)品開發(fā)中不斷延續(xù)的變更會(huì)使其整體結(jié)構(gòu)日漸紊亂,補(bǔ)丁代碼也使得整個(gè)程序難以理解和維護(hù)。插入補(bǔ)丁代碼使模塊違背強(qiáng)內(nèi)聚、松耦合的設(shè)計(jì)原則,特別是如果項(xiàng)目配置管理工作不完善的話,收回變更和刪除特性會(huì)帶來(lái)問題。如果你盡早地區(qū)別這些可能帶來(lái)變更的特性,你就能開發(fā)一個(gè)更為健壯的結(jié)構(gòu),并能更好地適應(yīng)它。這樣設(shè)計(jì)階段需求變更不會(huì)直接導(dǎo)致補(bǔ)丁代碼,同時(shí)也有利于減少因變更導(dǎo)致質(zhì)量的下降。
最糟糕的莫過(guò)于用戶覺得如果不再加點(diǎn)什么功能就對(duì)不起自己。我曾經(jīng)看過(guò)一個(gè)數(shù)據(jù)倉(cāng)庫(kù)的一期工程,在設(shè)計(jì)階段沒有很好的定義范圍,當(dāng)我向項(xiàng)目管理者提出這個(gè)問題的時(shí)候,他認(rèn)為都已經(jīng)說(shuō)好了,合同上也寫清楚了,并沒有加以重視??墒亲詈?,用戶提出的修改意見已經(jīng)遠(yuǎn)遠(yuǎn)超出了范圍,項(xiàng)目時(shí)間也延長(zhǎng)了一倍。整個(gè)的項(xiàng)目組成員疲憊不堪,可是卻不斷的接到用戶投訴說(shuō)項(xiàng)目失敗。
3. 模棱兩可的需求
模棱兩可是需求規(guī)格說(shuō)明中最為可怕的問題(Lawrence 1996)。它的一層含義是指諸多讀者對(duì)需求說(shuō)明產(chǎn)生了不同的理解;另一層含義是指單個(gè)讀者能用不止一個(gè)方式來(lái)解釋某個(gè)需求說(shuō)明。
模棱兩可的需求會(huì)使不同的風(fēng)險(xiǎn)承擔(dān)者產(chǎn)生不同的期望,它會(huì)使開發(fā)人員為錯(cuò)誤問題而浪費(fèi)時(shí)間,并且使測(cè)試者與開發(fā)者所期望的不一致。一位系統(tǒng)測(cè)試人員曾告訴我,她所在的測(cè)試組經(jīng)常對(duì)需求理解有誤,以致不得不重寫許多測(cè)試用例并重做許多測(cè)試。
模棱兩可的需求帶來(lái)不可避免的后果便是返工—重做一些你認(rèn)為已做好的事情。返工會(huì)耗費(fèi)開發(fā)總費(fèi)用的40%,而70%~85%的重做是由于需求方面的錯(cuò)誤所導(dǎo)致的(leffingwell 1997)。想像一下如果你能減少一半的返工會(huì)是怎樣的情況?你能更快地開發(fā)出產(chǎn)品,在同樣的時(shí)間內(nèi)開發(fā)更多、更好的產(chǎn)品,甚至能偶爾
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html