系統(tǒng)帶來(lái)極大損害的部分,并且以后再對(duì)它進(jìn)行修改也極為困難。
為什么這么說(shuō)呢,因?yàn)樵诖蠖鄶?shù)的軟件系統(tǒng)中,最終用戶(hù)可能都不清楚他的需求是什么,這是千真萬(wàn)確的。如果你的用戶(hù)告訴你需求就是這些了,不要相信他,繼續(xù)刨根問(wèn)底,直到你們都筋疲力盡了。
雖然聽(tīng)上去有些不可思議,但這是教訓(xùn)之談,在我從事的項(xiàng)目之中,沒(méi)有一個(gè)用戶(hù)在軟件接近完成的時(shí)候打電話(huà)對(duì)我說(shuō),我看了你們的軟件,我想我必須改動(dòng)一些地方。在那些日子中,我甚至得了一種電話(huà)鈴音恐懼癥。
需求風(fēng)險(xiǎn)
下面列出了在做需求分析時(shí)一些很危險(xiǎn)的做法,如果你發(fā)現(xiàn)你的一些做法與之相似,那么,給自己一些時(shí)間,好好思考一下,這些做法會(huì)對(duì)你的軟件產(chǎn)生致命的影響。
1. 無(wú)足夠用戶(hù)參與
客戶(hù)經(jīng)常不明白為什么收集需求和確保需求質(zhì)量需花費(fèi)那么多功夫,開(kāi)發(fā)人員可能也不重視用戶(hù)的參與。究其原因:一是因?yàn)榕c用戶(hù)合作不如編寫(xiě)代碼有意思;二是因?yàn)殚_(kāi)發(fā)人員覺(jué)得已經(jīng)明白用戶(hù)的需求了。在某些情況下,與實(shí)際使用產(chǎn)品的用戶(hù)直接接觸很困難,而客戶(hù)也不太明白自己的真正需求。但還是應(yīng)讓具有代表性的用戶(hù)在項(xiàng)目早期直接參與到開(kāi)發(fā)隊(duì)伍中,并一同經(jīng)歷整個(gè)開(kāi)發(fā)過(guò)程。
最重要的就是用戶(hù)必須要重視他的軟件,必須讓他明白:如果失敗,他的損失最大(當(dāng)然你的損失也不小,但這時(shí)候你必須讓他重視這項(xiàng)工作)。如果用戶(hù)不夠重視,想辦法解決,否則你就不用再繼續(xù)了。
2. 用戶(hù)需求的不斷增加
在開(kāi)發(fā)中若不斷地補(bǔ)充需求,項(xiàng)目就越變?cè)烬嫶笠灾鲁^(guò)其計(jì)劃及預(yù)算范圍。這使得問(wèn)題更難解決。實(shí)際上,問(wèn)題根源在于用戶(hù)需求的改變和開(kāi)發(fā)者對(duì)新需求所作的修改。要想把需求變更范圍控制到最小,必須一開(kāi)始就對(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)品開(kāi)發(fā)中不斷延續(xù)的變更會(huì)使其整體結(jié)構(gòu)日漸紊亂,補(bǔ)丁代碼也使得整個(gè)程序難以理解和維護(hù)。插入補(bǔ)丁代碼使模塊違背強(qiáng)內(nèi)聚、松耦合的設(shè)計(jì)原則,特別是如果項(xiàng)目配置管理工作不完善的話(huà),收回變更和刪除特性會(huì)帶來(lái)問(wèn)題。如果你盡早地區(qū)別這些可能帶來(lái)變更的特性,你就能開(kāi)發(fā)一個(gè)更為健壯的結(jié)構(gòu),并能更好地適應(yīng)它。這樣設(shè)計(jì)階段需求變更不會(huì)直接導(dǎo)致補(bǔ)丁代碼,同時(shí)也有利于減少因變更導(dǎo)致質(zhì)量的下降。
最糟糕的莫過(guò)于用戶(hù)覺(jué)得如果不再加點(diǎn)什么功能就對(duì)不起自己。我曾經(jīng)看過(guò)一個(gè)數(shù)據(jù)倉(cāng)庫(kù)的一期工程,在設(shè)計(jì)階段沒(méi)有很好的定義范圍,當(dāng)我向項(xiàng)目管理者提出這個(gè)問(wèn)題的時(shí)候,他認(rèn)為都已經(jīng)說(shuō)好了,合同上也寫(xiě)清楚了,并沒(méi)有加以重視??墒亲詈?,用戶(hù)提出的修改意見(jiàn)已經(jīng)遠(yuǎn)遠(yuǎn)超出了范圍,項(xiàng)目時(shí)間也延長(zhǎng)了一倍。整個(gè)的項(xiàng)目組成員疲憊不堪,可是卻不斷的接到用戶(hù)投訴說(shuō)項(xiàng)目失敗。