Quis custodiet Ipsos robots (Who watches the Robots)?
Each generation has its cult favorites in terms of Role Models, Superheroes and of course – Movies.
Growing up in the nineties, the Terminator Series featuring Arnold Schwarzenegger left an indelible impression on me. Apart from making me a huge sci-fi fan, it also left the lifelong conviction that robots are going to take over the world one day. Now two decades later, recent developments in the Artificial Intelligence space is adding more fuel to these thoughts and compelling me to ask the question: are we really taking extra care to ensure that these bots are performing only the intended tasks and nothing more?
Well, it may be decades before we the collective humanity have to worry about Artificial Super Intelligence inching towards world domination, but presently there are another set of software robots which are silently taking over the Business Process World by automating the manual, repetitive tasks that are typically done by humans. The domain and practice of Robotic Process Automation (RPA) may still be in its infancy, but it’s definitely considered a game changer when it comes to Software Automation.
Similarities between RPA and Test Automation
Having worked on the Test Automation field for quite a long time before progressing to RPA, one of the first things we have realized is the similarity between RPA and Test Automation tools. Even though both these categories of tools are built for different purposes, the underlying technologies and the way they interact with the business applications are very similar. Of course, the RPA tools are intended to be used in production where an entirely different set of capabilities and features are required (when compared to test automation tools which are primarily used in pre-production environments). However, when it comes to script/workflow development, the programming approach followed is similar.
The RPA tools are marketed in such a way that there is zero or minimal programming involved and most processes can be automated just by using drag and drop features. Whilst it is true that these tools use a visual approach rather than writing plain code in an IDE (Integrated Development Environment), the business processes can get quite complicated with lots of complex logic and data. Therefore, the robustness of the solution largely depends on applying solid programming principles. Also, the process automation using RPA tools is not just the script development, but it also has the design phase, coding phase, testing phase and the maintenance phase or in other words, a typical Software Development Life Cycle (SDLC).
When it comes to software development, it doesn’t matter if the programming is done using visual tools or an IDE, the development standards and associated processes naturally come into place. It is also imperative that all the things we create, including the design and scripts are properly reviewed and well tested. Testing should not be an activity that is done as an afterthought, but it should be considered as an important step which helps in determining that the solution is working as expected and that there are no unintended consequences when unexpected scenarios occur.
Scalability and Sentience
It also helps to think about how these process automation can be scaled, what happens to the scripts when there is a major version change to the business application and how custom frameworks can reduce the maintenance overhead. This feedback control process is required for continuous improvement and scaling. Most importantly, we do need to safeguard the bots’ behavior or in other words have enough checks and balances built into the process to ensure that sufficient watchmen guard the robots so that we don’t get any surprises in the future when the machine attains sentience.