Six tips for robotic process automation (RPA) developers

Zack Tian Intelligent Solutions Development, PwC Switzerland 27 May 2019

Drawing on experience gathered in the course of implementing 30-plus robotic process automation solutions in a global enterprise since the beginning of 2017, this blog post gives six practical tips for maximising the value from RPA software robots for the benefit of enterprise process owners.
The six tips revolve around making the most of RPA’s flexibility, stability and error handling, RPA solution architecture, robot user account provisioning, security considerations, and memory management.

1)  Making the most of RPA’s flexibility

An important factor in RPA’s positive reception in the marketplace is its ability to adjust to fast-evolving IT and business environments. Compared with an end-to-end software implementation and the accompanying change management process, implementing a software robot as part of an RPA solution gives you much more flexibility.

In our experience, rigorously following some simple rules of thumb can help developers facilitate this flexibility and ability to change, greatly reduce the number of change requests, and cut the time to implement any remaining changes significantly:

  • Use environmental settings that are stored externally.
  • Carefully choose the method for automating software interactions.
  • Apply best coding practices and carefully document the implemented business logic.
     

2)  Stability and error handling

  • Remember that users are less forgiving when a robot makes mistakes. You should manage business expectations to avoid disappointment and even mistrust. Key factors include positive internal communication, a process definition phase establishing a thorough understanding of the manual process, and clear communication of the future solution design. In addition, users have to be trained so that they’re comfortable integrating the new ‘digital workforce’ into their daily routine.
  • Strategies such as building robots that can handle errors by refreshing soft tokens, raising IT tickets and restarting login agents help build robust processes and keep maintenance costs to a minimum. They also give users additional comfort in the event of any unpredictable business cases.
  • Recovery of a frozen software robot: A stable RPA solution ideally includes workflows that can handle process interruption. To be able to recover and resume the process, it may be necessary to capture basic logs of activity at regular intervals. It also helps to be able to check whether any documents or temporary data should be recovered or refreshed due to the interruption.
  • Work queues providing the functionality to store, manage, share and report on processed work give the process owner additional control over process execution. They enable the process owner to set priorities and define a status for items that are processed, and allow work items to be processed or linked to another item depending on the processes, without any support from the business user. The result is flexibility and stability.
     

3)  RPA solution architecture

  • Achieve return on investment (ROI) early by starting with smaller manual and repetitive tasks: A good ROI depends on having an efficient RPA architecture. Most enterprises deploy RPA solutions using a layered design (e.g., database to presentation layer). To maximise ROI, it’s advisable to first focus on the ‘low hanging fruit’ − tasks and sub-tasks within an end-to-end process that are manual and repetitive − rather than trying to automate an entire end-to-end process from the start.
  • Audit trail and logs: Software robots have audit trails and logs that allow their actions to be traced. There are two ways to store these logs: in the RPA software database or in a separate data warehouse environment. In our experience it’s better to have process data logged in a separate data warehouse environment, keeping only the key log information (e.g. exception logs) on the RPA software database server.
  • Develop a multi-case robot using configuration files: In our experience, building robots with adjustable functionalities instead of single-purpose robots with hard-coded parameters is preferred by users. Having certain aspects of a robot’s behaviour configurable means the same robot can be used by different users with different needs or be adjusted to reflect changing business requirements. It further simplifies robot deployment and maintenance because it allows the same robot to run in different environments with only a few configuration adjustments.
  • User interaction: A user interaction during a robot run can involve an RPA bot handing over a complex task in a process to a user, and later picking up the user’s input and continuing. Apart from developing interaction points to hand over tasks, user interaction is also important in areas such as progress status communication, process exception or error communication, user decision requests before going to the next step, and final report/results communication. Email is an option for communicating simple messages, while a SharePoint list can be useful a large volume of entries. RPA software vendors are also making investments to enhance user interaction. For example, Blue Prism has recently partnered with the TrustPortal platform for user interaction.
     

4)  Robot user account provisioning

Integrating an RPA robot in everyday operations involves robot access security considerations. These include robot user account access right settings, as well as password policies including expiry and lock-out policies. One way of managing RPA access rights is to create an instance of a virtual user account following the same access rights as the business user the robot is ‘working for’. Once all business-specific access rights have been granted, the IT owner of the RPA software ensures that the process is running independently on a virtual machine. The different actions that may be undertaken in relation to this new virtual user account (BOT user account) are described in our paper.
 

5)  Some security considerations

  • Robot external file security: The input and output files of robots, including the file that contains the parameters used by robots during execution, should be set up in a secure and efficient way. Robots might also require short-term data storage. It’s advisable, for example, to store sensitive information (e.g. payment details) on a hard drive rather than in a visible robot work queue. Again, you’ll find a more detailed description of file and storage security measures in the full paper.
  • Using work queues: Work queues provide the functionality to store, manage, share and report on process work. They have a number of advantages for RPA users and facilitate the development of larger (long-running) processes. But a work queue may also increase the risk that sensitive data will be shared inadvertently. Each work queue element may contain information such as a sensitive unique identifier which could unintentionally enable data interception. It’s therefore advisable to carefully choose the information stored as part of a work queue or anonymise the information.
  • Robot credential management: Secured credential management is one key element that enables businesses to store and update the password required for software identification. Once the password is saved in the dedicated area of the RPA software, passwords are encrypted and only useable while the automated process is running.
     

6)  Memory management

As developers build more and more unassisted, continuously running and sophisticated robotic process solutions to manage, memory mitigation strategies become more important. The downside of some of the features that make RPA software like Blue Prism so useful for business users is that they create copies of each data item when passing them within the software, which quickly fills the available memory.

Our best practice strategy for minimising the risk of ‘out-of-memory’ exceptions is as follows:

  • Minimise the use of passing data items into pages (sub-workflow sheets) or methods.
  • Make sure to clear data items at the end of the page or method to help the garbage collector free up memory.
  • Instead of passing a large collection to a sub-process, pass it in serialised form. In the page or method where it is used later, de-serialise it and use it the normal way.
  • Using globally visible objects minimises the risk of running into ‘out-of-memory’ issues; but their use isn’t recommended as it increases the risk of  accidently overwriting them.

We hope these tips help make creating, implementing and maintaining your RPA solution smoother. If you’d like to find out more, check out our blog post on what RPA is and what it can do or talk to us.
 

 

Contact us

Zack Tian

Intelligent Solutions Development, PwC Switzerland

Tel: +41 58 792 26 24

Jürg Schuler

Data and Analytics, PwC Switzerland

Florian Gehring

Cybersecurity and Privacy, PwC Switzerland