企業(yè)要明確的需求不可單一理解為明確要管理什么,而是對(duì)要項(xiàng)目管理的目標(biāo)怎樣實(shí)現(xiàn)。整個(gè)過(guò)程強(qiáng)調(diào)的是管理的目標(biāo)和管理的方法之間的關(guān)系,只有立足在這個(gè)關(guān)系的基礎(chǔ)上,才可以保證做到真正明確需求。需求分析是指理解用戶(hù)需求,就軟件功能與客戶(hù)達(dá)成一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目代價(jià),最終形成開(kāi)發(fā)計(jì)劃的一個(gè)復(fù)雜過(guò)程。在這個(gè)過(guò)程中,用戶(hù)的確是處在主導(dǎo)地位,需求分析工程師和項(xiàng)目經(jīng)理要負(fù)責(zé)整理用戶(hù)需求,為之后的軟件設(shè)計(jì)打下基礎(chǔ)。有幾種原因使需求分析變得困難:(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)工程的需求是如此的主觀(guān),以致產(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、分析人員或客戶(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ē)?!?/span>
軟件系統(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)您決定廣告牌的尺寸和放在哪條高速公路上,我立即派人去做。”
為什么軟件系統(tǒng)分析員的工資要比普通程序員高?就是因?yàn)樾枨蠓治隼щy嘛。
3、需求自身經(jīng)常變動(dòng)
盡可能地分析清楚哪些是穩(wěn)定的需求,哪些是易變的需求。以便在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),將軟件的核心建筑在穩(wěn)定的需求上,否則將會(huì)吃盡苦頭。要防止象韓復(fù)渠那樣,在別人請(qǐng)他喝酒吃飯時(shí)他什么都點(diǎn)頭(人家就更加獻(xiàn)殷勤),吃完了他就宣布剛才答應(yīng)的事都不算數(shù),便揚(yáng)長(zhǎng)而去。在合同中一定要說(shuō)清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。