手把手教你畫活動圖,再無難搞的流程分析
編輯導語:在工作中,每當遇到復雜多變的業務,流程冗長時,可以借助活動圖來分解流程。作者從四個方面分析如何畫活動圖,搞定流程分析。
上次介紹了《用例圖這樣畫,3步讓你做需求分析有理有據》,這次聊聊活動圖。
也許你對活動圖并不了解,不過,說起流程圖,想必你不會陌生。你可以暫且把活動圖,看成 UML 中的流程圖。
都知道,做產品要分析流程,可怎么把流程理清楚呢?當然不能憑空想象,而應該借助分析工具。
每當遇到復雜多變的業務,面對冗長的流程,我總會拿出需求分析工具箱,從中挑選合適的工具。用得最多的,非活動圖莫屬。
一、認識活動圖
之前在《做產品為什么要畫這些圖?》談到, UML 將視圖分為靜態視圖和動態視圖。
靜態視圖,描述產品的結構特征,即產品由什么組成的、能做什么、長什么樣。例如,手機由屏幕、外殼、攝像頭、電池、芯片等組成,能用來打電話、上網。
動態視圖,描述產品的行為特征,即產品是怎樣運行,或如何使用。例如,我們要解鎖打開手機,得做輸入密碼,或識別指紋、人臉等操作。
活動圖,是常用的動態視圖之一,用來描述產品中具體對象,在具體場景下,如何使用產品,或參與實現目標的過程。
所謂對象,是指與產品相關的人或事物,如用戶、運營人員、APP、后臺系統等。
換句話說,活動圖描述的是,誰在什么情況下,如何做特定的事情。
畫活動圖是為了分析流程,借助可視化的工具,描繪現實世界中具體事情的運轉過程(常說的業務分析),輸出既方便人們理解,又便于計算機開發實現的內容。
同樣用于流程分析,流程圖與活動圖有啥區別呢?
流程圖歷史更悠久,使用范圍更廣,業務人員容易理解。
不過,或許是年代久遠,而且畫圖元素較多,它的畫圖規范,要么被忽視,要么說法不一,想畫出一個標準的流程圖,也不容易。
在工作中,經常發現有人畫流程圖,容易出現把狀態當成動作、操作對象不明確等問題。
以請假審批流程為例,看看這兩種情況,你是否見過。
△ 請假審批流程圖的常見問題
活動圖的元素不多、規范明確,在 UML 的官方文檔中有清晰的定義,方便學習。
比方說,它貼心規定活動名需用動賓短語,避免了上述流程圖的常見問題。同時,活動圖有同步的畫法,能很好地體現并行流程。
因此,我最常用活動圖來描述流程,一起看看它的用法吧。
二、活動圖的構成
活動圖由起始點、活動、判斷、泳道、執行順序、同步、結束點構成。
△ 活動圖常用元素
1. 起始與結束,有頭有尾才完整
一個活動圖開始,會先畫一個起始點,用實心圓表示。流程結束處,再畫上結束點,用同心圓表示。
這樣的活動圖更為完整,有頭有尾,閱讀者一看便知從哪開始,在哪結束。
需注意的是,起始點只有一個,結束點可能有多個。
如有多個結束點,我習慣盡量把線連接到同一個結束點,讓整個過程看起來像一個閉環,簡潔一些。
2. 活動,用圓角矩形表示
每個活動,即具體對象做的操作,用圓角矩形表示,里面寫上活動名稱,活動名用動賓短語描述。
如輸入手機號碼、點擊支付按鈕等,為?動詞+名詞?的動賓組合。
假如一個活動圖中有多個執行對象,又沒用泳道區分,則需要寫清楚是哪個對象做了什么動作,以便閱讀理解。
如用戶輸入手機號碼、運營人員點擊退款等,為?主語+動詞+名詞?的主謂賓組合。
還有個細節常被忽視,即圓角矩形的兩邊是半圓,與流程圖、狀態圖的畫法不同。
△ 活動圖與流程圖、狀態圖的區別
3. 判斷,用菱形表示
活動的執行過程中,遇到需要判斷的地方,則用菱形來表示,這也是流程產生分支的地方。
關于判斷的內容(如審批是否通過、支付是否成功等),有的寫在菱形內,有的寫在菱形外,有的干脆沒寫。
個人覺得不必拘泥于形式,有寫判斷內容,會更清楚;如字數少,菱形內能寫,會更簡潔;如寫不下,則寫在菱形外。
總之,做到統一即可。如一處寫在菱形外,則全部寫在外面;別有的寫在里面,有的寫在外面。
4. 泳道,用矩形劃分區域
活動圖中如有多個不同對象執行的動作,一般會增加泳道來描述各個對象的執行過程。
泳道用矩形來劃分區域,矩形上方寫明對象名稱。
泳道,顧名思義,跟游泳比賽的運動員只能在其泳道中游泳一樣,規定每個對象的動作只能畫在其對應區域。
泳道活動圖,即增加了泳道的活動圖,用來梳理、描述有多個對象參與的流程,對象可以是人或部門,也可以是系統。
它可以很好地體現流程中不同參與對象所做的動作和順序。
5. 執行順序,帶箭頭連線
執行順序,與流程圖一樣,用帶箭頭的連線,將不同活動按順序連接起來。
6. 同步,用小黑棒表示
同步,用一條小黑棒來表示,可以擺豎,也可以擺橫。這是活動圖的特色,使之能描述并行流程。
不管業務流程,還是系統流程,偶爾會碰到同時觸發動作,或要等全部執行完才開始下一步的情況,同步這一方法,能很好地描述這些流程。
三、活動圖怎么畫
如果你畫過流程圖,畫活動圖很容易上手。
下面以之前的手機話費充值 APP 為例(此案例詳見《用例圖這樣畫,3步讓你做需求分析有理有據》),來介紹我總結的方法。
1. 明確目標,找對象,識操作
之前談到,用例圖是參與者為完成特定目標的一系列活動或功能集合。說白了是,什么人做什么事。
活動圖,正是描述用例實現過程的這些活動,即什么人如何完成這些事。
因此,畫活動圖,得從用例圖開始,根據每一個用例來展開。
如果你沒有畫用例圖,也沒關系,但要圍繞特定目標來展開,也就是分析的流程,是誰為了完成什么目標。
如果可以,最好拉上與分析主題相關的人,邊確認邊梳理;如若不能,可先找他們調研,再繪制。
你可以找一塊白板,或一張白紙,或打開畫圖軟件(如 Visio ),把參與流程的人或系統寫出來。
在腦海里,一步步推演,把他們每一步操作記下來,每一步就是一個活動,活動名是動賓短語。
首先,找出提出服務請求的活動,即活動圖的起點。接著,再找出服務被滿足、目標被完成時的活動,即結束動作。然后,逐步完善中間的活動。
以案例中的微信手機充值業務為例,我是從用戶的視角,圍繞用戶實現話費充值的目標來展開,記下用戶所執行的操作。
△ 用戶視角下的微信手機充值活動圖
以充值 APP 為例,之前分析得出,充值得有運營商支持,支付對接微信支付、支付寶,協助用戶處理未到賬,還需有運營人員介入;整個充值 APP ,還應包括后臺管理系統。
以“充值話費”用例,就有用戶、充值 APP 、管理后臺、手機運營商這幾個對象參與了實現充值的過程。
找到參與對象后,就能把這些對象執行的操作列出來。
△ 充值 APP 系統用例圖
2. 勾勒脈絡,先主干,后分支
相信不少人畫流程,都遇過越畫越亂、分支越多的情況,這是沒按上述所說,圍繞用例或為特定目標來展開。
一個活動圖,建議只有一個目標,如果有多個目標,建議拆分成多個圖,這樣每個圖才不至于太復雜,自己不會畫暈,別人不會看懵。
此外,重點還要,先勾勒出主脈絡,先把主干流程理出來,再逐步完善分支流程。
梳理主干時,要避免陷入細節,等把核心操作找出來,再補充相關細節。
如有的分支比較復雜,或相對獨立,可再拆分成子流程單獨畫,而在主流程中,只寫進入某某流程即可。
常見的分支,一般有審核、異常情況,多是遇到需要判斷之后產生的。
畫圖時,一般遵循從上往下、從左往右的順序。
△ 充值 APP “充值話費”用例活動圖主干
3. 調整布局,邊推演,邊檢查
主干分支都完成了,還得根據版面,調整優化活動或泳道的擺放位置,讓圖更容易閱讀。
請注意,盡量確保連線不要交叉。
連線一旦交叉,整個圖會變復雜,執行順序容易看錯,閱讀體驗很不好。
我一般習慣每個活動占用一行,效果簡潔一些。如果活動較多、版面有限,可以適當調整。
但盡量保持從上往下、從左往右的順序,活動之間居中或水平對齊,連線不要交叉。
△ 充值 APP “充值話費”用例泳道活動圖
繪圖的過程,要在自己腦海里邊畫圖、邊推演,相當于把流程操作過一遍。
之后,再換換視角,退后幾步,放大視野,全局去檢查整個流程。
這有點像寫文章,寫完要自己通讀幾遍。
推演和全局檢查,往往能幫我們發現流程是否合理、是否順暢、是否有遺漏等問題。
最后,還要把畫完的活動圖,拿去找相關人員(如業務、運營、銷售、開發等)溝通,確認流程表達無誤、雙方理解一致。
四、劃劃重點
活動圖的畫法,相對簡單,很多人畫過流程圖,用起來并不難。
啰嗦這么多,是想讓你知道其常用元素的意思,掌握畫圖的思路,明白畫圖的本質。
我們通過一個個活動,把流程梳理并描述出來的過程。
實際上,是在將腦海里原本模糊、雜亂在的思路理清,使之變得更加清晰、有序。
同時,我們把各自對流程的理解,落實到紙上、屏幕上。
相當于把腦中的想法,變成實實在在的圖片,這才有了溝通、討論的內容基礎,更容易達成共識,甚至發現問題、優化流程。
最后,我再給你劃劃重點:
1. 畫活動圖的方法
- 明確目標,找對象,識操作
- 勾勒脈絡,先主干,后分支
- 調整布局,邊推演,邊檢查
2. 畫活動圖請遵循
- 從上往下、從左往右的順序
- 活動之間盡量對齊
- 活動連線不要交叉
總而言之,我們用活動圖,是為了幫助我們分析好流程。請靈活使用工具,別被工具使用。
作者:四月;公眾號:四月喃嘩
本文由 @四月 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
寫的很詳細學到了很多,請教一下,如果有多個起點一個終點只能分開畫嗎,比如可以通過列表選擇人員后修改人員狀態,也可以通過搜索后選擇人員修改人員狀態
一個明確的目標,服務請求只有一個,所以起點只有一個。你舉的例子,都是選擇人員修改狀態,用什么方式選擇,只是兩個實現方式而已,從更大的粒度來說,都叫選擇人員,實現方式可以在單獨補充說明,不然圖會太細。另外,不可能一上來就直接可以選擇人員,也就說要做這個動作之前,應該還有真正的服務請求動作。