Best Practices in developing RPA
As automation become increasingly popular among businesses, the needs for Robotic Process Automation (RPA) developers are in high demand too.
It doesn’t matter whether it’s one developer or a team of multiple developers, a set of best practices is essential to serve as rules of thumb in developing RPA to ensure optimal efficiency and results.
A quality automation originates from good design. While developers need to ensure the process is stable, rules-based, and repetitive, they too need to know the specific details, from every single step down to the keystrokes level. By creating Process Design Document (PDD) to capture workflow required details, it allows the developer/business analyst to capture the As-Is workflow and To-Be workflow, a visual piece of information that is shareable to stakeholders for them to get a better understanding of how the process is being automated.
While working on the PDD with stakeholders, it is also an opportunity for both parties to work together to optimize the workflow process in 2 ways:
- Don’t be surprised that the same type of report can be created in a different way, different format by each individual, simply because they were “thought” to generate the report in that way. By optimizing the process with automation, the stakeholders can review the process, pick the most effective process method, and expect a standard set of reports whenever reports are generated by bot.
- Whenever As-Is workflow is captured, developers can further look into the workflow and review if it is possible to further optimize the efficiency with linear, iterative, or transactional process that is better suited for automation.
Some business processes can be complicated, containing multiple tasks, and each task consists of a few hundred of steps. For example, when an executive generates a report, he or she is required to login into multiple systems and extract daily reports, extract certain information from the report, and then combine the extracted data to become the final report. When developing such complicated automation, it is recommended to implement modularity by breaking down each task into a dedicated workflow, as this allows it to split the development to multiple developers and each developer can manage their own testing efforts.
On the other hand, implementing modularity improves overall automation maintenance efforts too. Whenever there are any error occurs in the automation, the maintenance team know where the error occurs based on the log file, troubleshoots, makes necessary changes and tests only on the module instead of running a test on the entire modules, thus shortening the overall troubleshooting time and increasing maintenance’s team efficiency.
When automating a complicated business process, developing and delivering the entire automated process could take some time and might take even longer time when there are limited resources available. For example, an executive requires to generate a weekly production report in the combination with daily reports, weekly reports, and weekly outstanding reports. When planning and developing such a complex process, developers can modularize the process and create project phasing, which splits the automation project into different implementation phases. By doing so, automation that is completed in that phase can be put into production and key stakeholders can already enjoy the benefit stage by stage, instead of spending a longer time waiting for the entire automation to come in place, which might cause them to lose patient or lose interest in automation, wrongly assume that their processes are difficult to automate.
Store Reusable Components
While analysing Process Design Document, developers should be able to identify some common steps among business processes, such as logins, email, housekeeping and saving documents. These steps are common in many businesses process and should store these reusable components in a common library. This common library can support developers in developing more efficiently and making them easier to support in the future.
Ignoring workflow readability is a common mistake made by many new RPA developers. Workflow readability in this case means how easy it is for other developers to understand what the software robot is being programmed to do. Without good readability, developers often lost track of the processes, especially when dealing with complex workflow. A workflow with good readability can help reduce time in troubleshooting, debugging and maintenance too.
A few key points developers can take note in maintaining good readability in automation workflow:
Create Configurable Files
Can you ever imagine that process owner requests for minor changes like a change of directory in the daily report download or a change of email recipients once a week? Such changes are not difficult to make, but definitely not productive as changes are too frequent and cause inconvenience for both the developer and process owner.
To increase the automation flexibility, developers can put change-prone settings (file directory, file name, email recipients, URLs) in a configurable file. With this, process owner has the flexibility to make setting changes by themselves almost instantly instead of relying on developers.
Logs are time-stamped files that contain informational events, error alerts or warning messages relevant to automation. Some developers might not realize the importance of logging, thinking that it is just adding more text into log file that basically nobody is going to refer to.
However, by doing proper logging in automation, it can help developers facilitate troubleshooting, where they are able to quickly determine, or at the very least get an idea of why the automation failed without the need of step by step debugging. Besides that, Logging can help monitor the automation in the production environment, where it helps in recording extensively what the bot had completed, or what kind of error occurred. Those are pieces of information on how the bots are working in production and how developers can further optimize the automation.
Ideally, we often wish that automation can run smoothly without any errors. However, the reality is that no matter how carefully an RPA bot is designed and developed, it is unlikely to work all the time. Hence in RPA, it is extremely important for the bots to be able to handle errors and exceptions. Errors and exceptions such as login failed, file or directory not found, application crash or launch delayed, and random windows pop up should be recovered by the bot to continue with the process or transaction. Developers can discover the possible exceptions from the process owner when they are executing the task manually and include it in error handling. For unexpected errors that are not recoverable, it is recommended to log the error messages and notify the business owner or developer via email.
Have you ever imagined that you fall into a scenario where you are developing automation without testing, and then realized that there are bugs in between workflow only after the development is completed? When this happened, you are then required to do step by step debugging of the workflow to find out which part is having bugs that require changes, or even worst scenario, which to redesign the entire workflow. This is wasting the time and efforts of the developer and might impact the project delivery too.
To avoid falling into such a scenario, it is recommended to perform tests as frequently as possible, like after every 3 – 5 steps added. This is to test if there is any bug in the added steps and to ensure that the added steps are working fine so that the automation development journey is smooth and without many hurdles.
Quality Test Data
While developing automation, most of the time developers are not equipped with actual data due to data security and privacy purpose, hence developers need to rely on test data for development. A set of accurate, relevant, and high-quality test data is vital for automation development, as it will determine the quality of automation, whether will it work as expected, and it also helps in catching bugs. If the automation is developed based on poor-quality test data, it is very likely the automation will hit with plenty of errors during production, or failure of entire automation.
Besides the accuracy of test data, it is also important for developers to look into the variant of data, should there is any (e.g. Invoice processing). If the automation is requiring taking in various types of input data, then developers to collect enough test data that cover all the possible varieties of input data in making sure the automation is able to handle a variety of data input in the production environment. Collecting a high volume of quality test data is essential for developers too, as this allows them to simulate the automation performance before deployment to production.
Use Agile Development Approach
While developing automation, it is recommended to adopt Agile development approach, especially when developing complex automation that involves multiple developers working on the same project. Agile development approach is based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-function team, and the focus of the approach is mainly to deliver individual pieces or parts of automation instead of the entire automation.
Read more Robotic Process Automation articles in our Knowledge Centre. For more information about RPA, feel free to email us at firstname.lastname@example.org or contact us via the website chat.
Leave A Comment