這兩個月來,主要都是在進行和需求相關的培訓和諮詢,我發現在行業裡乙個根深蒂固的認識是需要/可以存在多份不同格式的分立的需求文件:業務人員可以寫乙份意識流的業務(客戶)需求文件,開發人員可以在再寫乙份充斥著分析結果及it術語的軟體(軟體)需求,測試人員則可以寫乙份閉門造車的測試需求。好像每個人都很好的完成了任務,但是誰來保證這些需求的一致性呢?我們有很好的答案—請業務人員確認他們看不懂的軟體需求,請開發人員確認他們沒時間或心思看的測試需求,絕妙的主意!
目前大多數客戶編寫軟體需求規約的思路和格式基本上都與ieee std 830-1998標準一脈相承,這種基於結構化分析和功能分解的文件體系(包括資料流圖,資料字典等)起源於70年代,當時,軟體的主要應用還是科學計算或資訊處理,理解需求的人往往也受過結構化分析的相關教育,然而這些內容對今天的大多說業務人員或終端使用者而言就是很難理解的了。可以說在這樣的軟體需求規約裡分析多於需求,為了解決這個問題,有的組織開始引入了非形式化、非結構化的業務需求,然而卻很難在兩種需求之間建立明確的對應關係,從而造成了第一段中描述的困境。
另乙個造成多份不同格式的分立的需求存在的原因可能與僵化地執行cmmi有關,cmmi在**的需求開發(requirements developement)這個過程域(process area)中將開發客戶需求(customer requirements)和開發產品需求(product requirements)明確地分成了兩個不同的特定目標(specific goals),這導致有些企業讓業務人員負責客戶需求,而讓開發團隊負責產品(軟體)需求,表面上各司其職,但實際上帶來的是大家在郵件裡將文件發來發去,工作效率很低而溝通的效果也不好。
•前景文件:對目標系統的商業前景進行分析;
•涉眾分析:對目標系統的涉眾以及他們對目標系統的主要要求(needs)進行分析;
•特性列表:概述目標系統的主要特性
•詞彙表:對領域內的名詞、術語和商業規則進行解釋;
•領域模型:用模型的方式對領域內的實體關係進行描述;
•用例模型:對整個用例模型進行概述;
•用例規約:對每個用例的基本流和備選流進行詳細的描述;
•補充規約: 對目標系統級的非功能性需求進行描述;
•不同的角色(業務,開發,測試等)組成乙個虛擬團隊,基於同乙個基於用例的需求體系進行協同的需求開發;
•在需求開發的前期,以業務人員為主導,通過對業務的分析來豐富需求的內容; 而在需求開發的中後期,以開發人員為主導,通過對需求的分析來細化需求;如果組織需要通過cmmi評估,那麼可以將前期的乙個需求基線作為客戶需求,而將後期的乙個需求基線作為產品需求;
•需求是在開發過程中不斷演進的,虛擬需求團隊定期對需求的變更進行複審,因此對需求的確認是不斷以增量方式進行的;
•開發人員將需求分析的結果以需求分析規約或分析模型的方式記錄下來,但如果認為需求有問題,就應該以協作的方式對需求進行改進而不是另寫乙份文件;
•測試人員同樣也是對需求進行分析準備測試方案和測試用例,並同時對需求提出改進建議;
•可能需要考慮引入一些工具來支援這樣的協同需求開發過程;
總之,我們推薦的需求開發方法是以乙個緊密協同的虛擬團隊在乙個需求體系之上來進行的。
只需要乙份需求
這兩個月來,主要都是在進行和需求相關的培訓和諮詢,我發現在行業裡乙個根深蒂固的認識是需要 可以存在多份不同格式的分立的需求文件 業務人員可以寫乙份意識流的業務 客戶 需求文件,開發人員可以在再寫乙份充斥著分析結果及 it術語的軟體 軟體 需求,測試人員則可以寫乙份閉門造車的測試需求。好像每個人都很好...
自律只需要這篇文章
1.鑽研,只要你有乙個方面特別優秀,則在這個社會就足夠了,能夠吃一輩子 2.領悟,需要的時候,別人給你只是乙個具體的方向,具體的路還是要自己去設計 3.執行力,晚上喜歡想想沒有小本本記錄,那麼第二天就忘了,所以床頭一定備個備忘錄,還要有行動能力,不然你就不要記錄,最好就不要想 4.落實,每天幻想自己...
提高IO效能(只需要設定 noatime)
相信對效能 優化這些關鍵字有興趣的朋友都知道在 linux 下面掛載檔案系統的時候設定 noatime 可以顯著提高檔案系統的效能。預設情況下,linux ext2 ext3 檔案系統在檔案被訪問 建立 修改等的時候記錄下了檔案的一些時間戳,比如 檔案建立時間 最近一次修改時間和最近一次訪問時間。因...