你可能學(xué)了假流程圖,三步教會你繪制大廠流程圖(第一篇)
編輯導(dǎo)語:流程圖有沒有限定的標(biāo)準(zhǔn)?正確規(guī)則的流程圖有什么規(guī)范?本文將從三個(gè)方面來作出解答:流程圖的意義、流程圖如何繪制、常見的流程圖問題。學(xué)會并掌握這三個(gè)要點(diǎn),定會助你提升流程圖繪制能力,在日后的工作中更快成長。
作為一個(gè)產(chǎn)品經(jīng)理,畫流程圖是必備的技能。如制定訂單處理的流程,制定商品審核的流程,制定用戶開銀行賬戶的流程等。
也有非常多的文章在介紹如何畫流程圖。我們發(fā)現(xiàn)有各種畫法,也有各種概念。這里產(chǎn)生一個(gè)問題:到底什么樣的流程圖是正確的?有沒有標(biāo)準(zhǔn)?
無標(biāo)準(zhǔn)野路子的流程圖必然會產(chǎn)生歧義,必然是思路混亂的。比如以下兩個(gè)流程圖就都是有問題的,并導(dǎo)致表達(dá)混亂。
有問題的流程圖
有問題的流程圖
其實(shí)流程圖是有標(biāo)準(zhǔn)的,這就是UML(統(tǒng)一建模語言)制定的標(biāo)準(zhǔn),被其稱為活動圖。并且這個(gè)標(biāo)準(zhǔn)被微軟和IBM等大廠采用。我們通過本文就能夠知道,上面兩個(gè)流程圖的問題了。
既然了解到很多流程圖是有問題的,所以要畫好也不是那么容易。所以我也會分三篇文章來介紹UML的流程圖怎么畫,分別是:
- 如何制作正確規(guī)則的流程圖?
- 如何制作人人喜歡的流程圖?
- 流程圖的概念解析
其中第一篇會讓大家理解流程圖的正確姿勢和語言。第二篇會手把手教讓大家繪制粗細(xì)得當(dāng),人人喜歡的流程圖。第三篇是概念解釋,破除業(yè)務(wù)流程圖,任務(wù)流程圖和功能流程圖的誤區(qū)。
要先學(xué)流程圖的規(guī)則是什么,這就好比下象棋。我們首先要理解下棋的規(guī)則是什么,然后再學(xué)習(xí)如何去贏得比賽的策略。如果反過來,這就好比知道怎么下棋,卻不了解基本規(guī)則一樣。規(guī)則枯燥但還是要先來學(xué)習(xí)的。
本篇文章包括:流程圖的意義、流程圖如何繪制、常見的流程圖問題。
一、流程圖的意義
對于產(chǎn)品經(jīng)理要重視流程圖的繪制,這背后是邏輯清晰的表達(dá)和思考。
首先,很多產(chǎn)品經(jīng)理往往一上手做交互頁面原型。但這樣往往因?yàn)榱鞒滔氩磺宄?,?dǎo)致原型圖需要重畫。所以要先畫流程圖,再畫原型圖。
其次,研發(fā)經(jīng)常批評產(chǎn)品經(jīng)理沒有邏輯。而畫流程圖就是建立你的邏輯的一種方法,也最終用在面試表達(dá),產(chǎn)品評審發(fā)言中,下面我們就看看如何畫。
二、流程圖如何畫?
流程圖是為了完成某一任務(wù)而描述的相關(guān)活動的執(zhí)行順序。UML稱流程圖為活動圖,為了便于討論,后面還稱其為流程圖。
下面我們以訂單為例子,帶領(lǐng)大家一步一步畫出流程圖。整個(gè)流程涉及到從用戶下單到收貨的流程。下面就是這個(gè)訂單流程:
其邏輯是用戶下單后,物流人員就需要送貨到家,用戶收貨后,在點(diǎn)擊確認(rèn)收貨,即完成整個(gè)訂單。這里就涉及到以下概念:
1. 活動的概念
這里物流人員送貨到家和用戶確認(rèn)收貨,都體現(xiàn)了一個(gè)人做了什么事情,都會涵蓋“主語+謂語+賓語”。“用戶”是主語,“點(diǎn)擊”是謂語,“確認(rèn)收貨”是賓語。
而人做了什么事情,就體現(xiàn)了一個(gè)“動作或操作”,而UML則稱其為活動。其實(shí)和動作或操作是近似的意思,但活動的概括更為廣泛。
活動的標(biāo)準(zhǔn)畫法是帶圓角的矩形框,里面寫具體的活動,活動內(nèi)容寫成“主語+謂語+賓語”,賓語或主語根據(jù)說話習(xí)慣可以考慮省略。
活動之間用帶箭頭的線連接在一起,稱其為“轉(zhuǎn)移”。表示做完了一個(gè)活動就可以轉(zhuǎn)移到下一個(gè)活動,比如物流人員送貨到家后,用戶才會確認(rèn)訂單完成,否則就無法進(jìn)入下一個(gè)活動。
2. 起點(diǎn)和終點(diǎn)概念
一個(gè)流程圖有一個(gè)“起點(diǎn)”,作用是表明一個(gè)流程從這里開始。起點(diǎn)畫是個(gè)實(shí)心小圓。
一個(gè)流程圖也有“終點(diǎn)”,作用是表明上一步的“活動”就是整個(gè)流程的結(jié)束。對于上面的訂單流程而言結(jié)束的活動就是“用戶確認(rèn)收貨”。這個(gè)活動完成后,整個(gè)流程就算完成了。終點(diǎn)畫法則是一個(gè)實(shí)心圓加一個(gè)空心圓。
注意:起點(diǎn)必須有,而終點(diǎn)可以省略不畫或有多個(gè)。終點(diǎn)畫上的好處是可讓別人知道你考慮了終點(diǎn)因素。但有的流程涉及到的終點(diǎn)過多,并且結(jié)束顯而易見,畫上就顯得累贅。
3. 判斷和并行概念
現(xiàn)在我們已經(jīng)能夠畫出了流程圖。但我們發(fā)現(xiàn)這個(gè)流程會有很多細(xì)節(jié)需要補(bǔ)充,這就是我們接下來要介紹的判斷和并行概念。我們以問題為出發(fā)點(diǎn),看如何完善流程圖。
“網(wǎng)上支付或貨到付款”有不同的處理則怎么表達(dá)?——用判斷標(biāo)志來解決。
此時(shí)物流人員就需要對訂單進(jìn)行判斷,如果是網(wǎng)上支付(送貨前支付)則直接給貨物到用戶,否則必須先讓用戶支付現(xiàn)金或先刷POS機(jī)后,再給貨物,此時(shí)流程圖如下:
這個(gè)判斷點(diǎn)就用菱形符號來表示,此時(shí)是一個(gè)進(jìn)入多個(gè)出,并且在出的線條上用方括號表明判斷條件。這里的:
條件一是“如果用戶是網(wǎng)上支付”(簡稱:網(wǎng)上支付),則相應(yīng)的動作是“物流給貨物到用戶”;
條件二是“如果用戶是貨到付現(xiàn)金”(簡稱:現(xiàn)金支付),則相應(yīng)的動作是“物流收取現(xiàn)金”。
條件三是“如果用戶選擇POS支付”,則“物流用POS機(jī)收錢”。
注意:和其他流程圖的菱形符號中間寫字不同,這里不允許在菱形符號中間寫任何字,但表達(dá)的意思是一樣的。菱形位置里面其實(shí)是可以寫“物流確認(rèn)支付情況”,寫文字易于理解但是略顯累贅。
再如電商中如果用戶支付完畢,有的時(shí)候會反悔并告知商家。對于商家也會存在兩種選擇,“同意則取消訂單”或“拒絕則堅(jiān)持發(fā)貨”。這兩種表達(dá)方式都可以達(dá)到同樣的效果,只是方法不同。
了解了和傳統(tǒng)流程圖的不同表示方法后,對于UML體系,除了上面介紹的用帶菱形的表示方法外,另外一個(gè)方式是不加入菱形判斷圖標(biāo),如下圖所示:
這兩種表達(dá)方法都是可以的,但需要注意要在轉(zhuǎn)移線上寫出判斷條件。對于本案例加入判斷的菱形圖標(biāo)會更加清晰,此時(shí)明確物流人員在這里要進(jìn)行一個(gè)判斷。
如果用戶還要同時(shí)開發(fā)票則怎么表達(dá)?——用并行標(biāo)志來解決。
現(xiàn)在很多的送貨是貨物和發(fā)票放在了一起一并寄送過去,或者支持電子發(fā)票的方式。但是還有一些企業(yè)開紙質(zhì)發(fā)票,并且貨物和開發(fā)票地并不一致。這個(gè)時(shí)候就需要貨物和發(fā)票分別寄送到用戶手里。
此時(shí)意味著兩撥物流人員一個(gè)在送貨和一個(gè)在寄送發(fā)票。這里就是一個(gè)并行處理,表達(dá)方式如圖所示:
畫法是畫一個(gè)粗橫線,再加上一個(gè)進(jìn)入和多個(gè)出的轉(zhuǎn)移線條。對于本例子,出的兩個(gè)分支流程是配送貨物和發(fā)票寄送,此時(shí)同步處理但并不在意誰先做誰后做。
4. 匯合和合并概念
網(wǎng)上支付和現(xiàn)金支付任意一個(gè)完成就算完成如何表達(dá)?——用合并來解決。
此時(shí)只要是網(wǎng)上支付或現(xiàn)金支付任意一個(gè)方式就算完成了支付。即條條大路通羅馬,我們只要一個(gè)路徑能到達(dá),就可以進(jìn)行下一步了,此時(shí)有兩種表達(dá)方法:
一種方法直接通過三條轉(zhuǎn)移線連接到下面的活動即可,這個(gè)也是我們在前面看到的。第二種方法是畫一個(gè)菱形并且多進(jìn)一出。注意這個(gè)菱形符號在這里不是表示要判斷,只是借用了菱形符號而已,因此也不必在線條旁邊加入判斷條件。
實(shí)際上第二種畫法是UML的標(biāo)準(zhǔn)畫法。但畢竟看流程圖的人有的不是編程人員,畫上會讓人誤解,為了便于溝通可以選擇第一種畫法。但是在看到網(wǎng)上的流程圖加入合并的菱形標(biāo)志的時(shí)候,要意識到這里不是進(jìn)行判斷,而是在做合并。
這里另一個(gè)例子就是用戶可點(diǎn)擊確認(rèn)收貨,而系統(tǒng)也可以自動確認(rèn)收貨,也是那個(gè)先確認(rèn)收貨都算收貨,訂單即最后完成。
發(fā)票和商品用戶都收到才算完成如何表達(dá)?——用匯合來解決。
前面我們講了貨物和發(fā)票是分別寄出的,對于用戶必須是發(fā)票和貨物同時(shí)收到了才會點(diǎn)擊“確認(rèn)收貨”,兩者缺一不可。具體表示見下圖:
達(dá)方式是一個(gè)粗橫線,再加上多個(gè)進(jìn)入和一個(gè)出。進(jìn)入的分支是送貨物和送發(fā)票,此時(shí)同步處理但并不在意誰先做誰后做,但匯合的時(shí)候必須要都完成才可進(jìn)入到下一步。
另一個(gè)例子就是吃飯上菜的例子。我們到餐廳菜是分別上的,只有都上完了才算完成了。而在野路子的流程圖中,是沒有辦法表達(dá)這個(gè)并行匯合處理的。
通常并行和匯合成對出現(xiàn),此時(shí)并行執(zhí)行兩組活動,但必須兩組活動都完成才能進(jìn)入下一環(huán)節(jié)。而上圖也就是一個(gè)完整的流程圖了。
5. 流程圖的總結(jié)
流程圖表示方法總結(jié)如下:
三、通過問題學(xué)概念
流程圖的繪制方法看完了之后,我們再來看文章最前面的流程圖的問題是什么?
案例一:流程圖中不應(yīng)有非活動的內(nèi)容
上面的流程圖是說產(chǎn)品經(jīng)理的工作包括需求收集,需求討論和需求評審等工作,并為此畫了流程圖進(jìn)行闡述。思考一下,這個(gè)流程圖的問題是什么?
我們按照流程圖的概念來看,流程圖要求每個(gè)框起來的都是一個(gè)活動,活動的典型即存在“主+謂+賓”。
在這里面“有效需求、已有功能和需求池”都不是一個(gè)活動,這里都是在說需求的不同類型和功能概念。真正體現(xiàn)活動的是產(chǎn)品經(jīng)理進(jìn)行“收集需求,討論需求和需求評審”。
而這里大家會說,我要體現(xiàn)“有效需求和需求池”等概念該怎么做?
那么可以這樣描述:我們可以將需求劃分為新需求+老需求,其中新需求產(chǎn)品經(jīng)理需要過濾成有效需求和無效需求。而進(jìn)入需求評審環(huán)節(jié)的是新需求的有效需求和老需求并放入需求池中,在這個(gè)環(huán)節(jié)我們決定本期開發(fā)的需求是那些。
上面這種描述,如果你理解了UML的面向?qū)ο蟮乃伎挤椒?,就知道這是另一種形式的描述。另外其實(shí)知識是相通的,如果按照金字塔原理進(jìn)行思考,也能得出上面的描述內(nèi)容。
通過這個(gè)案例,我們發(fā)現(xiàn)將需求處理的方案和需求評審流程的描述混在一起,會讓受眾群體迷惑,而如果分開描述則會清晰很多。
案例二:流程圖不同于狀態(tài)圖
這是一個(gè)買家下單和付款的流程。這里仍然按照“主謂賓”來拆分,我們發(fā)現(xiàn)待付款不是一個(gè)活動,而是一個(gè)狀態(tài)。而橫線上的“買家下單”才是個(gè)活動(即用戶點(diǎn)擊下單)。
因此這個(gè)仍然不是流程圖,在UML里更適合用狀態(tài)圖來表達(dá)。如果此時(shí)按照狀態(tài)圖的角度來看,這里也是有問題的,我們以后會有專題來講狀態(tài)圖。
案例三:流程圖的邏輯需要仔細(xì)思考
這個(gè)流程圖大家看是從用戶下單到供應(yīng)商供貨的流程,我們假設(shè)這個(gè)就是京東或天貓的訂單流程。在這里“生成送貨單,以及用戶選擇支付方式,收款”等環(huán)節(jié)流程表述錯(cuò)誤,大家想想問題是什么?
此時(shí)我們回憶一下我們在購物APP上如何下單的?這個(gè)流程是:
- 用戶從購物車點(diǎn)擊“去結(jié)算”,就會打開“提交訂單頁面”。
- 在“提交訂單頁面”允許用戶選擇網(wǎng)上支付還是貨到付款,以及編輯送貨地址,此時(shí)點(diǎn)擊“提交訂單”按鈕。
- 則系統(tǒng)生成訂單,并展示給用戶“支付頁面”。
- 在“支付頁面” 允許用戶可以選擇某銀行卡或支付寶后,再點(diǎn)擊“銀行卡支付”按鈕。
- 此時(shí)系統(tǒng)展示“輸入網(wǎng)銀(或支付寶)密碼”的頁面。
- 在“輸入密碼頁面” 用戶“輸入賬戶密碼”后就完成了訂單支付。
回憶完整個(gè)流程后,我們會發(fā)現(xiàn)如下問題:
問題一:“用戶選擇支付方式,之后收款,中間可以取消訂單”這個(gè)概括就不正確。
實(shí)際上是“在提交訂單頁面,用戶先點(diǎn)擊提交訂單;之后彈出輸入密碼頁面,用戶輸入密碼完成支付”。此時(shí)在點(diǎn)擊提交訂單后不輸入支付密碼時(shí),用戶可以到個(gè)人訂單列表里面選擇“取消訂單”。因此概括起來是:用戶提交訂單,之后用戶支付訂單,在提交訂單后可以取消訂單。
問題二:生成送貨單和其他活動不是并列關(guān)系。
系統(tǒng)的實(shí)際工作過程是“用戶點(diǎn)擊提交訂單”后,系統(tǒng)就會生成訂單,不生成訂單就沒有支付頁面。這個(gè)生成的訂單也可以在個(gè)人中心的訂單列表里看到,針對待付款的訂單用戶可以進(jìn)行支付或取消訂單。所以生成送貨單和選擇支付方式是不是同時(shí)進(jìn)行的關(guān)系。
通過這個(gè)案例其實(shí)發(fā)現(xiàn)流程訓(xùn)練首先需要仔細(xì)思考每個(gè)環(huán)節(jié)。其次這個(gè)涉及到對流程對每一步如何進(jìn)行抽象的問題,如何畫出人人都喜歡都明白的流程圖的問題。這也是第二篇要重點(diǎn)講的地方。
四、總結(jié)
通過本篇文章,大家了解了標(biāo)準(zhǔn)的流程圖的畫法。
這里首先需要理解活動,判斷、并行、并行匯合和合并等基本概念。其次通過三個(gè)例子,說明如何正確表達(dá)流程圖,而不要學(xué)了假的流程圖。
我們發(fā)現(xiàn)流程圖是一種邏輯表達(dá)方式,還有很多其他的方式需要進(jìn)一步解鎖,會在后續(xù)文章中講解。
這個(gè)文章還是有點(diǎn)小問題,不知道你能否發(fā)現(xiàn),發(fā)現(xiàn)了可以留言。
作者:擎蒼,《“圖解”產(chǎn)品:產(chǎn)品經(jīng)理業(yè)務(wù)設(shè)計(jì)與UML建?!纷髡?,公眾號:圖解產(chǎn)品設(shè)計(jì)
本文由 @擎蒼 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
在AXURE的Flow元件中,找不到并行流程那個(gè) 橫線,是用線段畫對吧?
是的,用線并加粗。可用三根線拼起來,便于連線找到適合的焦點(diǎn)。
請問①A、B匯合后,下一步是C、D并行;②A、B合并后,下一步是C、D并行③A、B匯合后,下一步是C、D兩個(gè)可能活動…..等等如何區(qū)分
相當(dāng)于說一個(gè)短橫線前后皆有兩個(gè)活動,他到底是什么意思,或者說我說的這種情況有什么其他的表達(dá)方式?
請問您用什么軟件作流程圖?
axure,產(chǎn)品經(jīng)理工作中也建議用
邏輯、規(guī)范的UML流程圖真的棒!??!整篇文的大綱也很清晰?。。╞tw,評論說啥 不是科班出身的程序猿就看不懂,我覺得沒有吧,再說了,規(guī)范、有邏輯的流程圖真的才比較方便介紹自己的產(chǎn)品思路吧
現(xiàn)在正在寫更為全面的:流程圖、狀態(tài)圖、類圖和E-R圖,也包括功能和非功能的拆解等。有這方面內(nèi)容需求和建議的,可向我咨詢。
書已經(jīng)發(fā)售了
書名叫什么?
圖解產(chǎn)品
這篇文章一年前畢業(yè)的時(shí)候沒有經(jīng)驗(yàn),看了懵懵懂懂。今日回顧,受益匪淺,感謝感謝~
同意!流程圖本來就是用來溝通的,全都遵循UML規(guī)則。估計(jì)不是科班出身的程序員都看不懂
文中并不是主要講規(guī)范,而是講概念。實(shí)際上流程圖和活動圖之間的樣子區(qū)別非常大的少。規(guī)范不是重點(diǎn),如文中指出的錯(cuò)誤案例,不在于規(guī)范除了問題,而在于表達(dá)流程出現(xiàn)了混亂。并且這些流程圖還是出自閱讀量非常高的文章。
像極了單片機(jī)的一種流程圖
流程圖圓角矩形應(yīng)該放的是活動,不應(yīng)是狀態(tài),學(xué)習(xí)了。
其實(shí)畫成什么樣都可以,這塊就是一點(diǎn)小區(qū)別而已,并不影響理解。
以文中的例子,意思是直接在流程圖里寫那個(gè)“描述”?
那個(gè)“有效需求和需求池”不是活動的問題,如何表達(dá)在流程圖里,看得云里霧里
那個(gè)就不應(yīng)該畫流程圖,需求=有效需求和無效需求,或者需求=在需求池需求+不在需求池需求。本身不是流程。
擎蒼老師,如果判斷框中寫字,那也要包含主語+謂語+賓語嗎?
標(biāo)準(zhǔn)的UML體系里面不寫字,但建議按照主謂賓寫,即物流確認(rèn)用戶支付方式,或?qū)徍巳伺袛鄬徍诵畔?。這樣便于自己理順邏輯,不至于自己亂掉。
標(biāo)準(zhǔn)的UML體系里面不寫字,但建議按照主謂賓寫,
說明:書中已經(jīng)全部改為“按照主動賓”的寫法,這個(gè)表述更準(zhǔn)確,個(gè)人工號與星球【圖解產(chǎn)品設(shè)計(jì)】有更多原創(chuàng)