Best Practices for an RPA Solution [Quality Management]

Hi Everyone,

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:

1. Robustness
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.

2. Modularity
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.

3. Reusability
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.

4. Flexibility
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.

5. User-Friendliness
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.

6. Understandability
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.

8. Maintainability
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.

9. Error-Handling
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 :smile:
If anyone is interested, i will be more than happy to delve into the technical examples of implementing these characteristics.

Cheers

13 Likes

Hi @Gluon

Fun initiative. I suppose you were referring to this topic? :slight_smile:

This gave me an idea. If there is enough interest, we could create a pinned wiki topic in the FAQ section for Best Practices advise. This way anyone could contribute with their ideas in one place.

Let me know what you think :slight_smile:

5 Likes

Hi @loginerror

Yes i was referring to that, I think its a great idea to create an independent topic on Best Practices.
That way both new and experienced developers are able to have these guidelines to strive towards for their respective solutions.

Thanks for the feedback

4 Likes

Well-thought-out points.

Actually executing these things takes time to learn though. It becomes easier once you learn what NOT to do, :rofl:

I would add to this, and maybe it’s already in there somewhere,
Developer-Friendliness
Does testing and debugging require any set-up work, like preparing directories/files or closing applications? Can reusable pieces attach to existing systems and existing screens on those systems? Does updating functionality or settings require that you actually go into the code or can you make the updates without going into the code? Does the framework allow you to use for any project without needing to make changes to the Main and majority of its pieces?

Trust me, a developer friendly project is great news for devs! :face_with_hand_over_mouth:

9 Likes

Well, there you go:

It is a pinned wiki topic, so that all your knowledge and experience will forever be visible to someone who decides to explore our FAQ category.

1 Like