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