Essential side-skills for RPA Developers
Tags: beginners, career, technology, learning
Published: 2020-10-08 05:43:42

It's likely if you're reading this, you will have heard of Robotic Process Automation (RPA) as being one of the big growth areas within IT along with others that are moving along the ['Gartner IT Hype Cycle'](https://emtemp.gcom.cloud/ngw/globalassets/en/newsroom/images/graphs/Figure%201.%20Gartner%20Hype%20Cycle%20for%20IT%20in%20GCC,%202019.jpg) like Machine Learning/ Artificial Intelligence, Blockchain, Chatbots, Internet of Things.

If you're looking to break into the role of RPA Developer, then chances are you will have come across one of the main software vendors like Blue Prism, UIPath, or Automation Anywhere, and are likely already skilling up in their relevant online tutorials/certifications. 

All of the above platforms offer their own online academies which can be found below:
* [Automation Anywhere](https://university.automationanywhere.com/).
* [UI Path](https://academy.uipath.com/static-page/5).
* [Blue Prism](https://www.blueprism.com/university/).

As with most things in life, the up-skilling never ends, and to be the best Dev you can be you'll want to equip yourself with supporting skills to help expand the number of problems that you are able to solve for and improve the quality of solutions.

So what supporting skills should you be looking to upskill in?
I've laid out below those that have been the most useful in my RPA career, and likely to deliver value to you.


## VBA/.NET

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vl24xeav7lxk4zndxgkk.jpg)


Many of the industries in which RPA tools are seeing the highest levels of adoption such as Banking and Financial Services, Telecoms, Travel and Logistics are also industries that have traditionally been very spreadsheet/database heavy.

While your RPA tool of choice will no doubt allow you to interact with many popular pieces of software you'll come across like Excel and Outlook (since they are built on top of vb.net), this may not be the best approach.

Writing code directly into the RPA tool of choice to automate Excel/Outlook can lead to issues and so often writing macros within Excel/Outlook or scripts within .Net to perform the tasks is a faster, highly scalable, more robust solution. Libraries of VB code can be created and called from the RPA client providing you with a solution that reduces the need for duplication.

Becoming familiar in these languages will help to ensure that you are hitting the ground running and using the right tool for the job.


## Python/Node.js

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/lyg8gb6hn0tqklqyfmgb.jpg)


Often as an RPA Developer you may be required to build tools to support the automation function or to make your own life easier that exists outside of the RPA tools you've become familiar with.

Having a scripting language up your sleeve comes in handy when you're needing to interact with APIs, or need a workaround that the RPA tool may struggle with and will open what is possible for you and your team.

Examples of where this could be used are;
* Interacting with Git, to pull code from your repo to maintain code libraries
* Interacting with JIRA, to create tickets as you encounter bugs
* Kill/Restarting windows processes
	

## SQL & RDMS's

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/aur70nep9oz0qn3zhy5s.jpg)


Creating tasks to automate business processes is great, but as your RPA function mature you will want processes throwing off all kinds of data that you'll want to collect. And what better place to store this than in a database!
And chances are it may end up being you that has to build this solution. 

Some familiarity with how to structure and query databases will serve you well and ensure that you're not stuck as a spreadsheet-only solutioner.

Not only will these skills come in handy for creating your own database, but when working with other teams processes, the best place to pull structured data is from the source! Data provided from scheduled extracts, emails, manually created does not lead itself well to scalable solutions in the long run, and so being able to query the database directly will ensure that you're getting data in real-time, and set you up for success in the future.  

Examples of how these can be used are:

* Managing the audit trails or logs of your processes
* Tracking process status ('completed'/'error'/'yet to run')
* Tracking outputs or metadata created through the running of your processes (process metric performance/etc)


## Business Intelligence


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8le53ffs0qhdu9mkglqq.jpg)


Often you'll be building tools for the business or yourself,  but the out of the box reporting tools with many RPA platforms are not up to scratch, or can't be accessed by those outside of your team without having to fork out for extra licenses. Sure emails can be used to manage alerts or status updates, or you can stick it in a spreadsheet, but we want beautiful data!

Enter the Business Intelligence tools.
Now that you're logging data to a database having the skills needed to connect these to a visualisation tool such as PowerBi, Tableau (just to name two) will allow you, your team, or the wider organization a quick and accessible way of determining the performance of the bots you've worked so hard to create.

The finished product can then be shared with your team or the business within a CMS like Sharepoint.


## JIRA/Confluence/Git or some version control

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/c2becfacbt7sv0nyu5hr.jpg)


Joining any development team you're likely to follow some form of product framework and follow best practice for managing the version control of your code. Enter JIRA and Git. Where would developers today be without these tools.

Much of the performance of automated processes will revolve around good practices for tracking bugs and completing sprint tasks in JIRA and code changes in Git and so it makes sense to invest time in learning the key skills and tools in this space.

From entry-level interfacing through the web front end, you can then progress to writing scripts that can be triggered in your RPA tool of choice for creating JIRA tickets or accessing the git API.


Familiarity with technology environment (Need to be a jack of all trades)
Chances are that as an RPA Developer you'll be the go to person when things don't work, an issue is encountered for the first time, or the team is trying out something new.

Depending on the maturity of the RPA function, you could be needed to do anything from setting up or migrating the RPA Infrastructure and software, managing cloud/virtual machine instances, or writing software management solutions in Chocolatey for consistent re-installs. 

Having an all-round familiarity with where the RPA tools fit into the technology stack,  and where you might be able to assist will make you an indispensable resource to your team.


## Summary

Becoming familiar with your RPA Tool of choice is a great starting point but to maximize your effectiveness across an organization skilling up in support skills will ensure you are able to offer a range of technology solutions.  

All of the above is working with the assumption that you will have business focused people to manage requirements. If you're working face to face with the business and documenting your own requirements and designing solutions then you're also going to want to look at process modelling and documentation.


Hope the above helps you on your RPA journey.
If you have anything to add or you feel I've missed something make sure to let me know!