RPA automates business workflows, or clerical processes, by emulating human interaction within a graphical user interface (GUI). While the acronym RPA stands for robotic process automation, there are no physical, Boston Dynamics-style robots involved here – the “robots” are software agents that, like all software, do work in a digital space, processing inputs and data.
For example, an RPA engineer can look at a series of tasks taken in a GUI, such as cursor moves and buttons clicks, formulate that series of actions in an RPA wireframe that translates to code, so that those tasks can be performed without human intervention in the future. That is the ideal scenario, in any case.
RPA can be optimized for some GUI actions by applying machine- and deep-learning algorithms to perception problems, like recognizing a button or an edit field. Given the graphical nature of RPA, deep learning’s image recognition capabilities are suited to some sub-tasks in RPA.
Machine learning models can be inserted into RPA workflows to perform machine perception tasks, like image recognition: tasks that the human brain can perform in under a second, whose output can be plugged into a larger flow of business logic.
RPA attempts to solve two essential problems:
1) Not enough software engineers in the world exist, and RPA gives non-coders the tools to create software-like workflows using wireframes; i.e. a GUI. This is an interesting problem: How do you convince non-coders to enter into a conversation with a computer to create more value? How do you find other pools of talented people, outside of software engineers, who are able to construct flows to process data? So far, the two tools most responsible for offloading work from software engineers to other demographics are spreadsheets (Visicalc, Lotus and now, pre dominantly,Excel); and Python, which is most interesting in the way it gives smart people untrained in software engineering a set of powerful computational tools. In any case, RPA aspires to do this as well.
2) RPA allows you to “code against a GUI”. What do I mean by that? Not only does RPA give its users a GUI interface in which they can manipulate and arrange the steps in their data-processing workflows, it also allows them to interact with other pieces of software through their GUIs, as opposed to APIs, where code hits code. This is important, because access to APIs can be restricted in ways that access to GUIs is not. Building software that relates to other software through its GUI, while it seems absurdly inefficient, actually allows us to capture human behavior in ways that API-focused code may not. And the whole point of RPA is to capture the human behavior driving business processes so that it can be automated.
Talent With regard to RPA’s first purpose, the essential question is: when you give untrained clickers the power to create automation workflows that resemble software, how do you ensure that their output is maintainable? And if it is not, how do you expect your business to depend upon a hairball of unmaintained code?
There are two parts to the problem: one is technical, and we have large private companies touting their solutions already; the other is social, and we do not have a good solution other than the slog of training non-coders in new behaviors, like “thinking in algorithms.” Which takes us back to the difficulty of finding good software engineers in the first place, the problem that RPA was supposed to solve. That is, skilled RPA engineers are scarce.
In addition, for a business process to be automated, it must be deterministic. To the extent that a business process is deterministic and standardized, RPA or other software solutions can automate it. (Entire startups like Pipefy exist to standardize business processes so that they will be ready for RPA.) But much of business life, and indeed the essence of human work, is not deterministic. Humans are under-rated. We know how to respond to new events that we were not specifically programmed for. We often know how to handle corner cases and exceptions, how to bend the rules when necessary to accomplish a larger goal. Software and RPA can’t do that.
Integrations GUIs are tricky. Coding against a GUI contains hidden pitfalls that APIs don’t. What if a button moves? What if the software company whose GUI you’re coding against starts running A/B tests? How do you code against the “same” GUI on all possible screen formats? There are CIOs at Fortune 500 companies who acknowledge that only 60 percent of their robots are actually functioning at any one time.
Speed RPA doesn’t really run on computer time, not as most software engineers understand it. In other words, it is slow, because RPA software vendors are competing with human response times that occur on the scale of seconds, rather than software response times, that ought to occur on the scale of microseconds. So RPA is inefficient, from a software perspective.
RPA and AI are two horizontal technologies that are distinct in their goals and interfaces.
RPA is intended to save business and white-collar workers time. RPA is built by RPA engineers via a GUI, which they use to arrange the sequence of tasks RPA automates. For the most part, RPA is based on rules, or if-then statements that tell a program what to do under certain conditions.
AI is an umbrella term that includes rules engines (think TurboTax, a pile of if-then statements that reflect deterministic flows). But that’s not the exciting side of AI, and it’s usually not what people mean when they refer to AI. Usually, they are referring to machine learning or deep learning; i.e. programs that are capable of rewriting themselves in response to their environment or the data they’re exposed to.
AI is a horizontal technology that makes decisions about data. Sometimes it makes decisions, or predictions, based on rules that humans manually wrote (rules engines); sometimes it makes decisions based on a bunch of numeric parameters that it arrived at after much trial and error (machine learning).
Advances in AI allow us to make more accurate decisions about the data we’re looking at. In some cases, that accuracy can surpass human accuracy.
RPA and AI overlap in that you can employ AI as a component within an RPA workflow. More and more RPA vendors are using AI in the products they ship. Useful applications of advanced AI in RPA could include image recognition (in order to recognize images on a screen more reliably) or text analysis. In addition, deep reinforcement learning can be embedded in RPA workflows or simulations of business processes in order to maximize a well-defined business goal.
Additionally, major software vendors such as Microsoft are offering RPA functionality adapted to their products. In the case of Microsoft, the product is Flow.