只需要一份需求

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

這兩個月來,主要都是在進行和需求相關的培訓和諮詢,我發現在行業裏一個根深蒂固的認識是需要/可以存在多份不同格式的分立的需求文檔:業務人員可以寫一份意識流的業務(客戶)需求文檔,開發人員可以在再寫一份充斥着分析結果及IT術語的軟件(軟件)需求,測試人員則可以寫一份閉門造車的測試需求。好像每個人都很好的完成了任務,但是誰來保證這些需求的一致性呢?我們有很好的答案請業務人員確認他們看不懂的軟件需求,請開發人員確認他們沒時間或心思看的測試需求,絕妙的主意!

 

目前大多數客戶編寫軟件需求規約的思路和格式基本上都與IEEE Std 830-1998標準一脈相承,這種基於結構化分析和功能分解的文檔體系(包括數據流圖,數據字典等)起源於70年代,當時,軟件的主要應用還是科學計算或信息處理,理解需求的人往往也受過結構化分析的相關教育,然而這些內容對今天的大多說業務人員或最終用戶而言就是很難理解的了。可以說在這樣的軟件需求規約裏分析多於需求,爲了解決這個問題,有的組織開始引入了非形式化、非結構化的業務需求,然而卻很難在兩種需求之間建立明確的對應關係,從而造成了第一段中描述的困境。

 

另一個造成多份不同格式的分立的需求存在的原因可能與僵化地執行CMMI有關,CMMI在三級的需求開發(Requirements Developement)這個過程域(Process Area)中將開發客戶需求(Customer Requirements)和開發產品需求(Product Requirements)明確地分成了兩個不同的特定目標(Specific Goals),這導致有些企業讓業務人員負責客戶需求,而讓開發團隊負責產品(軟件)需求,表面上各司其職,但實際上帶來的是大家在郵件裏將文檔發來發去,工作效率很低而溝通的效果也不好。

 

我們推薦的需求體系是基於用例的, 它是一種可以被各方真正理解和溝通、並可以被逐步精化的需求體系。用例是這一需求文檔體系的主體,但其實這一體系是由如下文檔來構成的:

l         前景文檔:對目標系統的商業前景進行分析;

l         涉衆分析:對目標系統的涉衆以及他們對目標系統的主要要求(Needs)進行分析;

l         特性列表:概述目標系統的主要特性

l         詞彙表:對領域內的名詞、術語和商業規則進行解釋;

l         領域模型:用模型的方式對領域內的實體關係進行描述;

l         用例模型:對整個用例模型進行概述;

l         用例規約:對每個用例的基本流和備選流進行詳細的描述;

l         補充規約: 對目標系統級的非功能性需求進行描述;

 

我們推薦的工作方式是:

l         不同的角色(業務,開發,測試等)組成一個虛擬團隊,基於同一個基於用例的需求體系進行協同的需求開發;

l         在需求開發的前期,以業務人員爲主導,通過對業務的分析來豐富需求的內容; 而在需求開發的中後期,以開發人員爲主導,通過對需求的分析來細化需求;如果組織需要通過CMMI評估,那麼可以將前期的一個需求基線作爲客戶需求,而將後期的一個需求基線作爲產品需求;

l         需求是在開發過程中不斷演進的,虛擬需求團隊定期對需求的變更進行復審,因此對需求的確認是不斷以增量方式進行的;

l         開發人員將需求分析的結果以需求分析規約或分析模型的方式記錄下來,但如果認爲需求有問題,就應該以協作的方式對需求進行改進而不是另寫一份文檔;

l         測試人員同樣也是對需求進行分析準備測試方案和測試用例,並同時對需求提出改進建議;

l         可能需要考慮引入一些工具來支持這樣的協同需求開發過程;

 

總之,我們推薦的需求開發方法是以一個緊密協同的虛擬團隊在一個需求體系之上來進行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章