Software robot developer
A software robot developer creates digital agents for robotic process automation (RPA), test automation, application monitoring, or some other use. Tens of thousands of new jobs are predicted to be created in the RPA industry. Most of these will be for developers.
The demand for software robot developers is growing. Many companies will employ teams of software robot developers to build and operate their automated workforce. Other organizations hire external developers to offer them automation with a "robotics-as-a-service" model.
A software robot developer is a mix between a coder and a business analyst. She communicates with business users and builds RPA solutions.
Knowing everything is not necessary, but having some of the following skills will make you a productive software robot developer.
The robot will need detailed instructions on how to complete the process and how to handle failures. You need to instruct your robot to verify all the prerequisites. Are the required credentials available? Are the process input sources available (e.g., Excel file, database, email)? The robot needs to be told in detail when it is safe to proceed from one step to another. A human can figure a way out of an unexpected situation. A robot needs precise and unambiguous instructions on how to proceed.
Well-written automation scripts communicate their intent with clarity. You want to use terms familiar to your business to avoid misunderstandings. The process steps should have clear, human-readable names. Non-technical users will be able to review scripts written in plain language.
A software robot developer knows the best practices for software development. These include clean code conventions, version control, peer-reviews, and release management.
In the context of software or information modeling, a happy path is a default scenario featuring no exceptional or error conditions. For example, the happy path for a function validating credit card numbers would be where none of the validation rules raise an error, thus letting execution continue successfully to the end, generating a positive response. - Wikipedia
Running automated processes in production environments should be approached carefully. The robot should be able to complete the process when everything works, and there are no exceptions or errors. However, this is not enough.
Imagine a robot that assumes that all of the invoices it fetches from emails are valid and contain no errors. The robot reads the data from the invoices and enters the data in your business systems. What if the numbers don't make sense? What if this invoice has already been processed?
A robot needs to be very attentive to detail. Always assume that there is something wrong with the source data, or that the next step in the process will fail due to the underlying system having a stroke. Think of the assertions that need to pass for the robot to be able to proceed safely.
Has the invoice been processed yet? If not, ok to proceed. Otherwise, notify someone of the duplicate invoice. Do the numbers in the invoice make sense? Ok to proceed. Otherwise, mark the invoice for manual processing.
Depending on the number of processes running in production, implications for having a "happy path" robot doing damage might incur great costs. Use a defensive approach when automating the processes. What do I need to verify or assert to proceed with this process safely? Think like a programmer. Wander away from the happy path.
A software robot developer makes sure that each process is either executed successfully or failed gracefully. It takes practice to implement production-ready automation that can recover from unexpected situations. Patience is a virtue of a software robot developer. It might take several iterations to get the robots in a state where they are reliable.
You could choose a ready-made framework where the automation is implemented using a graphical user interface (GUI) or a framework where the automation is written in a high-level scripting language, resembling written English.
Commercial solutions typically incur costs related to licensing and the number of robots or processes. Open-source frameworks are typically free-to-use and allow for implementing robots without licensing costs. Commercial frameworks might be locked to a specific vendor and to a specific feature set. Open-source frameworks are collaboratively owned and not locked to a particular vendor.
One open-source alternative is Robot Framework. Robot Framework scripts resemble written English. Robot Framework scripting does not require low-level programming skills. Extending the framework is possible using languages such as Python. This provides flexibility. Robot Framework scripts are plain text files that are easy to version control.
The delivery of an automated process from an idea to production requires many levels of expertise, both business and technical. Working as a full-service automation consultant, providing your services to other businesses, you need to have knowledge of the full software robot delivery process to deliver effectively.
Working for a company where the process analysis and documentation are provided by someone else, it is still worthwhile to invest time in learning about the full delivery process. You will be able to provide valuable insight and steer the automation process to be even more successful.
To automate a process, you need to know the process. What is the purpose of the process? Is it to complete onboarding steps for a new employee to free HR time for face-to-face interactions? Is it to verify that everyone has input their hours in the tracking system at the end of the month? Is it to extract email invoices, validate them, and input them in another system to reduce manual work and the number of human errors?
Before automating a process, step back and see if it would be possible to simplify it or to get rid of the process altogether.
Return on investment (ROI) is a ratio between net profit (over a period) and cost of investment (resulting from an investment of some resources at a point in time). A high ROI means the investment's gains compare favorably to its cost. - Wikipedia
Is it worth automating the process? Automating a process incurs a cost. Return on investment is good when automating the process pays itself back. The gains might be monetary savings for your business, time savings for your personnel, or reduced response times to customer queries. The process might be worth automating if the gains are positive.