五.需求分析的原則
不重視需求過程的項(xiàng)目隊(duì)伍將自食其果。需求工程中的缺陷將給項(xiàng)目成功帶來極大風(fēng)險(xiǎn),這里的“成功”是指推出的產(chǎn)品能以合理的價(jià)格、及時(shí)地在功能、質(zhì)量上完全滿足用戶的期望。下面將討論一些需求風(fēng)險(xiǎn)。
不適當(dāng)?shù)男枨筮^程所引起的一些風(fēng)險(xiǎn):
1. 無足夠用戶參和
客戶經(jīng)常不明白為什么收集需求和確保需求質(zhì)量需花費(fèi)那么多功夫,研發(fā)人員可能也不重視用戶的參和。究其原因:一是因?yàn)檠邪l(fā)人員感覺和用戶合作不如編寫代碼有意思;二是因?yàn)檠邪l(fā)人員覺得已明白用戶的需求了。在某些情況下,和實(shí)際使用產(chǎn)品的用戶直接接觸非常困難,而客戶也不太明白自己的真正需求。但還是應(yīng)讓具有代表性的用戶在項(xiàng)目早期直接參和到研發(fā)隊(duì)伍中,并一同經(jīng)歷整個(gè)研發(fā)過程。
系統(tǒng)人員在實(shí)踐過程中,也有些感覺,在實(shí)施一家公司的項(xiàng)目時(shí),若無足夠的用戶參和,系統(tǒng)人員獲得的需求是片面的,不完整的,這樣系統(tǒng)在需求之初就埋下風(fēng)險(xiǎn)。
2. 用戶需求的不斷增加
在研發(fā)中若不斷地補(bǔ)充需求,項(xiàng)目就越變越龐大以致超過其計(jì)劃及預(yù)算范圍。計(jì)劃并不總是和項(xiàng)目需求規(guī)模和復(fù)雜性、風(fēng)險(xiǎn)、研發(fā)生產(chǎn)率及需求變更實(shí)際情況相一致,這使得問題更難解決。實(shí)際上,問題根源在于用戶需求的改動(dòng)和研發(fā)者對新需求所作的修改。
要想把需求變更范圍控制到最小,必須一開始就對項(xiàng)目視圖、范圍、目標(biāo)、約束限制和成功標(biāo)準(zhǔn)給予明確說明,并將此說明作為評價(jià)需求變更和新特性的參照框架。說明中包括了對每種變更進(jìn)行變更影響因素分析的變更控制過程,有助于所有風(fēng)險(xiǎn)承擔(dān)者明白業(yè)務(wù)決策的合理性,即為何進(jìn)行某些變更,相應(yīng)消耗的時(shí)間、資源或特性上的折中。
產(chǎn)品研發(fā)中不斷延續(xù)的變更會(huì)使其整體結(jié)構(gòu)日漸紊亂,補(bǔ)丁代碼也使得整個(gè)程式難以理解和維護(hù)。插入補(bǔ)丁代碼使模塊違背強(qiáng)內(nèi)聚、松耦合的設(shè)計(jì)原則,特別是如果項(xiàng)目設(shè)置管理工作不完善的話,收回變更和刪除特性會(huì)帶來問題。如果你盡早地差別這些可能帶來變更的特性,你就能研發(fā)一個(gè)更為健壯的結(jié)構(gòu),并能更好地適應(yīng)他。這樣設(shè)計(jì)階段需求變更不會(huì)直接導(dǎo)致補(bǔ)丁代碼,同時(shí)也有利于減少因變更導(dǎo)致質(zhì)量的下降。
3. 模棱兩可的需求
模棱兩可是需求規(guī)格說明中最為可怕的問題。他的一層含義是指諸多讀者對需求說明產(chǎn)生了不同的理解;另一層含義是指單個(gè)讀者能用不止一個(gè)方式來解釋某個(gè)需求說明。
模棱兩可的需求會(huì)使不同的風(fēng)險(xiǎn)承擔(dān)者產(chǎn)生不同的期望,他會(huì)使研發(fā)人員為錯(cuò)誤問題而浪費(fèi)時(shí)間,并且使測試者和研發(fā)者所期望的不一致。一位系統(tǒng)測試人員曾告訴我,她所在的測試組經(jīng)常對需求理解有誤,以致不得不重寫許多測試用例并重做許多測試。
處理模棱兩可需求的一種方法是組織好負(fù)責(zé)從不同角度審查需求的隊(duì)伍。僅僅簡單瀏覽一下需求文件是不能解決模棱兩可問題的。如果不同的評審者從不同的角度對需求說明給予解釋,但每個(gè)評審人員都真正了解需求文件,這樣二義性就不會(huì)直到項(xiàng)目后期才被發(fā)現(xiàn),那時(shí)再發(fā)現(xiàn)的話會(huì)使得更正代價(jià)非常大。
4. 不必要的特性
“畫蛇添足”是指研發(fā)人員力圖增加一些“用戶欣賞”但需求規(guī)格說明中并未涉及的新功能。經(jīng)常發(fā)生的情況是用戶并不認(rèn)為這些功能性非常有用,以致在其上耗費(fèi)的努力“白搭”了。研發(fā)人員應(yīng)當(dāng)為客戶構(gòu)思方案并為他們提供一些具有創(chuàng)新意識的思路,具體提供哪些功能要在客戶所需和研發(fā)人員在允許時(shí)限內(nèi)的技術(shù)可行性之間求得平衡,研發(fā)人員應(yīng)努力使功能簡單易用,而不要未經(jīng)客戶同意,擅自脫離客戶需求,自作主張。
同樣,客戶有時(shí)也可能需求一些看上去非常“酷”,但缺乏實(shí)用價(jià)值的功能,而實(shí)現(xiàn)這些功能只能徒耗時(shí)間和成本。為了將“畫蛇添足”的危害盡