軟體專案需求開發過程實踐之軟體需求說明書
軟體需求說明書為誰而編寫?把這個問題搞清楚是非常有意義的。
先講個故事。
在軟體專案開始時,需求及架構設計人員把需求和架構方案講給開發人員聽,開發人員還在設計“他那輛車”,沒有聽明白?需求及架構設計人員接著寫出一些列文件後,開發人員還在設計稍作調整“他那輛車”,溝通出現了問題了嗎?專案完成後,最後結果仍是開發人員所設計的,已經變形的“他那輛車”。
問題的源頭當然在需求,需求人員又如何把需求調研結果無損的分享給“相關人員”呢?其他原因,例如專案團隊學習等不在本文中分析了。
首先,我們先回顧軟體工程中的需求分類和需求層次。
需求的分類
- 軟體需求就是系統必須完成的事,以及必須具備的品質。具體來說,軟體需求包括功能需求、非功能需求和設計約束三個方面的內容;
- 業務需求是指反映組織機構或客戶對系統、產品高層次的目標要求,通常問題定義本身就是業務需求;
- 使用者需求是指描述使用者使用產品必須要完成什麼任務、怎麼完成的需求,通常是在問題定義的基礎上進行使用者訪談、調查,對使用者使用的場景進行整理,然後建立的從使用者角度的需求;
- 系統需求是從系統的角色來說明軟體的需求,它包括了用特性說明的功能需求,質量屬性及其他非功能需求,還有設計約束。
需求的層次
需求包括三個不同的層次:業務需求、使用者需求和功能需求,也包括非功能需求。
在需求調研、需求分析、編寫需求說明書時,上述需求分類和層面都應涉及,否則,將缺項,讓人無法瞭解全面。如下表1“業務流程需求”為例所示,使用者層次及角色至少分為8個層面,他們的需求及視角很多都不同。
表1
在需求調研中,表1中,很難訪談到領導層,其他各層也很難面面俱到,而寫出來的需求說明書,這些人也看不到,或者說也不可能看,就是專案團隊中的開發人員也很少看。這樣,軟體界的需求故事不停的上演。
圖1
如何解決這些問題呢?
首先,必須寫需求說明書,而且寫成相關各個使用者層次都能看到各自關注內容,滿足現有業務需求,並高於現有的業務,也就是業務建模。只有這樣,需求變更才恢復到本來的面貌,而不是理解偏差出現的變更。
下面列表是早期寫的需求說明書目錄內容擷取,需求內容非常的多。例如:使用者有很多待建流程,如果逐一展開寫到文件中,先不說寫的工作量,還有誰看呀!
調整思維後,需求說明書目錄截圖發生較大的變化,不是以往點、面的模式描述需求,而是立體模型方式描述需求,需求建模。而需求建模需要需求開發人員能力很多,例如屬於這個方案業務專家或者管理方案的專家。
需求分析真的需要豐富的經驗,領域專家。企業管理方面呢?是不是需要企業老總呢?企業管理專家又是誰?誰能指點流程能力、執行力、效率、效益……。所以,從各個視角關注流程是非常必要的,而且,要體現這些,需要在需求說明書中編寫。
軟體需求說明書參考模版如下列表所示。
總之,軟體需求僅按使用者需求直譯方式去理解並開發,哪將是惡夢的剛剛開始。真正的需要是去偽求真的,真的需求不可能是由普通使用者(業務介面人)能全部提供的,層次不夠,覆蓋面不夠,真的來源於業務領域知識、國家政策法規、企業規章制度,以及社會及其資訊化發展方向。例如參考我早先的部落格《資訊化建設適應當前改革的思考——簡化流程與資訊透明》,關注社會及企業發展的視角。把這些內容都體現到需求說明書中,就方便各層領導閱讀了,也提供普通員工和開發人員的認識層次了。通過次需求說明書,開發人員知道並理解做什麼,減少,最好防止“一千個人心中有一千個哈姆雷特”的情況發生。
專案經驗之談分享,精力有限,難免有誤,僅供參考,歡迎討論、再補充完善。
參考:
百度百科.“軟體需求”
使用雲技術升級改造現有應用系統的思考 2013.11 肖永威
面向集團客戶的雲端計算運營平臺概述——之雲端計算運營平臺方案(一) 2013.12 肖永威
相關文章
- 軟體專案需求開發過程實踐之業務建模用例圖
- 軟體需求說明書 (轉)
- 軟體需求規格說明書
- SRS文件 軟體需求說明書
- 軟體開發專案文件系列之五如何撰寫需求規格說明書
- 軟體專案管理 4.1.軟體需求管理過程專案管理
- 專案需求說明書
- 軟體需求規格說明書的編寫指南
- 軟體需求說明書應包括的內容 (轉)
- 軟體需求說明書(GB856T——88) (轉)
- 軟體需求說明的前世和今生
- 軟體專案需求調研過程管理小議(轉)
- 軟體需求最佳實踐(1)
- 軟體需求最佳實踐(2)
- 軟體需求最佳實踐(3)
- 軟體工程_專案需求分析軟體工程
- 軟體開發專案的需求管理簡述(Z)
- 如何避免軟體開發專案中的需求管理陷阱?
- 規範軟體開發過程——軟體配置管理實踐
- 如何做好軟體專案需求分析?
- 軟體專案中,需求怎麼做?
- 軟體專案需求分析總結(轉)
- 軟體使用說明書
- 軟體定製開發的需求分析
- 再談軟體需求分析和開發
- 軟體需求規格說明文件(終)
- 軟體需求規格說明文件(初)
- Beta版軟體說明書
- 軟體專案管理 4.3.敏捷需求建模方法專案管理敏捷
- 軟體專案需求分析的20條法則
- 需求規格說明書
- 敏捷需求管理軟體敏捷
- 檢查軟體需求
- 軟體工程——需求分析軟體工程
- 【軟體測試】軟體及其開發過程
- 軟體需求分類與需求獲取
- 軟體開發專案計劃編制過程(轉)
- 軟體專案管理 9.2.軟體專案配置管理過程專案管理