手把手教你畫活動圖,再無難搞的流程分析

2 評論 32062 瀏覽 80 收藏 15 分鐘

編輯導語:在工作中,每當遇到復雜多變的業務,流程冗長時,可以借助活動圖來分解流程。作者從四個方面分析如何畫活動圖,搞定流程分析。

上次介紹了《用例圖這樣畫,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協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 寫的很詳細學到了很多,請教一下,如果有多個起點一個終點只能分開畫嗎,比如可以通過列表選擇人員后修改人員狀態,也可以通過搜索后選擇人員修改人員狀態

    回復
    1. 一個明確的目標,服務請求只有一個,所以起點只有一個。你舉的例子,都是選擇人員修改狀態,用什么方式選擇,只是兩個實現方式而已,從更大的粒度來說,都叫選擇人員,實現方式可以在單獨補充說明,不然圖會太細。另外,不可能一上來就直接可以選擇人員,也就說要做這個動作之前,應該還有真正的服務請求動作。

      來自廣東 回復