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