你可能學了假流程圖,三步教會你繪制大廠流程圖(第一篇)

76 評論 126373 瀏覽 912 收藏 20 分鐘

編輯導語:流程圖有沒有限定的標準?正確規則的流程圖有什么規范?本文將從三個方面來作出解答:流程圖的意義、流程圖如何繪制、常見的流程圖問題。學會并掌握這三個要點,定會助你提升流程圖繪制能力,在日后的工作中更快成長。

作為一個產品經理,畫流程圖是必備的技能。如制定訂單處理的流程,制定商品審核的流程,制定用戶開銀行賬戶的流程等。

也有非常多的文章在介紹如何畫流程圖。我們發現有各種畫法,也有各種概念。這里產生一個問題:到底什么樣的流程圖是正確的?有沒有標準?

無標準野路子的流程圖必然會產生歧義,必然是思路混亂的。比如以下兩個流程圖就都是有問題的,并導致表達混亂。

有問題的流程圖

有問題的流程圖

其實流程圖是有標準的,這就是UML(統一建模語言)制定的標準,被其稱為活動圖。并且這個標準被微軟和IBM等大廠采用。我們通過本文就能夠知道,上面兩個流程圖的問題了。

既然了解到很多流程圖是有問題的,所以要畫好也不是那么容易。所以我也會分三篇文章來介紹UML的流程圖怎么畫,分別是:

  1. 如何制作正確規則的流程圖?
  2. 如何制作人人喜歡的流程圖?
  3. 流程圖的概念解析

其中第一篇會讓大家理解流程圖的正確姿勢和語言。第二篇會手把手教讓大家繪制粗細得當,人人喜歡的流程圖。第三篇是概念解釋,破除業務流程圖,任務流程圖和功能流程圖的誤區。

要先學流程圖的規則是什么,這就好比下象棋。我們首先要理解下棋的規則是什么,然后再學習如何去贏得比賽的策略。如果反過來,這就好比知道怎么下棋,卻不了解基本規則一樣。規則枯燥但還是要先來學習的。

本篇文章包括:流程圖的意義、流程圖如何繪制、常見的流程圖問題。

一、流程圖的意義

對于產品經理要重視流程圖的繪制,這背后是邏輯清晰的表達和思考。

首先,很多產品經理往往一上手做交互頁面原型。但這樣往往因為流程想不清楚,導致原型圖需要重畫。所以要先畫流程圖,再畫原型圖。

其次,研發經常批評產品經理沒有邏輯。而畫流程圖就是建立你的邏輯的一種方法,也最終用在面試表達,產品評審發言中,下面我們就看看如何畫。

二、流程圖如何畫?

流程圖是為了完成某一任務而描述的相關活動的執行順序。UML稱流程圖為活動圖,為了便于討論,后面還稱其為流程圖。

下面我們以訂單為例子,帶領大家一步一步畫出流程圖。整個流程涉及到從用戶下單到收貨的流程。下面就是這個訂單流程:

其邏輯是用戶下單后,物流人員就需要送貨到家,用戶收貨后,在點擊確認收貨,即完成整個訂單。這里就涉及到以下概念:

1. 活動的概念

這里物流人員送貨到家和用戶確認收貨,都體現了一個人做了什么事情,都會涵蓋“主語+謂語+賓語”?!坝脩簟笔侵髡Z,“點擊”是謂語,“確認收貨”是賓語。

而人做了什么事情,就體現了一個“動作或操作”,而UML則稱其為活動。其實和動作或操作是近似的意思,但活動的概括更為廣泛。

活動的標準畫法是帶圓角的矩形框,里面寫具體的活動,活動內容寫成“主語+謂語+賓語”,賓語或主語根據說話習慣可以考慮省略。

活動之間用帶箭頭的線連接在一起,稱其為“轉移”。表示做完了一個活動就可以轉移到下一個活動,比如物流人員送貨到家后,用戶才會確認訂單完成,否則就無法進入下一個活動。

