模拟流程:八个步骤,并带有完整计算示例
模拟一个流程意味着:用一句话界定范围,把流程大致分成五到十个步骤;为每个步骤收集数量、处理时间范围和产能;描述到达流的波动与尖峰因子;让模型运行数百次;用 Little's Law 将结果与现实核对;然后只改变一个杠杆并重新计算。工作量大约半天,其中大部分时间用于数据收集,而非计算。结果是一段由 P50 和 P90 表示的区间,加上对措施后瓶颈去向的说明。
Inhaltsverzeichnis
本指南与工具无关:它同样适用于仿真实验室、Python 库或精简的决策工具。适用于 FlowVisual 的按键版请参见实践指南。
第 1 步:用一句话界定范围
“从发票到批准付款。”
这句话必须得到所有相关者的一致认可。没有它,两个领域会就不同的流程争论,不理解为何它们的数据不一致。
如果缺少这句话,那么界定范围本身就是主要工作,而不是计算。
第 2 步:粗略分解,五到十个步骤
不要三十个。瓶颈出现在利用率最高的环节,粗略建模下这一点和精细建模一样明显。每增加一个活动就需要五个输入字段,且不会改变结果。
三条规则:
- 只有在流程真正分叉时才建分支,并标注每条边的占比。
- 对所有离开流程的情况建终止:撤回、拒绝、流失。没有终止项会导致计算的量永远到不了终点。
- 等待时间不是步骤。 当产能紧张时,等待会在模型中自然产生。把“滞留时间 3 天”作为步骤填写,就是在预先决定结果而不是计算结果。
第 3 步:每步三项数据
| 项目 | 来源 | 替代方法 |
|---|---|---|
| 每日到达量 | ERP、工单系统、收件清单 | 统计四周 |
| 处理时长 范围 | 工时记录、自述 | 分别询问三名处理者,取他们回答的区间 |
| 产能 | 编制 × 有效工作小时 | 人数 × 小时 × 0,7 |
关于区间:“5 到 15 分钟”比“平均 10 分钟”更有价值,业务方也更愿意提供,因为更诚实。变异不是不确定性,它是队列形成的原因。
关于产能:按每个全职岗位每周七个有效工作小时来算,而不是八个。会议、询问和干扰不计入处理时间。
第 4 步:描述到达流
这是最常被跳过、但后果最严重的一步。需要三项说明:
- 工作日平均到达量。
- 波动性: 到达是均匀分布还是成批到来?
- 峰值因子: 强日比平日多多少?月末或周初通常出现,因子常见在 1,5 到 2 之间。
用平滑平均数计算,就相当于模拟一个永远不受负荷影响的过程,会得到在真实运营中不存在的流转时间。
第 5 步:让模型多次运行
一次运行只是样本数为一。只有用新的随机数重复运行多次,才能得到目标结果:一个分布,从中读取 P10、P50 和 P90。
您需要的输出:吞吐量、作为区间的流转时间、各步的利用率、队列长度。
第 6 步:交叉验证
Little's Law 是最便宜的检验方法,且不依赖分布假设:
平均流转时间 W = 在途量 L ÷ 吞吐量 λ
统计当前在等候的事项数量,除以日吞吐量,与模型输出对比。
- 大致吻合: 继续。
- 模型明显比现实快: 缺少某个队列。几乎总是因为一个询问、第二道审批或汇总处理被忽略。
- 模型明显比现实慢: 您低估了产能或遗漏了一个能把量抽走的分支。
第 7 步:只改一个杠杆
先保存现状。然后只做一个改变:
- 增加产能
- 降低变异(按类型分流,平滑入口,取消询问)
- 改变量的去向(设定价值阈值,抽样替代全检)
- 步骤自动化
重新计算并比较。然后恢复并尝试下一个杠杆。三个改动同时进行会得到一个无法归因到单个杠杆的数值。
第 8 步:把结果写下来并说明假设
四个部分:峰值日各步利用率的排序、流转时间的 P50 与 P90、杠杆的时间和欧元效果及新的瓶颈、以及未覆盖事项清单。
完整计算的示例
示例模型,无客户数据。
流程: 退款申请处理。每工作日 80 份申请,月初峰值因子 1,6。
| 步骤 | 处理时长 | 产能 | 需求/日 | 产能/日 | 利用率 |
|---|---|---|---|---|---|
| 检查收件 | 3–6 min | 1 人 | 360 min | 420 min | 86 % |
| 事实性审查 | 8–20 min | 3 人 | 1 120 min | 1 260 min | 89 % |
| 批准 | 2–5 min | 1 人(兼职) | 280 min | 300 min | 93 % |
| 支付 | 汇总处理 | 每周 2 次 | — | — | — |
第一种解读: 瓶颈是批准(93 %),紧随其后是事实性审查(89 %)。三者均在 85 % 以上。这意味着等待时间已经是处理时间的若干倍,在峰值因子 1,6 时,三者的利用率都超过 100 %。
仿真结果: 流转时间 P50 = 4,8 天,P90 = 11,2 天。处理时间合计为 13 到 31 分钟。真正的问题在 25 分钟到 4,8 天之间。
交叉验证: 收件箱平均有 390 件,吞吐量 80/日 → 4,9 天。吻合。
杠杆 A,事实性审查增加半个岗位: P50 降至 3,9 天,P90 降至 8,4。瓶颈现在明确在批准(93 %)。
杠杆 B,为批准设固定代理而非由兼职人员兼任: P50 降至 3,1 天,P90 降至 6,0。批准步骤的变异是更大的杠杆,且几乎不需要额外岗位。
杠杆 C,将支付改为每日而非每周两次: P50 −0,7 天,几乎免费。
按投入产出排序: C、B、A。增加人员这一经典答案排在最后。
五个代价高昂的错误
- 把等待时间当作步骤登记。 这样会预先决定结果。
- 用平均值而非区间计算。 没有变异就没有队列,没有队列就没有真实的流转时间。
- 省略峰值日。 平均 85 % 的流程在峰值日会超过 100 %,由此产生的积压会持续数周。
- 建模过于细致。 三十个步骤,同样的答案,三倍的工作量。
- 未做交叉验证就发布。 Little's Law 只需五分钟,却能挽回可信度。
常见问题
模拟一个流程需要多长时间?
对于一个范围明确、包含五到十个步骤的流程:大约半天的纯工作时间,分布在大约一周的日历时间内。最大部分是数据获取,而不是模型构建。模型本身大约在30分钟内完成。只有在范围有争议时才会更久。
我至少需要哪些数据?
每个步骤三项数字(数量、作为区间的处理时间、容量)加上到达流的描述,包括波动和峰值因子。所有数据都可以估计,但估计必须作为假设随结果一并给出。事件日志不是必需的;只有当您要衡量过去而不是计算变更时才需要它。
我如何判断我的模型是错误的?
凭 Little's Law:数一数正在等待的事项并除以日吞吐量。如果测得的通过时间明显高于计算值,模型中就缺少一个等待队列。通常是一次询问、第二道审批或一次汇总运行。这个检查只需五分钟,却是最有效的检查。
我应该把等待时间建模为独立的步骤吗?
不应该。当某个步骤对到达量没有足够容量时,等待时间会在模型中自然产生。把它作为固定步骤录入,就先假定了本欲计算的结果。这样之后就无法展示当容量或波动改变时等待时间如何变化。
为什么每项计算只改变一个杠杆?
因为否则无法分配效果。若同时改变容量、波动和路由,您可能得到一个更好的数值,但不会有可行的业务案例:无人能说明投资的哪一部分产生了该效益。逐项计算会按每单位投入的效果生成排序,且通常在首位出现一项无需成本的措施。
在您自己的流程上进行计算验证
FlowVisual 会把本文中的数字变成一个可运行的模型,使用您的数量、您的产能、您的利润率。
Guide: seven steps to the number