天天看點

《建構之法》讀書筆記第8章——需求分析

一場戰争開始前,最重要的就是情報。正所謂知己知彼,方能百戰百勝。而軟體開發前最重要的一點,莫過于使用者需求的分析。做好了需求分析,才能有的放矢,避免開發出為開發而開發的軟體。

如何準确的擷取需求呢?書中給出以下步驟:

  1. 擷取和引導需求(Elicitation)
  2. 分析和定義需求
  3. 驗證需求
  4. 軟體産品的生命周期中管理需求

軟體的需求可以劃分為:對産品功能性的需求、産品開發過程中的需求、非功能續期、綜合需求等

值得注意的是軟體的需求不僅僅包括使用者的需求,還包括顧客、市場分析者、監管機構、內建應用商、軟體團隊、軟體工程師等軟體利益相關方的需求。軟體開發中不一定能同時滿足所有相關方的需求,需要注意優先級

使用者的需求需要人和人之間的準确溝通,在軟體開發的溝通鍊中,使用者真正的想要的需求往往會發生變形,導緻軟體最終開發出來的并不是使用者真正想要的。如何準确掌握使用者的需求?書中列出以下方法:焦點小組、深入面談、卡片分來、使用者調查問卷、使用者日志研究、人類學調查、眼動跟蹤研究、快速原型調研、A/B測試等。但是也要注意在應用使用者資料改進時,避免掉入吹毛求疵的陷阱。

如何在做“實用并創新的項目”中有理有據的說服别人?避免“二拍”方法(拍腦袋>拍胸脯>拍屁股)溝通?書中給出了NABCD模型。N是Need ,準确找到需求。A:Approach,靠譜的做法解決使用者的問題。B:Benifit,給使用者帶來了什麼好處?C: Competition,和競争方相比,我們有什麼優勢,又有什麼劣勢?D:Delivery 如何把創新産品交到使用者手中呢?

在得到需求之後,下一步就是功能實作。功能實作可以分為殺手功能/外圍功能、必要需求/輔助需求四個象限劃分。

劃分好功能後,下一步就是制定計劃,在計劃制定和實施過程中,也需要準确估計計劃實作需要的時間。首先要區分好目标、估計和決心。估計各項目所需要的時間,看似容易卻不簡單。如果混淆了三者,後果會很嚴重,曆史上的“大躍進”就是典型的例子。軟體項目的估計可以從自底向上和回溯兩個方面來看。

項目要一點一點的做,感覺無從下手的項目要逐漸分解成可以操作的工作。書中列舉的常用的分而治之的方法就是WBS:Work Breakdown Structure WBS的目的就是從最終的産品開始,将項目分解成小型、具體的小件,“直到WBS的使用者(開發團隊、接收方)達到共識。”

繼續閱讀