Process Design in RPA


1.1 Introduction


This white paper will showcase guidelines that can be used while designing business processes so that all the common architectural concerns are taken care of and the overall process design is robust and agile enough to withstand changes with minimal impact on development and testing.

1.2 Benefits of having a good design
  • Consistency: All designs contain similarly recognized granularity.
  • Efficiency: How much of the process will be automated.
  • Productivity: Fewer exceptions more productive process
  • Performance: Process Design will work as fast as possible. (Minimize License requirement)
  • Scalability: Designed to Scale-up without further development.
  • Resilience: Ability to keep processing without manual intervention and unnecessary exceptions.
  • Data Integrity: Elimination of risk of duplicate or orphaned cases due to recover-ability built into Design.
  • Speed to production: Faster development and design to accommodate the local test approach.
  • Re-usability: Object designed to support system and not the process so can be reuse across.
  • Data Security: Designed to respect data security rules.


1.3 Common Scenario
 1.4 Guidelines
 1.4.1 Focus on Modularity

 
1.4.1.1 Modular design for a Process


www.manishsharma.dev


The problem with the above design is that, if there is any change in the login module, both modules must be changed, and the same change must be repeated in any module that has the login step. This will also impact the test-ability of the entire process, any change in the login procedure will lead to the same changes being made in both

www.manishsharma.dev



1.4.2 Atomic Process Design

All process designs should be atomic, if any process is changing the state of an application it should be atomic, meaning the change of state should be complete, if it fails midway, the process should be able to reverse the state of the application to the original state.

1.4.2.1 Atomic Process Design for a Process 

While developing the module for New order creation effort should be made that process can be subdivided into a sub-page which will specifically cater to new order creation activity. This will act as a logical grouping, not just logically but even functionally it should only house steps that are directly

www.manishsharma.dev


1.4.2.2 Atomic design for objects

Objects should be created with atomic actions. Actions should be having complete responsibility for one single functionality only. This ensures that the action created is modular and reusable in every scenario. Once an action is executed it should complete one atomic functionality for which the action has been created.

www.manishsharma.dev


1.4.3 Process Idem-potency

Idem-potency in

1.4.3.1 Idem-potency in Process



1.4.4 Central Controlling Authority

A Central Controlling Authority comprising of Technical Architects,
  • Creates and enforces coding standards across the project.
  • Duplication of components is avoided.
  • Results in the creation of consistent code across the project, which increases maintainability.
  • The components created are in sync with the overall design structure of the project and are more efficient and robust.
  • Reduces turnaround time for development as every component’s design and scope is clearly defined.
  • Easier to upgrade components due to common coding standards across the project.
  • Cross-training resources are easy.

1.5 Conclusion 

Following the guidelines mentioned in this white paper will ensure that your
  • Scalability – Architecture framework will be able to handle scalability as processes and objects created following the modularity approach ensure that they can be reused at scale without requiring any code change.
  • Recoverability – Processes and objects with just single functionality/responsibility are easier to recover when crashed, exception handling is implemented in the the best possible manner in such an architecture.
  • Security – From a security viewpoint as well single functionality architecture works the best as a process or object will only access data or application for which it has been designed as it does not overlap functionality or scope for any other role.
  • Maintainability – Architecture following modularity principle is the easiest to maintain as any code change impact is limited to single functionality only, which makes not just the development easier but also regression testing is limited to a module only. So, the overall turnaround time and effort spent is considerably less.
1.6 Tool Specific Approach

1.6.1 BluePrism Appendix
1.6.1.1 Modular Design for Processes
 Another benefit of practicing this approach is that the main page of the process irrespective of how simple or complex automation it attains to, remains readable and clutter-free thereby increasing the code readability and understand-ability of the process, which in turn makes it easy for up-gradations and enhancements in the future.

www.manishsharma.dev

As you can see from the screenshot, stages about actions that can be tied together logically have been moved on to a sub-page e.g. Start-Up, Populate Queue, Generate Order, etc. This increases the cohesive nature of the process and provides a much-needed the option of re-usability to the sub-pages. It also encapsulates the business logic/rules from the main page making it easier to understand the complete flow of the end to end business process.



----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
Powered by Blogger.