先定出错之后的默认动作
企业做流程自动化,通常先把正常步骤画清楚:信息从哪里来,交给谁,结果写到哪里。上线以后要处理的,往往是这些步骤之外的情况。
数据缺了一项,外部系统没有按时响应,规则在运行中变了,或者出现必须有人看一眼的情况。如果事先没有写明,系统只能停在半路,或者按一个没有说清的默认动作继续往下走。
出错之后怎么办,要在上线前定下来。等第一次故障发生再临时商量,现场已经不知道影响到了哪里。
每一步都先写异常分支
异常分支是流程的一部分,不是上线以后再补的说明。只描述成功路径,等于把故障留到运行之后。
每一条会自动往下走的步骤,上线前都要能回答下面四件事。
- 这一步可能因为什么失败
- 失败后是停下、重试,还是改走另一条
- 哪些失败必须转给指定的人
- 失败信息记在哪里,事后由谁复盘
看这一步出错后能不能收回
一条步骤能不能自动往下走,先看它出错以后能不能收回,以及影响范围是否可控。
只读和查询,改错了通常还停在系统里面。发消息、修改记录、对外发布会改变外部状态,出错后不容易收回。这类动作要事先写上确认和权限。这里只定出错后的处理,不讨论人和系统怎样分担日常工作。
- 数据不完整或格式不对
- 外部系统没有按时响应
- 当时使用的业务规则已经变化
- 出现需要人当场判断的情况
系统要能被检查、暂停和接管
自动化运行时要留下关键过程记录,出错后才能看出发生了什么、影响到了哪里、可以从哪里恢复。
上线前写好停止方式、回滚方式和接管入口,并指定责任人。没有责任人的转交,只是把故障停在系统里。
- 保留关键过程记录
- 预先写好停止和回滚
- 指定接管入口和责任人
互花的判断
流程自动化上线前,先写清出错之后的默认动作、接手人和恢复方式。正常步骤可以随后补细节,异常分支不能等故障发生再设计。