Even though there have been posts on best practices, I would like to share some personal ones on achieving a solution with good quality. These practices are attained throughout my RPA development years and they are based on these 9 characteristics as follows:
The solution is to be robust such that the robot is reliable and consistent in both execution and its audit trail. Factors which might cause the robot to fail in its run should be properly addressed in the code.
The solution is split into modular components that have clearly defined input and output parameters such that the modification of one module does not impact the other modules. This allows the entire solution to be adaptive to change and brings about structure in the development phase.
Each modular component can be used for other processes which require the same functionality, reducing the need for unnecessary development. New solutions can be built entirely from reusable modules.
Within components of the RPA solution, additional precautions are taken to ensure that the code caters across different environments whenever possible. Selectors pointing to elements and usage of programs are always reviewed to allow for a less stringent but nonetheless, accurate functioning of the solution. This will allow the solution to be more flexible should there be minor changes in external programs that the process relies on.
Well-defined boundaries between the modules allow for additional components to be incorporated at a later date without affecting the solution design.
The RPA solution caters for ease of usage for the end user to positively impact the user experience. It is advisable to take into consideration that the end users may not be technically trained for RPA and thus, it is good to focus on making the running of the program intuitive and process driven.
Message boxes with clear instructions and simple UI controls will be presented to the user during the manual input of the RPA process.
Every scope of the RPA solution will be sufficiently annotated to allow the user to understand the functionality of each sub-component. This is to reduce the level of technical knowledge required for understanding the code. It also facilitates a faster understanding of the code for any taking-over and allows changes to be made more accurately.
7. Application Security
The RPA solution does not store any credentials in its source code and always references to a secured storage for any application access to be protected against any unauthorised intrusion. Sensitive information will be considered as assets and will not be hard coded into the solution.
The RPA solution will be easy to maintain as steps to alter the code for any identified potential changes will be clearly annotated. The steps to be taken will be highlighted in the user guide/manual and emphasized on during training or knowledge training to the client.
Error handling will be done by the throwing of exceptions and logging of custom messages. In order to reduce the technical depth required in debugging, these exceptions and custom logs will be concise and easy to understand by the user. It is advisable to categorize the logs by the modular components and add instructions for the user to check for expected errors.
Please feel free to add in any pointers regarding best practices for RPA
If anyone is interested, i will be more than happy to delve into the technical examples of implementing these characteristics.