What is Robotic Process Automation (RPA)? Even with over 30 years experience, it was a new term to me when I same across it in the Tech Pro Unicorn episode (#114). Thus I wanted to investigate and share my understanding - and indeed, unexpected personal history.
Or listen at:
Published: Wed, 19 Jan 2022 17:03:24 GMT
Hello, and welcome back to the Better ROI from Software Development podcast.
In this episode I want to talk about the term Robotic Process Automation, or RPA.
Now, with my 30 years of IT experience, I have to admit it wasn't a term I was aware of before going on the Tech Pro Unicorn podcast. It was a new term to me, so I want to take some time to just go through it with you so that we both know what it is.
Wikipedia describes is as:
"Robotic process automation (RPA) is a form of business process automation technology based on metaphorical software robots (bots) or on artificial intelligence (AI)/digital workers. It is sometimes referred to as software robotics (not to be confused with robot software).
In traditional workflow automation tools, a software developer produces a list of actions to automate a task and interface to the back-end system using internal application programming interfaces (APIs) or dedicated scripting language. In contrast, RPA systems develop the action list by watching the user perform that task in the application's graphical user interface (GUI), and then perform the automation by repeating those tasks directly in the GUI. This can lower the barrier to use of automation in products that might not otherwise feature APIs for this purpose.
RPA tools have strong technical similarities to graphical user interface testing tools. These tools also automate interactions with the GUI, and often do so by repeating a set of demonstration actions performed by a user. RPA tools differ from such systems in that they allow data to be handled in and between multiple applications, for instance, receiving email containing an invoice, extracting the data, and then typing that into a bookkeeping system."
Now, at this point, you may be thinking there's a relationship between Robotic Process Automation and Low-Code/ No-Code that I talked about in the last episode. And you would be correct.
The Harvard Business Review article that I referenced in the last episode actually goes on to say:.
"Robotic process automation (RPA), for example, is one of the fastest-growing categories of LC/NC systems. Using rules for simple decision-making, it allows users to design automated workflows that can reach into multiple information systems. This is excellent for automating back-office administrative processes. Some RPA tools offer advanced features that aid discovery of automation opportunities or connectors to AI tools to create what some now call "intelligent" or "augmented" automation. RPA would generally be classified as low-code, but there are "light" versions of the software that are no-code, which are closer to "plug and play" but offer fewer options for customization and scalability."
Again, I include a link to that article in the show notes.
So even though the term was new to me, I suddenly realised, unbeknown to me, I've been using this technology for almost 30 years.
One of the earliest times I've used technology like this was actually quite early in my career. When I first started my career, we where using green screens, and depending on your age, you may or may not know what I'm talking about. These were text only displays, no windows, no icons, no web browser, no mouse. Everything was text on the screen, and it would take commands by me typing it in on the keyboard.
As an aside, these text based systems are still very much exist on modern computers. We just generally use the pretty windows and the mouse. Ask any techie and then we'll show you how to access your computer in text only ways.
So at the time, one of the key activities in our organisation was for a raft of people to type from a printout into an application in one of these green screens. It was a slow and error prone task, and as such took a lot of people to complete.
Then I found a new system, new to the software industry, that would learn what I did and allow me to make it repeatable. It would track the keyboard presses and what happened on the screen. From that, it would provide a list of actions to repeat what I had done. And that list could then be amended to take data from a file and run those same actions.
Thus, I could pass it a file of data that needed to be typed in, and it would run through that list through the list of actions and repeat for each typing in the relevant data. It saved a considerable effort, with it being much faster. I'm much less error prone.
This was early RPA.
And more recently, I've been finding that I'm using a lot in automated testing.
I've talked previously about the benefits of automating the testing of our systems while there is an investment in making those tests. The benefits outweigh the cost. You can run it as often as you like. It's cheaper. It's reliable.
But go back maybe 10 years, it wasn't that easy.
Today we can automate tests against web browsers, mobile applications, desktop applications. We can simulate user actions. And this has been as a desire of the software development industry wanting to get the benefits of that automated testing. Thus, over the years, the ability to simulate those user actions have got better and better - so much so that because we can simulate uses it in our automated testing, we can simulate users in the production system.
For me, RPA has benefited greatly from the advancements that the software development has made to improve the quality of their products in testing - which now allows for much greater RPA.
In this episode, I've introduced you to Robotic Process Automation (RPA).
I've talked about my own history with it and how I've benefited from it in the past, and continue to do so.
Like the last episode, Low-Code/ No-Code, it's a useful tool to have. But for me, I don't think it's a long term substitute for building better systems.
The example I gave for the green screen entry; yes, it greatly improved productivity. But it was just a stepping stone for a proper system that allowed better integration between disparate systems. That better integration took it much further than the RPA was capable - it was able to produce things at a much faster speed, cheaper cost and greatly increased reliability.
So while it can be a useful tool to have, always have a view on how you would intend to retire it out.
Thank you for taking the time to listen to this episode. I look forward to speaking to you again next week.