停止追赶最新的 RPA 趋势

简介: 本文最初发布于anupam.de博客,由 InfoQ 中文站翻译并分享。

我做了 4 年的 RPA 开发者——2017 至 2021 年。在 2019 年底,我做了一个重要的决定,使我入选为UiPath's 2021年62位MVP之一。这个决定就是停止追赶最新的 RPA 趋势,转而专注于掌握传统的软件开发。

当然,一开始不是这样的,在我作为 RPA 开发人员的头两年里,我坚持只使用本地 RPA 工作流来实现流程自动化。我不是 IT 背景出身,所以我认为传统的编程和脚本不适合我,我将 RPA 视为一种与基于文本编程不同的编程范式,并拒绝偏离它。同时,我震撼于 RPA 的强大和上手之快速,这也让我看不到它的局限性。

RPA 市场规模每年都在呈数量级增长,现在的 RPA 平台比 2017 年强大得多。这使得作为一名 RPA 开发者,更倾向于“专攻”RPA,而不是脱离它的边界。这里列出 3 个理由来简述为什么这种想法是错误的。

为什么只局限于“RPA”是错误的

1. 基于 GUI 的自动化终归是一种妥协

任何软件过程的自动化,本质上都需要使用一系列命令将数据从一个地方移动到另一个地方。过去几十年里,程序员已经完善了命名贴切的命令行执行这些操作的方法。然而,为了将计算机的使用范围扩展到日常用户,我们创建了一个更直观的用户界面——有鼠标指针、按钮、文本框、触摸屏等等。

进入图形用户界面,我们现在太习惯使用 GUI 了,以至于我们认为它们是理所当然的。而作为程序员,我们需要提醒自己,每次使用 GUI 时,计算机都会执行数字体操来满足我们的需求。每次你点击屏幕上的一个按钮,计算机都会投入巨大的精力把这个手势转换成一个命令。它必须:

- 在屏幕上正确呈现按钮

- 跟踪鼠标指针的位置

- 注册按钮的点击

- 执行相应的命令

或者,用一行程序代码发出命令,就像用计算机的母语说话一样,高效而健壮,信息损失最小。

大多数原生 RPA 自动化都是基于 GUI 的,花点时间让大家了解一下,基于 GUI 的自动化,包括指示机器人通过 UI 与另一个程序通信,这类似于强迫两个相同母语的人用猜字谜的方式来进行交流。基于 GUI 的自动化终归是一种妥协,因为在底层总是有更有效的方法来执行相同的任务,这引出了我第二个理由。

2. 原生 RPA 流程在生产环境中很脆弱

在很长一段时间里,我没有意识到基于 GUI 的自动化是多么的脆弱,因为我在自己的计算机上实现了每个过程的自动化,所以我无法预料在生产环境中运行它会有什么不同。当我转到一个在生产环境中维护 RPA 流程的团队时,一切都变了。我的团队超过 80%的时间都花在了修复损坏的流程上,这使我们几乎没有时间自动化新的流程。这种脆弱性主要源于生产环境总是与我们开发自动化的笔记本电脑和测试系统不同。一个由 100 个连续步骤组成的自动化过程的“强度”和它最弱的步骤一样,只需对 GUI 进行最小的更改就可以破坏整个过程。

作为一名 RPA 开发人员,你自己可能也经常遇到这种情况。我还没有看到过一个 RPA 过程,在生产环境第一次就能够完美地执行。当然,人们可能会认为这种情况正在改变,随着智能选择器和计算机视觉等 RPA 技术的进步,RPA 流程现在可以更灵活地应对 GUI 中的变化。这又引出了我第三个原因。

3. 商品化

在前 RPA 时代,要自动化一个 Web 应用程序,你需要检查浏览器上的网页,筛选复杂的 HTML 和 CSS 来找到一个可靠的选择器;而使用 RPA,开发人员只需单击元素即可检索其选择器;在下一次迭代中,我们有了支持正则表达式并包含一些模糊逻辑的智能选择器;再下一个飞跃是计算机视觉——RPA 软件现在可以像人类用户一样,查看屏幕,识别文本字段、单选按钮和复选框。