2. 起點和終點概念

一個流程圖有一個“起點”,作用是表明一個流程從這里開始。起點畫是個實心小圓。

一個流程圖也有“終點”,作用是表明上一步的“活動”就是整個流程的結束。對于上面的訂單流程而言結束的活動就是“用戶確認收貨”。這個活動完成后,整個流程就算完成了。終點畫法則是一個實心圓加一個空心圓。

注意:起點必須有,而終點可以省略不畫或有多個。終點畫上的好處是可讓別人知道你考慮了終點因素。但有的流程涉及到的終點過多,并且結束顯而易見,畫上就顯得累贅。

3. 判斷和并行概念

現在我們已經能夠畫出了流程圖。但我們發現這個流程會有很多細節需要補充,這就是我們接下來要介紹的判斷和并行概念。我們以問題為出發點,看如何完善流程圖。

“網上支付或貨到付款”有不同的處理則怎么表達?——用判斷標志來解決。

此時物流人員就需要對訂單進行判斷,如果是網上支付(送貨前支付)則直接給貨物到用戶,否則必須先讓用戶支付現金或先刷POS機后,再給貨物,此時流程圖如下:

這個判斷點就用菱形符號來表示,此時是一個進入多個出,并且在出的線條上用方括號表明判斷條件。這里的:

條件一是“如果用戶是網上支付”(簡稱:網上支付),則相應的動作是“物流給貨物到用戶”;

條件二是“如果用戶是貨到付現金”(簡稱:現金支付),則相應的動作是“物流收取現金”。

條件三是“如果用戶選擇POS支付”,則“物流用POS機收錢”。

注意:和其他流程圖的菱形符號中間寫字不同,這里不允許在菱形符號中間寫任何字,但表達的意思是一樣的。菱形位置里面其實是可以寫“物流確認支付情況”,寫文字易于理解但是略顯累贅。

再如電商中如果用戶支付完畢,有的時候會反悔并告知商家。對于商家也會存在兩種選擇,“同意則取消訂單”或“拒絕則堅持發貨”。這兩種表達方式都可以達到同樣的效果,只是方法不同。

了解了和傳統流程圖的不同表示方法后,對于UML體系,除了上面介紹的用帶菱形的表示方法外,另外一個方式是不加入菱形判斷圖標,如下圖所示:

這兩種表達方法都是可以的,但需要注意要在轉移線上寫出判斷條件。對于本案例加入判斷的菱形圖標會更加清晰,此時明確物流人員在這里要進行一個判斷。

如果用戶還要同時開發票則怎么表達?——用并行標志來解決。

現在很多的送貨是貨物和發票放在了一起一并寄送過去,或者支持電子發票的方式。但是還有一些企業開紙質發票,并且貨物和開發票地并不一致。這個時候就需要貨物和發票分別寄送到用戶手里。

此時意味著兩撥物流人員一個在送貨和一個在寄送發票。這里就是一個并行處理,表達方式如圖所示:

畫法是畫一個粗橫線,再加上一個進入和多個出的轉移線條。對于本例子,出的兩個分支流程是配送貨物和發票寄送,此時同步處理但并不在意誰先做誰后做。

4. 匯合和合并概念

網上支付和現金支付任意一個完成就算完成如何表達?——用合并來解決。

此時只要是網上支付或現金支付任意一個方式就算完成了支付。即條條大路通羅馬,我們只要一個路徑能到達,就可以進行下一步了,此時有兩種表達方法:

一種方法直接通過三條轉移線連接到下面的活動即可,這個也是我們在前面看到的。第二種方法是畫一個菱形并且多進一出。注意這個菱形符號在這里不是表示要判斷,只是借用了菱形符號而已,因此也不必在線條旁邊加入判斷條件。

