用議論文三要素,搞定需求分析(下)
上篇文章講到需求分析的論點——用類圖去可視化地描述系統有什么,并介紹了畫類圖的方法。此篇文章為需求分析的最后一篇文章,說明需求分析的“論證”——如何厘清業務流程。
業務流程是什么?
系統的核心價值之一是順利推進業務,提高效率,尤其對于B端的產品,而業務則是由一個個的業務流程組成。
那什么是業務流程?
業務流程是為達到特定的價值目標而由不同的人分別共同完成的一系列活動。流程是由每個人的活動組成的,每個活動又會有相應的執行步驟。
另外,從不同的角度來看,有不同的流程;流程會有大小之分;流程之中可能會有子流程等,諸如此類。
流程問題可能很復雜,我們需要系統化地分析好這些流程,清晰地描述事情在某段事件內是如何發展的,這些發展最后會達到怎樣的效果。
表達完后,視情況對現有流程進行分析,設計出優化的業務流程,提高效率。
描述業務流程大家可能第一時間會想到用流程圖,但流程圖有許多局限的地方,例如不能表示同時進行的動作,只能有一個結束點等。所以,推薦使用活動圖來描述業務流程,一種UML(Unified Modeling Language)模型。
業務流程的層次
在介紹活動圖之前,首先需要明白,活動圖是在與業務人員溝通需求時得來的,同時借助活動圖,來驗證業務流程是否正確。所以,需要根據業務人員的類型,畫出對應層次的活動圖。
業務流程天然可以分成三層:最宏觀的是組織級流程,畫的是部門、角色間的協作關系,供高層領導閱讀;第二層是部門級流程,畫的是崗位間協作關系,供中層領導閱讀;第三層則是個人流程,畫的是一個崗位的工作步驟,應該到業務場景分析時再細化。
活動圖的畫法
還是以餐廳管理系統為背景,來介紹一下怎么畫活動圖,如下就是一個基于宏觀層面的顧客點外賣的活動圖。
活動圖的主要元素
1)開始點和結束點
開始點用一個實心圈表示,結束點用一個圓圈內加一個圓圈來表示?;顒訄D只能有一個起點,但可以有多個終點的。
2)活動
當一個流程中有了分工時,必然會將一個業務事件拆成一系列更小的、相對獨立的工作人物,這就是“活動”?;顒佑脠A角矩形表示,例如圖中的“顧客提交訂單”“顧客選擇支付方式“就是活動?;顒涌纱罂尚?,具體的粒度視流程圖層次。
3)判斷
菱形代表分支判斷,表示從這里開始將根據條件選擇其中一條分支繼續下一個活動。
4)匯合與交叉
匯合與分叉必須組合使用,表示并發動作。分叉表示一個活動完成后產生后續的多個并行的活動;匯合表示多個活動全部完成后再進行下一個活動。
此外,你可以發現以上流程存在并行關系,當顧客提交訂單后,會生成該訂單給商家,同時顧客需要支付,這是一個并行關系。還存在順序關系、異步關系等多種可能,這就是邏輯關系,在流程圖中就是各個活動之間的連線。
如上便是正常的流程,但還需要考慮異常流程,比如顧客取消訂單,或者訂單超時導致的支付失敗,完善一下。如果想讓活動圖清晰地表示對應的角色所負責的事情,便可以加入泳道,整理得出如下圖:
總結一下,畫活動圖的基本步驟為:
- 選擇合適的層次:根據讀者的角色、流程類型選擇合適的層次來描述流程分析的結果;
- 勾勒流程主體:厘清業務流程中的角色、活動、邏輯關系;
- 補充異常流程。
畫完活動圖之后,也可以用文字補充說明一下活動圖的細節,輸出業務流程描述,如圖所示:
小結
活動圖說明事情在某段事件內是如何發展的,這些發展最后會達到怎樣的效果。
你有沒有發現,這與我們在該系列的第一篇文章中的用例場景十分相似。確實,活動圖就是來描述用例場景的,也就是通常所說的業務流程。
另外,在分析流程圖中,有助于發現關鍵的類(上述例子中的訂單),這又輔助《用議論文三要素搞定需分析(中)》所講的類圖。
所以,活動圖這個“論證”,正好起到了證明類圖(論據)是否正確支持了用例(論點)的作用。
最后,引用徐鋒老師的一句話來做總結:
需求分析的過程就像在為一個大象畫寫真,如果你把眼睛放在離大象10厘米的地方,那么想要畫完整是不可能的。因此,你需要先退到幾米甚至是幾十米的地方,把整個輪廓畫下來;然后走近一點,將不同的組織部分分解開,最后將細節畫出來。
如果放到需求中來,就是需要先厘清宏觀部分(確認業務目標),再針對每個業務目標進行分解,細化成用例,建立業務模型。然后,描述系統的結構性特征(畫類圖),結構決定了這個系統能做什么。另一方面,我們需要描述業務流程(制作活動圖),這些流程決定了系統怎么做。
經過以上三個步驟,才能把需求分析清楚。
最后的最后,不要忘記需求分析的核心問題以及目的——弄清楚客戶到底想要什么的問題,設計解決方案為客戶帶來價值。
#相關閱讀#
本文由 @澤 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
- 目前還沒評論,等你發揮!