BPMN 业务流程图

BPMN (Business Process Model and Notation) 也是一个用来做业务流程图的表示方法,他是一个系列的规范构成的画图模式。

在什麽情况下你可能会需要再深入了解 BPMN 或尝试使用它呢?

  • 你流程图会议参与者大多包含跨部门、领域的人
  • 实务工作很繁琐、细节流程过於繁复
  • 承上,尤其主管或交付的客户非常注重细节 (尤其是连工程师都难以关注的细节)
  • 开了一大堆会议在讨论很多细节,而且难以让人记忆,尤其有整理困难,就算细节写成文件也是堆积成山,根本没人想看

恰好 BPMN 这个工具或许可以把很多成山的文件变成流程图,令工程师易懂,也好与交付对象建立更好的沟通传达。

Wiki [1] 记录的 BPMN 的基本要素有:

  • Flow Object (流程物件)
  • Connecting Objects (连接物件)
  • Swimlanes (泳道)
  • Artifacts (实体物件)

特别标注泳道,是因为他与上一节介绍的泳道图恰好有关,这两者的差异在於 BPMN 衍生出自己的一套绘制心法、流程。

以下是一个简易的 BPMN 流程图:

https://ithelp.ithome.com.tw/upload/images/20210913/20092753vC3OMn70sb.png

定义流程/问题边界

对於上图的画法中,可以注意到图特别关注了开始跟结束点,这是源自使用 BPMN 的核心思想: 把每一个业务中将会发生的事情定义成事件,每个事件都有开始跟结束,形成一个周期,像是: 客户下订事件、供应商进货、调货事件、夏季优惠事件、收银台结帐流程、预约课程流程、会员签到入场、维修工单。

现在看起来这张图根本就是基础流程图,所以得继续加一些 BPMN 的元素进去,看起来不那麽像传统的图片。

把上一节的泳道图加进来,就等於有角色 (甚至部门、组织) 的区分了,泳道在哪?

https://ithelp.ithome.com.tw/upload/images/20210913/200927532vUZy04EIx.png

BPMN 图很有趣,泳道图就真的用游泳池水蓝色,而这个图表中,可以看到客户泳道跟 B2C 店商平台的泳道是完全分离的,如果你有去大型游泳池游过,有些大型泳池会提供 5M 浮潜训练用的泳道而且会完全跟旁边的泳道分开,池水甚至不会共用。

每个泳道里面有池水 (Pool),你就知道这个池水等等要放… 流程图了,刚好泳道 (Lane)、池水 (Pool) 都介绍了,这就是 BPMN 的 Swimlanes 这个概念。

现在,试图把泳道跟流程放进来:

https://ithelp.ithome.com.tw/upload/images/20210913/20092753zvkKYTjHF2.png

在这里的虚线箭头,表示的是 BPMN 的 Message Flow (讯息流),可以想成事讯息告知,事件告知,也可以当作是一种 PubSub 流程; 实线箭头就是熟知的流程走向 (有顺序性)。

客户泳道与 B2C 平台泳道完全切割开来,因为他们在处理事务上并没有我认定的那麽紧密,也许不同的部门,不相关的部门也可以再拆出第三个分隔的泳道出来。

为了善用 BPMN,我在图片中继续增加: 档案、注解、群组三个概念,这就可以让人知道发票要印出纸本,(出货明细/物流单) 要整合放进货品一起寄出,最终客户手上拿到的是纸本的两张纸(发票 + (出货明细/物流单))。

https://ithelp.ithome.com.tw/upload/images/20210913/20092753rAQLR8lCGu.png

上面图片中,绿色圆角方形就是 Task,Task, Sub-Process 都是属於 Activities, Sub-Process 用途在可以缩减任务项目,整合成一块,然後再告诉读者还有很多 Task 在里面,简单的说,处理购物车根本就是个流程黑洞吧,特意把它使用了 Sub-Process 的图案来标示。

这就是 BPMN,不过还有一些东西没介绍到,像是 Intermediate Events, Choreography Task, Choreography Sub-Process, Call Activity, Sub-Process,所以看看能不能再改一版有用这些额外图形表示工具的流程图,就使用 Sub-Process 这个概念。

https://ithelp.ithome.com.tw/upload/images/20210913/20092753E3bgcl8K9T.png

上图把处理购物车的任务换成了 Sub-Process,基本上就是把很多的任务压缩在处理购物车这个任务中,购物车的检查流程就直接被包成一块。

最後再统整一下 Wiki 上列的 BPMN 对照解释:

  • Flow Object (流程物件)
    • Events (绿绿的圆形,事件进入点;红色圆形是结束点)
    • Activities (绿绿的方形含有 Border Radius 物件, 这个也叫做 Task)
    • Gateways (橘色转 45 度的正方形)
  • Connecting Objects (箭头、连线)
    • Sequence Flow (实线箭头)
    • Message Flow (空心圆形开始,虚线箭头)
    • Association (没有箭头的需线,代表两者有关联性)
  • Swimlanes (游泳道)
    • Pool (泳池)
    • Lane (泳道)
  • Artifacts/Artefacts (实体物件)
    • Data Object (资料物件)
    • Group (群组,可以帮活动分组,且不影响流)
    • Annotation (注解)

面对复杂的业务流程,划出流程图会是最难想到的起手式,因为他在一开始的绘制时间成本就很高,甚至还要整理很多内容,可是变相的想一想,假设你的文件库快爆炸了,文件上尽是一堆文字,找不到方向及目标,那还不如投资时间在建立那些有共识、结构性的东西上,比方说图片。

本文章绘制的工具是使用 Visual Diagram Online: https://online.visual-paradigm.com/drive/#diagramlist:proj=0&new=BusinessProcessDiagram。

可另外参考一个开源的工具 BPMN.js

注: BPMN 是 Object Management Group 这个组织发表的标准,简称 OMG (喔卖尬)

更多详情可以看看 Wiki - 业务流程模型和标记法 ,最後的 References 也有提供一些材料。

Reference:
[1] 业务流程模型和标记法
[2] 快速指南 BPMN - 2019
[3] 【SOP制作教学】流程图教学、重点范例、BPMN符号介绍!


<<:  [Day 1] 全民疯AI系列2.0-机器学习实战手册

>>:  [day1]行动支付小小小优惠

影音串流辛酸史

影音串流的解决方案有很多,可以自己从 IaaS 架设,像是使用 AWS/GCP/Azure 启动虚拟...

[Day26] swift & kotlin 游戏篇!(8) 小鸡BB-游戏制作-历史纪录

Swift 游戏示意 Swift 游戏纪录 最後一个功能是游戏纪录 修改一下Player.swift...

完赛 != 完结

完赛感言 不知不觉才没有不知不觉,每天都在想着放弃,但最後还是撑到完赛,回想这三十天铁人赛的挣扎旅程...

架站:安装 Ubuntu Server

说到架站,虽然CentOS稳定性和安全性更好,但很多人还是偏向使用Ubuntu Server 依据小...

Day11【Web】网路攻击:XSS

XSS 全称为 Cross-site scripting 中文为「跨站脚本攻击」。 通常是指利用网页...