如何進行有效的需求分析?作者從議論文三要素出發,對需求分析進行了分析與探讨,與大家分享。
軟件開發流程大概分為需求階段、設計階段、編碼階段、測試階段、運維階段這五大階段。
某項研究分析了63個軟件開發項目,對于需求錯誤在軟件開發項目的不同階段,發現并改正所損失的成本進行了研究與評定,得到了如下表格:
由圖表可以發現,越在後面的階段,因為需求錯誤而帶來的損失成本也就越大,而在需求階段發現并改正的損失成本是最低的。這是因為越到後面投入的人力資源與時間越多,如果在初期能準确分析好需求,便不會帶來之後的損失,故需求分析在軟件開發中處于關鍵地位。
需求分析三要素那需求分析怎麼做呢?凡是都是有規律可循,需求分析也不例外。說白了,就有點像議論文寫作。來來來,我們看一下百度百科對議論文的定義:
議論文,是一種剖析事物,論述事理,發表意見,提出主張(論點)的文體。作者通過擺事實、講道理、辨是非等方法,來确定其觀點正确,樹立某種主張。議論文應該觀點明确、論據充分、語言精煉、論證合理、有嚴密的邏輯性。
移花接木一下:
需求分析,是一種剖析參與者需求(老闆、用戶、業務人員等等),抽象事物,組織概念,建立業務模型的過程。産品經理通過明目标、理業務、面向對象等方法,來确定需求,建立業務模型。需求分析應當目标明确,用例充分、語言精煉,論證合理,有嚴密的邏輯感。
嗯,有點感覺。
既然議論文有三要素:論點、論據、論證,那需求分析有三要素嗎?
- 論點:提煉抽象後的業務模型
- 論據:即論點的根據,業務模型的根據便是宏觀上業務模型的整體結構,告訴你系統有什麼。
- 論證:即用論據證明論點,從詞性上判斷,這是一個動詞,同樣證明業務模型其實就是強調怎麼把系統整體結構的元素聯系起來,告訴你系統怎麼做。
毫無違和感,有木有。
開始bb!
業務模型模型,即通過主觀意識借助實體或者虛拟表現構成客觀闡述形态結構的一種表達目的的物件(物件并不等于物體,不局限于實體與虛拟、不限于平面與立體)。
相似地,建立業務模型的目的就是為了表示業務需求并獲得對業務需求的理解,然後對業務需求進行便于理解的表達。這是能證明你是否正确且完全理解業務需求的工具,也是你與開發人員表達說明業務需求的利器,切記不能讓你的理解停留在腦海裡!
業務目标我們先來思考這麼一個問題:某餐廳老闆想要為其餐廳設計一個餐廳管理系統。面對老闆如此抽象的需求,你會如何去分析呢?
大部分的思路往往是先梳理大緻的業務流程圖,然後針對每一個步驟,進行用戶訪談,詢問業務中的細節。
可你有沒發現,如果一這麼做,就會陷入細節的泥坑。技術的細節、咦這個能不能實現;交互的細節,咦這樣交互肯定不行的;UI的細節,咦這裡設計成下拉框?這樣的結果便是,自己的思路越來越淩亂,最終往往就是靠直覺做決定了!直覺可不給你背鍋啊!
解決問題有這麼一個方法:在面對問題的時候首先不要決定去通盤考慮,而是找出問題領域裡包含的抽象角度。如果把抽象角度都找全了,并且這些角度都分析清楚了,問題也就解決了。
抽象角度的理解就好比:當問你刀與叉的區别是什麼的時候,感覺自己無從回答。而問你刀與叉在使用上的區别是什麼,便豁然開朗,一個是切,一個是叉。這裡的使用角度就是一個抽象角度。
需求分析也是一樣的,具體來說,做需求的時候,首要目的不是弄清楚業務是如何一步一步完成的,業務包含了哪些細節,而是要弄清楚有多少業務的參與者?每個參與者的目标是什麼?參與者的目标就是你的抽象角度。
(這裡便用到了面向對象分析方法,面向對象的好處便是可以集中注意力在要分析的對象上,排除其他因素的幹擾。這也就是為什麼程序員拿到需求之後,不是直接碼代碼,而是先建表,厘清一個個實體對象與它們之間的關系,就是這個道理。)
回過頭來,首先找出系統的所有參與者,然後進行初步的用戶訪談,明确業務目标,大緻可以分為:
- 顧客:提供用餐自動化服務,提高點餐效率,方便顧客。
- 服務員:提供管理訂單服務,記錄每桌的點的菜品,檢查每個訂單的上菜、收費情況等。
- 店長:提供财務管理服務,記錄每日的收銀。
- ……
這裡我們用數學簡單的公式提煉一下,可得到這樣一個公式:需求分析=∑(1到無窮)業務目标,意思便是:要全面地分析需求需要找到所有的業務目标(抽象角度)。
用例所謂的用例便是,參與者帶着目的去做一件件事情,這些事情都圍繞着目标,而這些事情可以有很多不同的方法或是遇到各種各樣的意外情況,因此這件事情是由很多不同情況的集合構成的。
這些不同情況便是場景。如圖便是用例的構成:(小技巧:用例必須滿足動賓結構)
就拿第一個業務目标:為顧客提供用餐自動化服務,提高點餐效率,方便顧客,這一業務目标來說,可以定義的邊界為“顧客用餐服務”。從名字就可以明确業務目标是為顧客用餐服務的。
邊界決定了系統首要的問題是解決顧客的期望,也就是說,系統首先要滿足顧客的需求。用餐方式分為堂食和外賣,其用例便有點餐、下單、買單。如圖所示:
這裡又可以得到一個公式:業務目标=∑(1到無窮)用例
場景那如何思考全場景呢?換句話說,我們需要思考全場景的抽象角度。場景的構成要素:時間,地點、人物、行為可以幫助我們分析。
- 時間:餐廳營業時下單,餐廳休息時下單
- 地點:堂食,外面吃(外賣)
- 人物:單人點,多人點
- 行為:添加菜品、删除菜品、修改菜品、查詢菜品(增删改查)
以此類推,得到所有滿足用例的場景。上公式:用例=∑(1到無窮)場景
小結這一篇講解了需求分析的論點——業務模型,以及業務模型的建模思路,取其精華,可以用如下圖所示的公式來表示如何建業務模型。下一篇将着重講講需求分析三要素的論據與論證。
本文由 @澤 原創發布于人人都是産品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!