随着 RPA 平台的快速成熟,RPA 工作也随之商品化。RPA 平台实现自动化越容易,所需要的员工技能水平就越低,这种趋势类似于餐饮业的工业化,在过去,你需要雇佣一个厨师来经营一家餐厅;然而,工业化让你有可能和一个中学辍学生经营一家快餐店。是的,厨师在当今世界仍然很有价值,但这是因为他们磨砺技艺,不断地改造自己。

解决办法

在我 RPA 职业生涯的早期,我的错误在于没有认识到这些因素,下面是我希望自己早点采取的 3 条措施。

1. 像软件工程师一样思考

2019 年 12 月,我读了 Bob C. Martin 的《代码整洁之道》,它改变了我看待计算机编程的方式,让我能够从一个经验丰富的软件开发人员的角度来检查一段代码。我注意到一个人不仅需要解决眼前的问题,还需要为下游可能出现的二阶和三阶问题进行设计。我还意识到,在本质上,RPA 开发与优秀的传统软件开发并没有太大的区别。此外,比 RPA 早几十年的软件工程技术已经解决了 RPA 开发人员刚刚意识到的大多数问题。

除了阅读《代码整洁之道》和《笨办法学Python 3》等书籍外,还有助于与软件工程师讨论他们如何实现自动化,我经常会向我的开发朋友解释我正在自动化的场景,并问他将如何处理。这帮助我发现了基于 GUI 的自动化的绝佳替代方案,这也引出了我的第二个建议。

2. 学习使用传统编程语言实现自动化

所有 RPA 平台都构建在传统编程框架之上,大多数 RPA 自动化是在. NET 平台上完成的,所以在底层都使用了 C#或 Visual Basic。从简单的工作流开始,尝试用. NET 语言绕过 RPA 平台,通过这种方式,你可以更深入地理解 RPA 软件的工作原理。此外,你还会意识到,在某些情况下,几行代码就可以实现与复杂的 RPA 工作流(跨越你监视器的两个长度)相同的最终结果。

获得更多经验的另一种方法是为你最常用的 RPA 平台创建自定义活动。这段经历会让你对它内部运作有宝贵的洞察。

我推荐一个极好的学习 Python 自动化的资源是“Automate the Boring Stuff with Python”。

3. 集成 RPA 与传统软件

一旦你开始像软件工程师一样思考,并向你的工具包中添加一些编程技巧,你就可以构建优雅的流程,将 RPA 平台的集中编排与传统编程的健壮性和效率相结合。使用.NET,你可以在大多数 Windows 应用程序上自动化任务,你可以映射网络驱动器、集成 DLL,创建自定义活动,所有这些都将加速你的 RPA 代码。要与 SAP 集成,请参阅Stefan Schnell的SAP Scription Tracker及其神奇的工作原理,你可以通过构建CI-CD管道来自动化 RPA 部署。最后一个集成是我最感兴趣的场景,将继续成为我对 RPA 社区最有价值的贡献。

小结

我上面写的一些东西可能会让人难以接受,RPA 供应商和业内人士不太可能提出这样的观点,而我自己也是在从 RPA 职业生涯中走出后,以全新的眼光回顾这个行业,才能清楚地看到这一点。

此外,我的建议是回到传统的软件开发,而不是紧跟最新的 RPA 趋势,这可能会显得过时。但是,如果你打算以长远的角度看待作为开发者的职业生涯,就需要掌握那些经受住时间考验的传统技能。

真希望我能早点意识到这一点。

