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