有幾種原因使需求分析變得困難:(1)客戶(hù)說(shuō)不清楚需求;(2)需求自身經(jīng)常變動(dòng);(3)分析人員或客戶(hù)理解有誤。
1客戶(hù)說(shuō)不清楚需求
有些客戶(hù)對(duì)需求只有朦朧的感覺(jué),當(dāng)然說(shuō)不清楚具體的需求。例如全國(guó)各地的很多政府機(jī)構(gòu)在搞網(wǎng)絡(luò)建設(shè),這些單位的領(lǐng)導(dǎo)和辦公人員大多不清楚計(jì)算機(jī)網(wǎng)絡(luò)有什么用,反而要軟件系統(tǒng)分析人員替他們?cè)O(shè)想需求。這類(lèi)工程的需求是如此的主觀,以致產(chǎn)生很多貪污腐敗現(xiàn)象
有些客戶(hù)心里非常清楚想要什么,但卻說(shuō)不明白。讀者可能很不以為然。就舉日常生活的事例吧,比如說(shuō)買(mǎi)鞋子。我們非常了解自已的腳,但沒(méi)法說(shuō)清楚腳的大小和形狀。只能拿鞋子去試,試穿時(shí)感覺(jué)到舒服才會(huì)買(mǎi)鞋(居然也有神通廣大的售貨員,看一眼客戶(hù)的手,就知道應(yīng)該穿什么樣的鞋)。
如果客戶(hù)本身就懂軟件開(kāi)發(fā),能把需求說(shuō)得清清楚楚,這樣的需求分析將會(huì)非常輕松、愉快。如果客戶(hù)全不懂軟件,但信任軟件開(kāi)發(fā)方,這事也好辦。分析人員可以引導(dǎo)客戶(hù),先闡述常規(guī)的需求,再由客戶(hù)否定不需要的,最終確定客戶(hù)真正的需求。最怕的就是“不懂裝懂”或者“半懂充內(nèi)行”的客戶(hù),他們會(huì)提出不切實(shí)際的需求。如果這些客戶(hù)甚至覺(jué)得自己是上帝的爸爸,那么溝通和協(xié)商都會(huì)很困難。
2需求自身經(jīng)常變動(dòng)
唐僧曾說(shuō):“妖要是有了仁慈之心,就不再是妖,是人妖。”(《大話(huà)西游之大圣娶親》)
連妖都會(huì)變心,別說(shuō)人了。所以喜新厭舊乃人之常情,世界也因此變得多姿多彩。
軟件的需求會(huì)變化嗎?
答:據(jù)歷史記載,沒(méi)有一個(gè)軟件的需求改動(dòng)少于三次。唯一只改動(dòng)需求兩次的客戶(hù)是個(gè)死人。這個(gè)可憐的家伙還是在運(yùn)送第三次需求的路上被車(chē)子撞死的。
讓我們先接受“需求會(huì)變動(dòng)”這個(gè)事實(shí)吧,免得在需求變動(dòng)時(shí)驚慌失措。明白“需求會(huì)變動(dòng)”這個(gè)道理后,在進(jìn)行需求分析時(shí)就要留點(diǎn)神:
(1)盡可能地分析清楚哪些是穩(wěn)定的需求,哪些是易變的需求。以便在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),將軟件的核心建筑在穩(wěn)定的需求上,否則將會(huì)吃盡苦頭。
(2)在合同中一定要說(shuō)清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。要防止象韓復(fù)渠那樣,在別人請(qǐng)他喝酒吃飯時(shí)他什么都點(diǎn)頭(人家就更加獻(xiàn)殷勤),吃完了他就宣布剛才答應(yīng)的事都不算數(shù),便揚(yáng)長(zhǎng)而去。
3分析人員或客戶(hù)理解有誤
有個(gè)外星人間諜潛伏到地球刺探情報(bào),它給上司寫(xiě)了一份報(bào)告:“主宰地球的是車(chē)。它們喝汽油,靠四個(gè)輪子滾動(dòng)前進(jìn)。嗓門(mén)極大,在夜里雙眼能射出強(qiáng)光?!腥さ氖?,車(chē)?yán)镒≈环N叫作‘人’的寄生蟲(chóng),這些寄生蟲(chóng)完全控制了車(chē)?!?/P>
軟件系統(tǒng)分析人員不可能都是全才??蛻?hù)表達(dá)的需求,不同的分析人員可能有不同的理解。如果分析人員理解錯(cuò)了,可能會(huì)導(dǎo)致開(kāi)發(fā)人員白干活,吃力不討好。我讀中學(xué)時(shí)候最怕寫(xiě)作文逃題,如果逃題了,不管作文寫(xiě)得多長(zhǎng),總是零分。所以分析人員寫(xiě)好需求說(shuō)明書(shū)后,要請(qǐng)客戶(hù)方的各個(gè)代表驗(yàn)證。如果問(wèn)題很復(fù)雜,雙方都不太明白,就有必要請(qǐng)開(kāi)發(fā)人員快速構(gòu)造軟件的原型,雙方再次論證需求說(shuō)明書(shū)是否正確。
由于客戶(hù)大多不懂軟件,他們可能覺(jué)得軟件是萬(wàn)能的,會(huì)提出一些無(wú)法實(shí)現(xiàn)的需求。有時(shí)客戶(hù)還會(huì)把軟件系統(tǒng)分析人員的建議或答復(fù)給想歪了。
有一個(gè)軟件人員滔滔不絕地向客戶(hù)講解在“信息高速公路上做廣告”的種種好處,客戶(hù)聽(tīng)得津津有味。最后,心動(dòng)的客戶(hù)對(duì)軟件人員說(shuō):“好得很,就讓我們馬上行動(dòng)起來(lái)吧。請(qǐng)您決定廣告牌的尺寸和放在哪條高速公路上,我立即派人去做?!?/P>
為什么軟件系統(tǒng)分析員的工資要比普通程序員高?就是因?yàn)樾枨蠓治隼щy嘛。