You Don’t Need to be a Developer to Do This! – The RPA Edition
In the heyday of the Y2K testing craze, Test Automation tools were all anyone could talk about. I recall vendors selling their software directly to businesses with the promise of “You do not need to be a developer to automate”. The idea on the face of it was very simple. “You perform your actions on the screen as you would manually, the software records these actions and converts them to code in the background and VOILA! You have automated tests. Your business analysts can perform automated testing without relying on developers or testers.”
A whole industry of test automation training providers were born out of this trend. QA groups everywhere were set on re-purposing their manual testing workforce to become creators of automated test scripts.
So, when I hear someone say “RPA tools are easy. It is just a visual interface that even my business analysts (aka non-technical individuals) can use”, I wonder, Hmm where have I heard that before?
It’s Not Just Record Playback or Drag and Drop
The reality is that underneath all the recording and modeling capabilities of any of these tools are basic coding principles. An understanding of logic, data structures, and control flow is essential to creating any automation that is reusable and repeatable. In all my years of automation, I have yet to meet a “good” automation developer who does not have a solid understanding and background in computer programming.
We see the fallacy of “even business analysts can produce automation” challenged every time a group tries to put RPA tools in the hands of non-technical users. They struggle with the complexity of the embedded programming constructs within the tools. This is not to say that non-technical users cannot develop automation – it is just that, without proper design and knowledge of software development best practices, these automations are very seldom reusable, scalable or manageable.
Good Developers Make Good RPA Engineers
RPA automation development requires discipline and at minimum a basic understanding of programming control flow and data structures. Furthermore, no tool will ever, out of the box, provide all the functionality you will need to automate your processes. Invariably, you will find that there will be a need to code some custom widgets; be that in the form of code snippets, or specific API integration code. Basic software development skills are required to address these. Junior developers trained academically in object-oriented programming and with a coding background make ideal candidates for RPA engineers.
Plan For Scale Early On
IT groups have honed the practice of application development over decades to a well-defined process and accompany the tools that enforce this process. RPA implementations have their own nuances that require a different mindset. Some of the traditional change control and architectural methodologies and processes can be applied, however, in other areas, new processes and an RPA specific tool-set is required. Successful implementations at scale require the establishment of:
- Scalable and Robust Infrastructure
- An Operations Center (providing both technical and business exception management and support)
So, seed your RPA teams with some good developers and technical architects. Consider using a niche service provider to accelerate the establishment of RPA specific processes and methodologies and train your internal staff on RPA platforms. Remember “Good developers make for good RPA Engineers.”