瀑布模型項目中的需求分析之道(一)
在瀑布模型項目中,需求分析的質量直接決定了整個項目的完成質量。需求人員需要盡早的將項目需求和客戶及內部開發團隊達成一致,并做到對問題早發現,早解決。
一、能力模型
說需求分析,不得不先提當下比較流行的2種軟件開發架構:瀑布模型和敏捷開發模型。在不同的開發架構中,需求分析角色者的能力模型和方法論也會有較大的差異。
瀑布模型是經典的周期模型,社會認可度高,通常適合招投標類的客戶解決方案項目。它將一個項目的軟件生命周期分為可研、需求分析、概要設計、詳細設計、實現、系統測試、驗收測試和維護等階段,各個階段呈線性推進,即一個階段完成通過后才可進行下一階段的工作。
而敏捷開發模型則以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發。它強調適應性而非預設性,將項目分解成不同的“MVP”周期執行。敏捷開發模型是面向人而不是過程,它更強調團隊間的充分溝通,更適合那些自主運營的互聯網產品。
需求分析角色在瀑布模型中的能力模型偏向項目經理,在實際需求調研和需求設計中需要結合項目管理的黃金三角(時間、資源、質量)進行統籌規劃;而在敏捷開發模型中則更偏向于產品經理,在產品策劃和交互設計中則對自身商業感和規劃能力有更高的要求。項目經理和產品經理的能力模型本身有一定的區別,產品新人在加入公司后可根據實際情況制定符合自身的能力提升計劃。以下主要以瀑布模型類的項目為例。
二、需求的生命周期
一個需求的完整生命周期,通常包括產品策劃(問題識別)、需求分析(分析與綜合)、制定規格說明和評審。
(一)產品策劃(問題識別)
在解決方案項目中,問題識別通常在可研階段就已經開始,項目經理(這個階段也可能是售前工程師)通過高層交流、問題報告、訪談紀要、標桿對比和準入標準等方式,初步形成一份“正式需求”,該過程可分解如下:
- 以業主的角度,幫助客戶將項目從BRD梳理成MRD的過程,形成基本方案
- 以承建方的角度,初步了解項目的功能邊界和實現成本
不同企業的團隊構建可能會有不同,需求角色在該階段最好能夠在該階段便參與可研的過程,而非等項目招投標完成后,才參與到項目建設,這樣往往會加大項目的不可控性。
問題識別時,分類原始需求通常有上述幾種方法,包括#APPEALS分類、四象限分類和BSA法分類,通過#APPEALS的八個維度來定位整個項目,為后續管理中使用黃金三角提供依據;四象限和BSA法通常結合使用,以判斷項目的功能邊界和項目的里程碑梯度。
(二)需求分析
需求分析的過程,是將用戶需求轉化為產品需求的過程,本質上也是信息系統的建模過程,包括結構化方法,面向對象方法和原型法等。在實際需求分析中,這幾種方法通常綜合使用。
- 結構化方法:是相對最早和最傳統的軟件開發方法,它采用模塊化技術、分而治之的方法,將系統按功能分解為若干模塊;模塊內部由順序、分支和循環等基本控制結構組成,主要工具為數據流圖,適用于一些不太復雜的、需求相對比較明確的中小型系統。目前該已經比較少用。
- 面向對象方法:是目前運用最為廣泛的一類軟件開發方法。通常使用UML建模工具,比較常用的有用例視圖(Use-Case View)和邏輯視圖(順序圖、狀態圖、泳道圖等),用例視圖可結合場景
- 原型法:隨著以互聯網產品用戶思維的興起,越來越多的需求分析采用原型法,使用Axure等工具進行設計。
(三)制定規格說明和評審
許多時候,制定規格說明在需求分析完成時也同步完成,這里推薦使用Volere需求說明模板。
需求評審是項目正式開發前的必經之路,通過需求評審,項目組成員針自將要開展的工作,進行檢查并提出問題,并最終做出評審邊界,形成項目開發的基線版本。
三、其他常見問題
(一)需求引導
許多客戶有時并不知道自己想要什么?有時并不清楚自己缺少什么?所以就需要我們去引導客戶的需求。造成這種現象的原因很多,主要體現在用戶對軟件信息系統并不是很了解,客戶的語言表達,客戶只關心自身的問題等。
引導客戶需求通常從引導客戶分析、向客戶確認需求細節和回絕客戶提出的不合理需求等幾個維度出發,幾種常見方法如下:
- 向客戶講述基本的軟件信息系統
- 提示客戶在全局的地位及作用
- 向客戶演示將要實施的系統的原型
- 從軟件開發中需求考慮的幾個方面入手
總而言之,在瀑布模型項目中,需求分析的質量直接決定了整個項目的完成質量。需求人員需要盡早的將項目需求和客戶及內部開發團隊達成一致,并做到對問題早發現,早解決;另一方面,有時候客戶的“需求”不一定是功能需求,需求人員只有從項目經理的維度分析問題,才能夠篩選并最終推進項目的實施。
#專欄作家#
蘭色拉面(微信:lanselamian),人人都是產品經理專欄作家。關注城市服務、互聯網+和智能硬件,對市民融合服務、移動進銷存、物聯網和支付 POS有一定的淺見。歡迎互聯網愛好者們一起交流探討。
本文原創發布于人人都是產品經理,未經許可,不得轉載。
需求的生命周期是否可以包含一個“驗證”的階段呢?在需求評審通過并實現后,對這個需求的帶來的影響和變化進行評估。
都在研究道,道法自然~!