一、浅谈什么是BPM?为什么要搭建BPM?BPM也就是流程,在流程中,可以自己一个人独挑,也可以进行团队合作,均需按流程完成。那么,如何进行业务流程管理设计呢?一起来看一下吧。
BPM说简单点就是流程,比如把大象装冰箱一共分几步,这就是流程;这个流程中,可以自己一人独挑,也可以进行团队协作,均需要按流程完成。
企业搭建流程的目的:规范员工行为和高效管理。就跟流水线一样,每个人负责1个环节或者多个环节,这样效率更高,员工的替换成本也低;(流水线作业)
企业的搭建流程中心的主要是为了逐步实现标准且固化的业务流程,让每一个员工像产线工人一样,去执行标准的行为和动作,以达到提升企业效率,降低运营成本的目的。
每次说到这里,总有人抬杠,企业很多制度和流程,并没有提升企业效率,比如明明不需要审批的,却要审批或者明明可以一步做完的,非要分几步等等。这个可以从两方面考虑:
- 企业的制度有问题,这一点可以参考麦当劳兄弟设计出餐流程,这时候是需要优化流程;
- 没有理解该制度和流程的精髓,因为有时千里之堤毁于蚁穴;
如果还要继续battle,那我只能告诉你,要么优化,要么执行,要么走。
二、设计概要在企业中,万物皆可流程化;大到项目运转,小到橡皮借用,皆可进行流程化;流程很重要,我常比喻为“指挥棒”、“指路牌”、“打钉枪”。
- 指挥棒:站在管理者角度,依托标准化流程可以指挥企业各项工作的顺利推进;
- 指路牌:在工作/项目角度,在每一个阶段和过程中,告诉执行者应该做什么,应该怎么做;
- 打钉枪:站在员工角度,需要把工作当做钉子,钉在该有的位置;
在企业信息化过程中,会碰到各种流程,常见的几种场景:
- 审批流程:比如请假流程、报销流程;
- 工作流程:比如项目交付、合同签订,都是有明确的步骤和业务动作(跟大象装冰箱分3步一样);
- 自动流程:无需人工,满足条件即执行;比如每创建一个客户后,自动给客户发送产品宣传邮件;
从以上的场景,我们可以清楚的知道,流程是存在多种场景和多种业务对象里的;尤其是一些业务多样化企业或者大中型企业,相同的部门和业务也有不同的流程,不同的人群不同的业务有不同的流程,这种多样性和复杂性从本质上决定了流程中心的发展需要高度抽象化和配置化(需要将流程和业务解耦,各自干各自的,相互不影响/较小的影响)。
如果每项流程都单独做,会有重复工作且数据不通,无法分析和统计企业工作。
所以,BPM设计要遵循以下原则:
1)独立性
流程和业务看做是两个独立的人,只是在相互合作时,严格区分哪些是你的,哪些是我的;毕竟你能给我的,别人也基本能给我;而我的就是我的,我会越来越丰富,能力越来越强。(你指业务,我指BPM)
2)开放&集成
BPM要多个系统集成,也就是要跟多人同时合作,要做好开放对接能力和做好数据集合&区隔;要建立开放平台,明确好对接规则,这样满足规则并经过授权的都可以使用。
3)数据&效能
企业运营会产生大量数据,BPM要有数据管理的能力,也要保证一定的数据处理效率,所以做好全面数据存储和区分就非常重要,数据库架构要在初期构建时,就要搭建好,这个要同技术详细沟通。
4)安全性
各个系统的数据都要对接BPM,不光内部要做好权限控制,也要保障数据安全,防止黑客攻击或未经授权的数据检索;也就是说,跟多人同时谈恋爱,什么该做什么不该做,要区分清楚,还要防止偷窥隐私,做时间管理大师!
5)流畅性
每个系统可能有独立的账户体系,要支持单点登录(SSO),在业务系统可直接访问;做好账户管理,让用户在多平台上轻松登录和访问;对于流程执行的事项,要有跟进和反馈,并进行及时通知,给流程加加速。
图1:业务流程管理流程
名词解释:在考勤系统中,提交请假单为例:
- 实例数据:业务对象具体的数据,比如请假单,员工张三请假3天、开始结束时间等,这就是实例数据;
- 业务系统:执行具体业务的系统,考勤系统、CRM系统、费用管理系统等;
- 业务对象:也就是我们常说的表单(实际也有略微区别,对流程中心可忽略,以下皆称为表单,方便理解),比如请假单、订单都属于业务对象;
- 事件:满足一定条件后,执行的工作内容,如发送短信、发送通知等;
流程中心设计,首先要明白流程的本质是按照流程进行事务办理,那么可以将流程中心抽象为:人、节点、事(也就是说什么人在什么节点做什么事),映射到产品设计上就是:执行人、流程节点、操作/事项配置。
流程中心作为多系统管理的中台能力,在实际的应用中,要具备管理能力和业务实时交互能力。
对于一个完整的业务流程来说,至少有4个环节:对什么业务进行处理、这个业务有什么样的动作、什么人在哪个节点上做什么事、最后对流程进行监督和管理。
综上,BPM(业务流程管理)至少要包括5大部分:表单管理、流程应用、流程引擎、事件管理、流程管理。
图2:业务流程管理产品结构
1. 表单管理:先把工作明确下来
表单管理即流程中心的需要明确的工作内容,比如合同、订单、报销单、加班单、出差申请等等,需要应用在流程中进行处理的工作。
- 表单分类:方便业务处理,比如可以分为财务、销售、考勤,为了适应复杂的业务逻辑,表单分类可放宽到多级分类,建议用4~5级;
- 自定义表单设计:不涉及复杂业务场景的,需要进行流程处理的工作,可以利用表单设计器拖拽设计表单;(可根据业务实际场景,增加字段类型:输入型、选择型、功能型,也可以把常用场景进行组装为组件)
- 三方表单接入:一般业务都会有自己的业务表单且有复杂的业务交互逻辑,通过表单设计器是无法完成设计的,流程中心也需要对接三方系统的表单;
- 字段管理:表单的字段,需要进行统一的管理;作为中台,需要开发接口,支持三方字段更新,并且中台要能够有一套独立的字段ID映射管理体系,避免多系统、多业务字段冲突。
2. 流程应用:把工作进行拆分
表单对接完成后,工作类型也就确认了,接下就是把工作中涉及的内容进行拆分;发起流程后,不同的节点由不同的人进行办理,那么这些人办理什么内容呢?
所以流程如果想要应用起来,需要提前将表单对应的工作做好,包括:触发入口整理(哪里能够触发流程)、流程操作注册(流程办理人需要完成的操作)、待办数据和已办数据。
流程应用,需要重点抽离出表单对应的业务动作,比如审批、办理、确认、分派、自动任务;在产品设计时,对应的重点是抽离不同表单的操作并组装成流程动作。不同的动作,包含不同的操作;不同的按钮对应不同的行为。
- 审批:由执行人进行审批操作。(通过、驳回)
- 办理:由执行人进行业务办理。(办理、结束办理)
- 确认:执行人仅需对业务数据进行等待并确认。(确认)
- 分派:执行人可以自定义下一个节点的执行人及对应动作。(分派)
- 自动任务:对应的执行人仅接收数据无需进行任何操作,流程自动向下流转。可用于业务数据同步和自动事件执行,如合同签订后,自动生成发票申请并通知财务。
业务动作还会配套一些通用的操作,可在节点上进行权限控制,如评价、下载、打印、挂起/继续、加办、转交。
业务动作的梳理是一个大工程,除了要跟业务系统在动作上达成共识以外,还需要对不同的业务动作及其操作进行抽离,最后还需要适配业务系统的权限控制。
按钮操作的点击行为常见的类型:打开页面、打开弹窗、触发、指定动作;按钮操作的执行内容常见的有:流程关联(推进/退回/插入/删除)、办理。
以上内容就将工作进行了拆分,也就是说,把当前这个表单需要流程推进的工作进行拆分,可以配置给不同的执行人进行办理。
3. 流程引擎:设计工作流水线
流程引擎主要就是完成人-节点-事配置:
- 人:什么人可以触发流程?发起的数据能够满足触发条件?什么人处理事务?
- 节点:工作流程怎么配置?节点有哪些规则?处理的约束条件有哪些?
- 事:要处理的工作内容?
1)流程分类
随着企业的发展,会有成千上万的业务流程;如果没有合理的流程分类,员工在使用时、管理员在管理时也会不知所措,所以流程一定要进行有效的分类。建议可以按照部门进行管理,也可以面向业务进行管理。分类一定要认真思考,要充分考虑公司自身的业务,比如业务流程偏通用型的,可按业务类型进行分类;若部门流程千差万别且存在多种业务流程,则可以按照部门 业务进行区分。
在产品设计时,要支持多级分类创建和管理,同时要支持批量迁移和分类合并。
2)基本信息
基本信息包括:流程名称、流程分类、面向表单、流程说明、适用范围。
- 流程名称:名称是为了更好的对流程进行区分,产品设计时,如果相同人群面向同一业务有多种流程时,名称支持流程标签的插入;
- 流程分类:支持从分类中直接创建;
- 流程触发器:是指流程可用于哪些用户,满足什么条件下进行触发;用户一般是指实例数据的提交人,而条件触发多用于高级一些的配置,可面向表单字段进行配置(表单字段应取所有字段);
流程触发包含:用户&条件。
肯定有同学会问触发条件和流程绘制时的条件分支有什么区别?
从应用场景上来讲,条件分支是可以满足的,但是触发条件和用户都属于触发器配置,实际应用中,条件触发用于不需要触发流程的数据,不用生成流程数据。
①用户:支持多态用户(部门、指定用户、用户组、角色、职能、角色组)