需求分析作為軟件開發(fā)過程中的非常重要的環(huán)節(jié),在確保軟件質量,盡可能挖掘軟件價值方面起著不可替代的作用。中培課堂《需求分析最佳實踐》培訓專家郭老師作為該領域的知名專家,就需求分析過程中需要認知的問題進行了詳細介紹。郭老師指出,在需求分析過程中,技術人員應該明白以下幾個問題。
(一)需求完整性需要諸多用戶的參與和確認,而且用戶間需求本身也存在沖突的可能,因此需求更加強調角色和場景和劃分,一個所有用戶需要都能夠滿足的需求往往不是一個好需求。
(二)需求過程缺乏用戶的參與,我們往往是技術驅動,習慣性的跳到模塊的劃分導致需求本身驗證困難,也導致了需求間耦合很緊,很難在后期組織有效的迭代開發(fā)。因此要考慮按流程和業(yè)務梳理需求。
(三)需求無法實現(xiàn)也可能不是架構問題,而是需求本身不切實際。
(四)用戶想要和真正需要是有區(qū)別的,沒有真正的識別需求優(yōu)先級可能導致需求過量開發(fā)和需求鍍金。
(五)需求優(yōu)先級識別往往并不能完全依靠用戶,用戶往往只會把自己關注功能講優(yōu)先級識別的很高,因此需求優(yōu)先級識別應該是通過業(yè)務規(guī)則,流程和模式來確定。優(yōu)先級識別方法(離主營業(yè)務的遠近,發(fā)生的頻率兩個方面來度量)
(六)溝通失真,要認識到文檔僅僅是中介而不是全部,要通過即時的驗證來減少溝通失真。
(七)需求捕獲和調研常見問題-用戶告訴你的是他轉化后的解決方案,而不是最原始的需求。
(八)變更頻繁,但是要響應變化,比如通過對變更分類來識別哪些變更是可以通過復用和可配置解決的。
(九)非功能性需求為有效的識別,僅僅是定性,而沒有通過定性->場景->定量的路線。