近年来,RPA越来越流行。
什么是RPA,它能解决什么问题?
一般说来RPA,是特指机器人流程自动化,其来自 Robotic Process Automation三个英文单词的首字母缩写所组成。
与很多认为,这是与当前大数据、人工智能关联的一种技术。
事实上,RPA概念的诞生有别于最近新兴的那些人工智能技术,如机器学习、深度学习、神经网络等等,那些技术大多来自于学术机构或科研单位的研究成果,学者们首先会通过一些论文和报告给出某个概念的清晰定义,然后再有相关科技公司进行研发和生产。
而RPA的概念是由一家研发此类软件的IT创业公司和一家研究机构在2012年所提出的,这个时间点远迟于机器学习(1959年)和深度学习(1986年)两个概念的提出,并逐步在一些从事外包服务领域以及为外包服务提供软件的厂商中推广开来。
所以RPA更多是通过厂商和用户不断的实战总结、大家口口相传后而逐步推广开来的一种概念,从没有哪家机构给出过一统江湖的权威解释。正由于此,也导致了在后续的市场推广和宣传过程中,各软件厂商和服务供应商也各持一词,导致了市场上的最终用户也缺乏对RPA概念的统一共识。
“机器人流程自动化”如果只从字面来理解,其实就是“利用机器人技术来实现流程的自动化处理”。但是这样的理解程度来作为RPA的定义是远远不够的。
如果真正理解RPA,通常需要对三件事情进行剖析,
一是RPA是什么样的机器人技术。如这是个新技术还是传统技术?是人工智能技术的一种吗?与工厂里的机器人是一样的吗?
二是RPA可以实现哪些流程的自动化。如企业内不是已经实现办公自动化了吗?与利用工作流引擎来实现的自动化有什么区别?
三是流程可以被RPA实现到什么程度的自动化。如它能帮助或替代人类做什么?完全不需要人参与吗
?这三点也是第一次听到RPA时,所有读者和用户脑中首先会冒出的一些问题。
关于第一个问题,RPA到底是个什么样的机器人技术?
首先,RPA是一种软件技术,也就是说RPA中所谓的“机器人”,并不是指有物理形态、物理实体的那些机器人,区别于工厂中的机器手臂、自动设备、家里的扫地机器人,以及银行大堂的迎宾机器人,说到底它就是计算机中的程序代码,所以RPA也被称作软件机器人(Software Robot),把运行在RPA中的机器人称作Bot。
RPA技术的核心能力是可以模拟和替代人工劳动。工厂中那些物理形态的机器人替代的是工人的体力劳动,扫地机器人替代的是家庭主妇的清洁劳动,而RPA这种存活在计算机里的软件替代的是办公室里面员工的脑力劳动,以及诸如敲击键盘、点击鼠标、切换页面等系统操作动作。随着全社会进入信息化时代,目前几乎所有企业中的员工以及人们在日常生活都需要依赖于计算机的使用。一些大型企业更是同时拥有多套应用系统,员工在工作中经常需要登录不同的系统进行业务处理,系统处理过程中就必然存在着大量的数据录入、数据核对以及数据报告等工作,而RPA通过模拟人工操作的方式很好的解决了这类问题。
另外,通常员工在工作中需要使用多个业务系统、桌面软件,以及不定时访问一些内外部网站获取信息,所以在实际业务办理过程中,就需要在不同系统中进行切换,将数据传来传去,进行不停的粘贴复制,花费了大量时间。RPA目前能够调用几乎所有桌面系统中的应用程序,如常用的办公软件Excel,PPT,word,邮件和即时通讯工具等,其他带有客户端的用户界面以及各类浏览器支持的web页面,这样RPA就可以模拟员工的以上行为,无缝的集成上述业务操作,变向起到了不同应用系统之间集成的作用。而这样的集成方式并不需要修改后端程序的任何一行代码或数据库字段,不需要打开后端程序的接口或服务,因为RPA只是在模拟人的行为,访问操作的是那些应用系统的页面。这种集成方式也被称作“At-the-glass Integration”。
正因为使用RPA是不需要了解复杂的后端程序逻辑,数据库结构,软件接口和服务调用方式的,同时RPA的编辑主要是利用图形化可拖拽的工具,以及采用脚本语言进行编写,不需要编译和部署,甚至可以用操作录制的方式来自动生成,所以才让技术人员更容易上手使用,甚至于一些业务人员在经过培训后以后也可以进行使用。
RPA技术其实是一类自动化技术综合在一起的统称,这类技术通常包括键盘和鼠标的模拟操作技术,屏幕信息获取和定位的抓屏技术,流程控制处理的工作流引擎技术,以及自动化任务调动控制的管理台技术等,如果单独讲每一项技术可能已经有了很长时间的发展历史,但是能够将这些技术综合起来一起使用,而且能够稳定安全的使用,让用户更容易的使用,真正的用于商用只有短短几年的时间。
关于第二个问题,RPA可以实现哪些流程的自动化?
RPA是运行在计算机中的机器人程序,那么能自动化的流程必然是那些涉及到电脑处理的操作过程,而人们在现实物理世界中的行为就无法利用RPA来模拟和替代,例如领导在纸质文件上的手写签名,跑到打印机前取回已打印的文件,将寄送的包裹交到快递人员的手中。不过RPA却可以实现自动化的电子签名和校验来替代手写签名;如果企业还未实现无纸化办公,至少RPA可以做到将要打印的文件自动发送给打印机,并自动判断打印成功与否的状态;虽然RPA不能亲自交包裹,但是可以在快递公司的系统中自动下单,并自动化的检查快递物流的目前状态。所以如果在一个业务流程中,一部分步骤是人工的电脑操作,一部分是人在现实世界中的行为,那么可以肯定的说,RPA只能自动化的替代人类处理那些电脑操作,而对于人类的那些物理行为是无能为力的,不过这时那些拥有物理手臂和自动行走的机器人就可以派上用场了。通过RPA机器人来操作物理机器人的使用,这个话题就更有意思了。
既然RPA是利用程序模拟人的操作行为,那么这些流程中的操作行为就必须是有明确的业务规则,有明确的行为逻辑,才能转换成可执行软件程序。目前RPA主要应用于商业领域,在商业世界中,90%的业务行为都是有逻辑规则可寻的,除了那些高层领导的主观决策和宏观展望等,尤其对于那些一线业务人员的操作过程,更是严格遵守公司的操作规程的。在RPA目前应用的领域中,主要包括财务会计、人力资源、采购、供应链管理等领域,例如费用报销、单据审核、人员入职、开具证明、订单核对等流程。
另外,并非所有能够被自动化的流程,都要去真正的实现自动化,如上面几个定义中所提到的,RPA是要处理那些重复执行且工作量大的流程环节。其实这里讨论是自动化的必要性,而不是RPA能与不能实现自动化的问题。首先,是需要考虑投入产出比的问题,因为使用RPA最原始的推动力是为了替代人工劳动,降低人力成本。这部分工作通过人工操作是需要成本的,但是采用RPA的软件、实施和维护也需要成本的,就需要对比一下哪种方式成本更低。其次,还要考虑业务灵活性的问题,由于一旦被RPA将业务流程和处理规则固化下来后,也就意味着业务人员在业务办理中的自主控制力就会降低,而随之带来的业务灵活性和及时应变性的问题。当然还有效率、风险、安全、IT建设周期等其他维度来判断一个流程是否需要自动化。通常得到的结论是,那些重复执行且工作量大的工作一定是相对人力成本比较密集的流程,越多的人执行这样的流程,规则越不会轻易调整,也都属于比较稳定的流程,将这些流程进行自动化所带来业务收益通常也会更大。这也就是为什么RPA首先应用在业务对外外包服务和企业内部的共享中心领域。
总之,RPA用于那些具有明确业务规则、重复执行且业务量较大的相对稳定的业务流程的自动化处理。
关于第三个问题,流程可以被RPA实现到什么程度的自动化?
如上所述,RPA模拟人类实现用户在计算机中的操作行为,那么流程中只要涉及到用户界面的操作过程就都有可能被自动化。首先表明,我们所谈的流程自动化,并不指的是流程100%的步骤都实现了自动化,也就是说流程中的部分环节仍然难以被自动化技术所实现或者技术实现成本过高,人类员工仍需要通过采用手工方式完成他们的工作。但是随着技术的进步、推广和普及,以及企业管理的成熟度水平提升,自动化的比例自然会逐步提高。这也是为什么一些企业在自动化比例不是很高的情况下,也决定开始尝试使用RPA技术,就是因为只有通过实际的应用过程才能充分了解实施过程中的风险和问题,培养自身的能力,构建相匹配的团队,为了将来更大规模的RPA应用来做准备。可以预想到,在开始使用RPA时,由于自动化比例低,更多是是由软件机器人来配合人类来完成工作,而发展到未来,随着自动化比例的升高,可能就会颠倒过来,是由人类来配合软件机器人完成工作。
由于既然不是100%的自动化,人类和RPA之间就会产生协作,也就必然产生一种全新的与软件机器人的协作方式,实事上产生了人、软件机器人、应用软件三者之间的协作,如下图所示:
其中我们最熟悉的就是人使用应用软件的方式,人通过用户界面UI来操作应用软件(Input),应用软件处理后(Processing),再将结果反馈给人(Output),就是常说的IPO,这也是所有软件工程领域中,包括需求人员、需求分析人员、设计人员、开发人员和测试人员共同遵循的一套话语体系。由于软件机器人是模仿人类的操作,Bot使用应用软件方式就和人类似,而不同的是由于Bot也是一种软件,它可以选择不去操作UI,而是通过Service或API来直接调用应用软件。
那么人和软件机器人如何协作呢?人使用软件机器人有三种方式,第一种是手工触发,即通过手工方式随时随地的启动一个Bot让它开始运行,既可以启动本地电脑上的Bot,也可以启动远程的Bot。第二种是通过人们事先编排好一个机器人工作日程表,让Bot按照这个日程表来工作,可以是在某日某点某刻Bot开始运行,也可以当上一个Bot运行完成后,这个Bot再开始运行。第三种是Bot按照人事先设定好的规则来启动执行,例如收到一封邮件,订单量超过30%,某员工不在岗等等。然后,在Bot执行任务完成以后,将结果反馈给人类,或者Bot并不需要完全执行完,而是执行了一部分步骤,再将其余的步骤转交给人类继续完成。不单是人可以调度软件机器人,应用软件也可以反过来采用Service或接口的方式来调用Bot启动。举个RPA已经可以实现的有趣例子,企业中的员工可以通过手机上的app启动在办公室里某台电脑中的软件机器人,由Bot操作电脑中的某个应用软件来完成任务,完成任务之后,由Bot再通过微信的方式将完成结果发送给该员工。
总之,我们说RPA不只是单纯的技术命题,而是创造了一种新的技术应用模式,甚至是人机交互方式。