一般來(lái)講,需求的變更通常意味著需求的增加,需求的減少相對(duì)很少,而且處理需求減少方面的問(wèn)題也比較容易。變更都是有代價(jià)的,應(yīng)該評(píng)估一下變更的代價(jià)和對(duì)項(xiàng)目的影響,在評(píng)估代價(jià)并且與客戶(hù)討論的過(guò)程中,要讓客戶(hù)了解變更的后果,變更之后面臨最大的問(wèn)題就是項(xiàng)目延期,讓客戶(hù)一起做判斷:“我可以修改,但您能接受后果嗎?”?,F(xiàn)在會(huì)出現(xiàn)三種可能:客戶(hù)接受延期這一后果,開(kāi)發(fā)人員按客戶(hù)要求做出相應(yīng)修改,讓客戶(hù)知道為此需要付出延期的代價(jià);如果客戶(hù)認(rèn)為代價(jià)太大,那開(kāi)發(fā)人員就不必修改了,可以記錄下需求,待到下一版本再做修改;客戶(hù)不接受變更的代價(jià),導(dǎo)致項(xiàng)目夭折。 如果客戶(hù)不知道你為變更付出的代價(jià),對(duì)你的辛苦便難以體會(huì),以致沒(méi)完沒(méi)了的提出新的變更。當(dāng)客戶(hù)提出新需求的時(shí)候,項(xiàng)目開(kāi)發(fā)人員應(yīng)該分析這些新需求對(duì)項(xiàng)目現(xiàn)階段帶來(lái)的風(fēng)險(xiǎn),得出雙方實(shí)現(xiàn)變更需求的需要的成本,包括時(shí)間、人力、資源等等方面。
正如前文所說(shuō),需求變更往往是不可避免的。通常是項(xiàng)目負(fù)責(zé)人員花費(fèi)了大量的氣力避免需求變更,可最后需求變更總是會(huì)出現(xiàn)。但是這并不意味著項(xiàng)目開(kāi)發(fā)人員不應(yīng)該做這方面的工作,項(xiàng)目開(kāi)發(fā)人員對(duì)于需求變更的正確態(tài)度應(yīng)該和軟件測(cè)試的態(tài)度一樣,在需求變更發(fā)生之前盡量減少需求變更,以將需求變更帶來(lái)的風(fēng)險(xiǎn)降低到最低。項(xiàng)目開(kāi)發(fā)人員切忌在項(xiàng)目設(shè)計(jì)之前試圖消除需求變更,這樣做往往費(fèi)力不討好。
相比于需求開(kāi)發(fā)人員而言,客戶(hù)可能對(duì)需求變更認(rèn)識(shí)不足,認(rèn)為他們出錢(qián),程序員或軟件開(kāi)發(fā)公司就要為它服務(wù),因此客戶(hù)對(duì)需求變更往往更加肆無(wú)忌彈,將需求變更視為兒戲,隨個(gè)人喜好隨意變更需求。因此,在需求人員同用戶(hù)代表或用戶(hù)部門(mén)主管人員接觸時(shí),就應(yīng)該向他們挑明態(tài)度,和他們協(xié)商好,特別是應(yīng)該讓他們清楚軟件的定價(jià)應(yīng)該與軟件的功能相關(guān),以及需求隨意變更所帶來(lái)的風(fēng)險(xiǎn)的承擔(dān)者應(yīng)該由客戶(hù)和項(xiàng)目開(kāi)發(fā)者共同承擔(dān)。通過(guò)這樣做,讓客戶(hù)在需求分析之前就盡量對(duì)他們所需要的功能有個(gè)整體的了解和確定的思路,而不是等到程序員開(kāi)始編碼了,才提出以前原本在需求分析時(shí)就可以提出的需求。
讓客戶(hù)明白減少需求變更的重要性后,需求分析人員應(yīng)該采取合適的方法同客戶(hù)交流,幫助他們明確他們的需求。需求分析人員和客戶(hù)的關(guān)系不應(yīng)該僅僅是記錄人員和需求提供者,他們的關(guān)系應(yīng)該更多的是戰(zhàn)略合作伙伴關(guān)系。
雖然需求分析人員和客戶(hù)存在著服務(wù)商和顧客的關(guān)系,但是他們有著一個(gè)共同的目標(biāo):開(kāi)發(fā)出適合客戶(hù)需求的軟件,因此需求分析人員除了記錄客戶(hù)提出的需求以外,還應(yīng)和用戶(hù)討論,提出一些建議,使用合適的工具幫助客戶(hù)提出需求。在需求分析時(shí),盡量多的召集需求研討會(huì),邀請(qǐng)開(kāi)發(fā)人員和客戶(hù)共同協(xié)商探討,在研討會(huì)上允許任意的提出需求,并將這些需求整理成檔后由客戶(hù)代表和需求分析人員共同商議可選的功能,這樣能夠盡量使得需求完備。在需求開(kāi)發(fā)時(shí),開(kāi)發(fā)人員采用原型的方法啟發(fā)客戶(hù)思考功能需求也不失為一個(gè)好辦法。