實際上第二種畫法是UML的標準畫法。但畢竟看流程圖的人有的不是編程人員,畫上會讓人誤解,為了便于溝通可以選擇第一種畫法。但是在看到網上的流程圖加入合并的菱形標志的時候,要意識到這里不是進行判斷,而是在做合并。

這里另一個例子就是用戶可點擊確認收貨,而系統也可以自動確認收貨,也是那個先確認收貨都算收貨,訂單即最后完成。

發票和商品用戶都收到才算完成如何表達?——用匯合來解決。

前面我們講了貨物和發票是分別寄出的,對于用戶必須是發票和貨物同時收到了才會點擊“確認收貨”,兩者缺一不可。具體表示見下圖:

達方式是一個粗橫線,再加上多個進入和一個出。進入的分支是送貨物和送發票,此時同步處理但并不在意誰先做誰后做,但匯合的時候必須要都完成才可進入到下一步。

另一個例子就是吃飯上菜的例子。我們到餐廳菜是分別上的,只有都上完了才算完成了。而在野路子的流程圖中,是沒有辦法表達這個并行匯合處理的。

通常并行和匯合成對出現,此時并行執行兩組活動,但必須兩組活動都完成才能進入下一環節。而上圖也就是一個完整的流程圖了。

5. 流程圖的總結

流程圖表示方法總結如下:

三、通過問題學概念

流程圖的繪制方法看完了之后,我們再來看文章最前面的流程圖的問題是什么?

案例一:流程圖中不應有非活動的內容

上面的流程圖是說產品經理的工作包括需求收集,需求討論和需求評審等工作,并為此畫了流程圖進行闡述。思考一下,這個流程圖的問題是什么?

我們按照流程圖的概念來看,流程圖要求每個框起來的都是一個活動,活動的典型即存在“主+謂+賓”。

在這里面“有效需求、已有功能和需求池”都不是一個活動,這里都是在說需求的不同類型和功能概念。真正體現活動的是產品經理進行“收集需求,討論需求和需求評審”。

而這里大家會說,我要體現“有效需求和需求池”等概念該怎么做?

那么可以這樣描述:我們可以將需求劃分為新需求+老需求,其中新需求產品經理需要過濾成有效需求和無效需求。而進入需求評審環節的是新需求的有效需求和老需求并放入需求池中,在這個環節我們決定本期開發的需求是那些。

上面這種描述,如果你理解了UML的面向對象的思考方法,就知道這是另一種形式的描述。另外其實知識是相通的,如果按照金字塔原理進行思考,也能得出上面的描述內容。

通過這個案例,我們發現將需求處理的方案和需求評審流程的描述混在一起,會讓受眾群體迷惑,而如果分開描述則會清晰很多。

案例二:流程圖不同于狀態圖

這是一個買家下單和付款的流程。這里仍然按照“主謂賓”來拆分,我們發現待付款不是一個活動,而是一個狀態。而橫線上的“買家下單”才是個活動(即用戶點擊下單)。

因此這個仍然不是流程圖,在UML里更適合用狀態圖來表達。如果此時按照狀態圖的角度來看,這里也是有問題的,我們以后會有專題來講狀態圖。

案例三:流程圖的邏輯需要仔細思考

這個流程圖大家看是從用戶下單到供應商供貨的流程,我們假設這個就是京東或天貓的訂單流程。在這里“生成送貨單,以及用戶選擇支付方式,收款”等環節流程表述錯誤,大家想想問題是什么?

此時我們回憶一下我們在購物APP上如何下單的?這個流程是:

  1. 用戶從購物車點擊“去結算”,就會打開“提交訂單頁面”。
  2. 在“提交訂單頁面”允許用戶選擇網上支付還是貨到付款,以及編輯送貨地址,此時點擊“提交訂單”按鈕。
  3. 則系統生成訂單,并展示給用戶“支付頁面”。
  4. 在“支付頁面” 允許用戶可以選擇某銀行卡或支付寶后,再點擊“銀行卡支付”按鈕。
  5. 此時系統展示“輸入網銀(或支付寶)密碼”的頁面。
  6. 在“輸入密碼頁面” 用戶“輸入賬戶密碼”后就完成了訂單支付。

