一樣,在需求變更發(fā)生之前盡量減少需求變更,以將需求變更帶來(lái)的風(fēng)險(xiǎn)降低到最低。項(xiàng)目開發(fā)人員切忌在項(xiàng)目設(shè)計(jì)之前試圖消除需求變更,這樣做往往費(fèi)力不討好。
相比于需求開發(fā)人員而言,客戶可能對(duì)需求變更認(rèn)識(shí)不足,認(rèn)為他們出錢,程序員或軟件開發(fā)公司就要為它服務(wù),因此客戶對(duì)需求變更往往更加肆無(wú)忌彈,將需求變更視為兒戲,隨個(gè)人喜好隨意變更需求。因此,在需求人員同用戶代表或用戶部門主管人員接觸時(shí),就應(yīng)該向他們挑明態(tài)度,和他們協(xié)商好,特別是應(yīng)該讓他們清楚軟件的定價(jià)應(yīng)該與軟件的功能相關(guān),以及需求隨意變更所帶來(lái)的風(fēng)險(xiǎn)的承擔(dān)者應(yīng)該由客戶和項(xiàng)目開發(fā)者共同承擔(dān)。通過(guò)這樣做,讓客戶在需求分析之前就盡量對(duì)他們所需要的功能有個(gè)整體的了解和確定的思路,而不是等到程序員開始編碼了,才提出以前原本在需求分析時(shí)就可以提出的需求。
讓客戶明白減少需求變更的重要性后,需求分析人員應(yīng)該采取合適的方法同客戶交流,幫助他們明確他們的需求。需求分析人員和客戶的關(guān)系不應(yīng)該僅僅是記錄人員和需求提供者,他們的關(guān)系應(yīng)該更多的是戰(zhàn)略合作伙伴關(guān)系。雖然需求分析人員和客戶存在著服務(wù)商和顧客的關(guān)系,但是他們有著一個(gè)共同的目標(biāo):開發(fā)出適合客戶需求的軟件,因此需求分析人員除了記錄客戶提出的需求以外,還應(yīng)和用戶討論,提出一些建議,使用合適的工具幫助客戶提出需求。在需求分析時(shí),盡量多的召集需求研討會(huì),邀請(qǐng)開發(fā)人員和客戶共同協(xié)商探討,在研討會(huì)上允許任意的提出需求,并將這些需求整理成檔后由客戶代表和需求分析人員共同商議可選的功能,這樣能夠盡量使得需求完備。在需求開發(fā)時(shí),開發(fā)人員采用原型的方法啟發(fā)客戶思考功能需求也不失為一個(gè)好辦法。
雖然需求不可能是完備的、變更不可能沒(méi)有的,但是在項(xiàng)目開始設(shè)計(jì)時(shí)使得需求盡可能完備還是應(yīng)該的,也是值得的,完備需求的過(guò)程也就相應(yīng)的減少了因?yàn)樾枨蟛磺宄a(chǎn)生變更的幾率。