相关实践学习
基于阿里云短信服务的防机器人验证
基于阿里云相关产品和服务实现一个手机验证码登录的功能,防止机器人批量注册,服务端采用阿里云ECS服务器,程序语言选用JAVA,服务器软件选用Tomcat,应用服务采用阿里云短信服务,
目录
相关文章
|
4月前
|
传感器 安全 测试技术
全球宕机:CrowdStrike事件始末
CrowdStrike是一家领先的网络安全公司,但在2024年7月因一次软件更新失误引发了全球大规模宕机事件。此次更新导致数百万台Windows设备蓝屏,影响了航空、金融等关键行业,造成巨额经济损失和企业运营中断。技术分析显示,故障源自CrowdStrike终端检测与响应Sensor的一个逻辑错误,使得系统尝试访问无效内存区域而崩溃。CrowdStrike迅速采取措施,停止并回滚问题更新,同时启动第三方安全审查以加强质量保证流程。此次事件不仅重创CrowdStrike的股价和声誉,也让业界深刻反思软件更新和系统弹性的重要性。
139 0
全球宕机:CrowdStrike事件始末
|
4月前
|
测试技术 持续交付
持续部署的内涵和实施路径问题之发布时间超过8小时会带来的问题如何解决
持续部署的内涵和实施路径问题之发布时间超过8小时会带来的问题如何解决
Atlassian 发生数据中断,预计可能会持续两周以上 ​
Atlassian 发生数据中断,预计可能会持续两周以上 ​
50 0
|
vr&ar 开发工具 图形学
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢
|
NoSQL Java 应用服务中间件
时间驱动:探索计时器方案和革命性的时间轮技术
本文将带领你深入了解计时器的原理和应用场景,并详细介绍时间轮技术的革命性特点。文章首先解释了计时器的概念和重要性,以及在各种应用中的广泛应用,如任务调度、事件触发和性能监控等。接着,文章引入了时间轮作为一种创新的时间管理工具,其能够以环形结构高效地管理和触发定时任务。你将深入了解时间轮的工作原理、数据结构和相关算法,以及如何利用时间轮提高应用程序的性能和响应能力。
123 0
|
设计模式 运维 负载均衡
🎖️怎么知道我的能力处于什么水平?我该往哪里努力?
现在的你,处于编程生涯中的哪个等级? 毕业后进入社会,我像大家一样感到恐惧和不安。有没有想过你职业生涯的下一步应该是什么呢?也许它可以帮助你找到下一个目标。
107 0
|
存储 SQL 缓存
深度 | 每秒1.4亿次!再度刷新TPS记录的PolarDB如何应对双11“尖峰时刻”?
2020年是云原生数据库PolarDB全面支撑天猫双十一的第二年,天猫交易、买家、卖家以及物流等系统在双十一期间基于PolarDB为亿万客户提供了顺滑的体验。同时,PolarDB还刷新了去年由自己创造的数据库处理峰值(TPS)纪录,今年TPS峰值高达1.4亿次/秒,较去年提升了60%。
14232 0
深度 | 每秒1.4亿次!再度刷新TPS记录的PolarDB如何应对双11“尖峰时刻”?
疫情过后,我们的工作模式可能会产生哪些变化?
目前企业和个人的雇佣关系是1vs1的,个人的工作环境完全受限于企业,企业通过付出一定成本来达到固定办公场所内的人员管理,有的企业为了能让员工老老实实的在自己办公位上开开心心的工作,不惜购买昂贵的人体工学椅和升降办公桌,日常也有各种花里胡哨的下午茶和补贴,简直是“爱的供养”,当然,这肯定是优质企业,值得尊敬,但这不是重点,重点是:他们为什么要这么做呢?又不是搞慈善的...
928 0
疫情过后,我们的工作模式可能会产生哪些变化?
|
SQL 新零售 存储
【双11背后的技术】永不停止的脚步——数据库优化之路
作者:佳毅 前言 2016年双11已经顺利落下帷幕,在千亿电商流量的冲击下,集团数据库整体表现完美。完美表现的背后,隐藏着数据库团队对技术的执着追求。这是一个什么样的团队,他们究竟做了什么,是什么支持着双11这一全民狂欢的数字一次次突破?笔者以一个亲历者的角度来给大家揭开双11背后,阿里巴巴数据库团队的神秘面纱。
5812 0
|
弹性计算 容灾 大数据
黑科技揭秘:阿里云如何做到从业务宕机到恢复业务运行只用一分半钟时间
企业关键业务宕机会带来非常大的损失,而传统的自建容灾方案成本高昂运维复杂,因此高性能的云容灾服务正在成为企业业务持续性保障的优先选择。混合云容灾服务(HDR)-关键业务型的演示完整呈现了将本地服务器上运行的报账系统实时容灾复制到阿里云,并在出现宕机后在云上快速拉起恢复业务的全过程。
3386 0