回憶完整個流程后,我們會發現如下問題:

問題一:“用戶選擇支付方式,之后收款,中間可以取消訂單”這個概括就不正確。

實際上是“在提交訂單頁面,用戶先點擊提交訂單;之后彈出輸入密碼頁面,用戶輸入密碼完成支付”。此時在點擊提交訂單后不輸入支付密碼時,用戶可以到個人訂單列表里面選擇“取消訂單”。因此概括起來是:用戶提交訂單,之后用戶支付訂單,在提交訂單后可以取消訂單。

問題二:生成送貨單和其他活動不是并列關系。

系統的實際工作過程是“用戶點擊提交訂單”后,系統就會生成訂單,不生成訂單就沒有支付頁面。這個生成的訂單也可以在個人中心的訂單列表里看到,針對待付款的訂單用戶可以進行支付或取消訂單。所以生成送貨單和選擇支付方式是不是同時進行的關系。

通過這個案例其實發現流程訓練首先需要仔細思考每個環節。其次這個涉及到對流程對每一步如何進行抽象的問題,如何畫出人人都喜歡都明白的流程圖的問題。這也是第二篇要重點講的地方。

四、總結

通過本篇文章,大家了解了標準的流程圖的畫法。

這里首先需要理解活動,判斷、并行、并行匯合和合并等基本概念。其次通過三個例子,說明如何正確表達流程圖,而不要學了假的流程圖。

我們發現流程圖是一種邏輯表達方式,還有很多其他的方式需要進一步解鎖,會在后續文章中講解。

這個文章還是有點小問題,不知道你能否發現,發現了可以留言。

 

作者:擎蒼,《“圖解”產品:產品經理業務設計與UML建?!纷髡?,公眾號:圖解產品設計

