題解:做了多個系統的需求分析之后,有做總結的必要了。
在需求分析階段,甚至是整個軟件開發階段,需求的變化是唯一不變的東西。項目中最難做的也是如何去控制需求。這個有點復雜,放到后續文章去說,先說說如何
將客戶的問題信息轉化為需求:
1.分清客戶的問題是“需要”還是一個“需求”
需要,指問題已明確。需求則表示問題未明確
2.分清最好有與必須有。
必須有,這個是硬性需求;最好有,非硬性需求。根據項目的實際情況,如成本,時間(計劃),范圍的約束來綜合評定。
3.客戶對問題的描述是為了說明問題還是提供一種解決方案
在收集和分析客戶需求時,一定要搞清楚客戶是在描述問題本身還是問題的解決方案
4 有哪些人使用這個系統
俗語說,有什么樣的客戶,就有什么樣的系統。客戶的能力以及偏好,包括理解力,對系統的設計至關重要。
5.有那些人不喜歡這個系統
是辦公室政治?是易用性?是穩定性?maybe something else
6.挖掘潛在問題,形成問題鏈
客戶大都沒有系統訓練,他們對問題的描述往往比較零散和隨意。如何將問題竄成鏈,挖掘更深層次的問題是需求分析人員需要幫助他們完成的。記住是幫助,不是
強迫他們按照你的思維思考問題。這里面最難的部分屬于如果從軟件專業人員的角度提出建議。同時又要讓自己的的建議不干擾到客戶的原始需求。
根據個人的經驗,需求階段最大的悲哀在于你出于最好的目的卻造成了最壞的結果——建議客戶如何如何,建議有時會掩蓋客戶的真實想法。客戶信任我們的建議,
他們誤以為我們的建議可以解決他們的問題,然而有時事與愿違。所以,我們應該多聽客戶的想法,延遲你的建議與引導。
7.非功能性需求的采集
易用性,擴展性,交互性,性能,安全性等等。