本文由 @擎蒼 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 純運營也受教了。

    來自上海 回復
  2. 謝謝分享,三篇都看啦

    回復
  3. 謝謝分享,三篇都看啦

    回復
  4. 這個是UML流程圖。那傳統流程圖來表達會不專業了嗎

    來自廣東 回復
    1. 沒有標準,意味著沒法說流程圖如何畫。
      另外網上普遍把流程圖和活動圖的差異說大了,本質上目的相同,表達差異極小。而多數所謂流程圖,因為無標準而無法反駁,雖然其實是漏洞百出的。

      回復
  5. 我想請問一下,文中說“流程圖要求每個框起來的都是一個活動”,流程圖中不應該有非活動的內容,那頁面流程圖的框中內容該如何表達?

    來自廣東 回復
    1. 頁面流程圖和流程圖兩回事,各有各的目的和畫法。

      回復
  6. 請問這些都是用什么軟件做的圖呀

    來自廣東 回復
    1. axure

      回復
    2. 用wps就可以了,有一個專門的流程圖功能,很好用。

      回復
  7. 很清晰

    來自廣東 回復
  8. 請問這些都是用什么軟件做的圖呀

    來自廣東 回復
  9. 話說用PowerDesigner來畫活動圖是不是也可以

    來自山西 回復
  10. 多謝講解 學會很多 來催更啦!

    來自山西 回復
    1. 已經更新

      回復
  11. 期待更新!

    來自四川 回復
  12. 剛剛開始學習產品,請問大佬用axure畫活動圖開始結束和匯合的元件系統里面沒有呀,自己弄得嗎?

    來自四川 回復
    1. 自己弄,1分鐘的事

      回復
  13. 對于淘寶訂單,問題一里,用戶點擊提交訂單按鈕,在支付頁面彈出后點擊關閉,即不支付,一樣可以生成訂單。
    這樣的訂單在商家后臺系統是可以調訂單里面的參數的。這樣生成的訂單一樣可以選擇取消訂單,然后刪除訂單。
    如果用戶選擇了支付訂單,然后生成后的訂單,商家后臺不可以做任何的改動了。

    來自北京 回復
  14. 案例一自己試著重新用標準畫了一下,需求池哪里還是不知道如何表達,新需求和老需求是在需求收集下方做判斷,還是在開始下面有兩個分支?在下一篇的介紹中可以分享一下案例一的正確畫法么?

    來自吉林 回復
    1. 在我的表述里已經不是流程圖的表述了。如果一定要說,則要大改。

      回復
    2. 重新閱讀了一遍 大致明白了 謝謝分享和回復

      來自吉林 回復
  15. hi,不是說好還有好幾篇待續么~怎么木有了,強烈要求出完全集啊

    來自上海 回復
    1. 已經交作業了,估計一天內就發布了,莫急。

      來自北京 回復
  16. 喜歡這樣的干貨

    來自廣東 回復
  17. ?? 文章寫的不錯,學習流程圖很好的教程。突破標準只要能讓人容易理解明白的流程圖,就是好的流程圖,讓人難以/無法理解的流程圖,再標準也沒用。

    來自廣東 回復
  18. 大學學習的UML,工作中已經忘得差不多了,現在又學習了一遍,贊!

    來自重慶 回復
  19. Visio2016里沒找到并行模式,有誰知道嗎

    來自北京 回復
    1. visio只能畫一個粗橫線,再連線。

      回復
    2. 更多形狀》軟件和數據庫》軟件》UML活動》 分叉節點 和 鏈接節點

      來自北京 回復
    3. ??

      來自湖南 回復
    4. 來自廣東 回復
  20. 不錯不錯,贊一個

    來自北京 回復
  21. 必須要贊一個~

    來自浙江 回復
  22. 流程圖和思維導圖混在一起啦 ??

    來自天津 回復
  23. (接上)“流程圖中不應有非活動的內容”。我覺得 用戶可以自己選擇是否需要發票,兩種結果都算是一種活動,應該在流程中體現。讓開發人員一眼就可以在流程中知道哪些活動是必然的,哪些活動是特定場景的。 所以:特定場景才會出現的“活動”如何規范的在流程圖中體現,請前輩指導下,謝謝!

    來自四川 回復
    1. 要畫圖,下篇就給答案。本篇保證格式規范是正確的。

      回復
    2. 為何要區分開必然活動還有特定場景下活動

      來自北京 回復
  24. 你好 請問一下。如果是我在下單的時候選擇不需要發票。如何在流程圖中體現出來。 有發票則必須收到發票才確認收貨,沒有發票則不需要。沒有發票的箭頭指向哪里?

    來自四川 回復
  25. 喜歡你的寫作邏輯。期待你的第二篇和第三篇

    來自廣東 回復
  26. 并行、合并、匯合的概念第一次聽說,贊 ??

    來自河南 回復
    1. 業內叫法不統一,從源頭找了一下相對統一的叫法。

      回復
  27. 哈哈我找到啦

    回復
  28. 大佬,這種流程圖用什么工具做方便啊

    回復
    1. 我平時用的最多的是mindmanager,較為便宜。土豪可以上Visio365。

      回復
    2. OmniGraffle for mac 你值得擁有

      來自上海 回復
    3. 謝謝啊,看看有沒有PJ版本??

      回復
    4. 用axure畫的,產品經理用的原型圖工具。用這個畫的好處是,原型和流程放到一個文檔里,便于用更少的時間維護更新。

      回復
  29. 很清晰的梳理,厲害!期待盡快能出第二篇

    來自北京 回復
  30. 系統的梳理一下流程圖的標準要求,很棒

    來自北京 回復
    1. 的確很棒

      來自廣東 回復
    2. 來自廣東 回復