Solutions are the way to solve problems at all times. In the view of a professional, problems can be use cases, upgrades running for an existing system, automation, or any client requirement. Read this article to uncover the key responsibilities of a solution architect in automation and insights on how to enable and design RPA solutions.
Roles and responsibilities of a solution architect
Part of the work that an RPA solution architect does is to design an end-to-end RPA solution for different client queries. The main focus is to identify problems and then solve them. Let’s focus on the key responsibilities of a solution architect in an automation and RPA setting. One of the most important is developing a stable/reusable and scalable RPA solution design and making sure that it follows all the best practices agreed upon in the organization. Alongside this, a solution architect should have a deeper understanding of the use case and process flow. The aim is to lead the process optimization keeping in mind the performance of the delivered solution.
A solution architect can also review codes, engage in licensing requirements, and orchestrate the process (number of robots, schedules, configuration files, assets, queues, etc.). Documenting the efforts in the form of a process definition document/PDD and a development specification document (DSD) can also be a step in their activity as well as for the business analyst.
To conclude, solution architects are the face of your automation. They enable, prepare, design, build, test, and sustain RPA inside your organization.
What it takes to be a solution architect
If we take a look at the career perspective, there are some criteria to be checked that might vary from company to company.
- 1. Some companies will expect two years of minimum experience in the IT industry with similar experience as an architect.
- 2. An understanding of IT systems and domain knowledge with strong analytical skills.
- 3. A good understanding of process optimization and deployment.
- 4. The ability to engage with clients and demo the capabilities of the solution.
- 5. Certification completion
If you are a beginner or looking for a change in your career as an RPA solution architect, UiPath Acacemy has got you covered with a well-tailored certification program you can access here.
The importance of solution architecture
Why is it important to have solution architecture? Below, some of the items identified with experience.
- 1. Avoid costly rework
- 2. Improves efficiency in team collaboration
- 3. Provides a clear understanding of functional & non-functional requirements
4. Provides ability to scale easily
- 5. Produces reliable and stable automation solutions
To enable RPA is to think about making your solutions consumable. This is where deployment and its implications on enterprise architecture comes into play.
- 1. Infrastructure setup: on premise or cloud
- 2. Deployment pipeline: orchestration
- 3. RPA deployment environments
When you deploy an RPA solution, keep in mind the following:
- 1. Availability of a schedule so that existing processes aren't affected. This holds true if you use unattended robots.
- 2. What happens if you have attended robots? In this case, pushing the automation script to live is easy, but now its execution becomes dependent on the client using it. Also, infrastructure availability will play an important role.
- 3. Think about scalability. Can we deploy the solution on multiple robots?
- 4. Think about risk analysis and mitigation
- 5. Be ready with a fall-back plan
- 6. Think about version control
- 7. Think about the downtimes
- 8. Think about upcoming or future upgrades
- 9. Before deployment, make sure no sensitive information is being logged
- 10. Maintain credential audit and control
To sum it up, take a look at the diagram below (source: UiPath Academy, RPA solution architecture fundamentals).
Preparing for RPA means setting up best practices, which might vary depending on organizations. But even before setting up best practices, below are two key ingredients.
Requirement gathering and stakeholder engagement go together.
1. Understand the manual process.
2. Document it step-by-step. UiPath has got you covered with Process Mining and Task Mining.
3. Discuss the process with Subject matter experts (SME) and related IT teams.
4. Optimize the process.
5. Keep your client/stakeholder engaged in the process with periodic meetings.
6. Discuss the As-Is and To-be process with stakeholders and Business Analysts.
7. Perform project feasibility study and decide what should be automated/scope of automation.
8. Estimate the development time.
9. Identify any potential challenges like any future changes in the system being automated.
10. Legacy systems would need extra care.
11. Set up a change management system.
12. Dedicate time to unit and functional testing.
13. Make sure to engage your stakeholders with regular demos.
14. There can be unseen changes in the future or additional requirements. This should be well-communicated and a cut-off should be set as to the number of new changes that can be accommodated. This will also depend on the criticality of the changes coming in.
15. Determine the process complexity before assigning development time. Make sure to include UiPath developers in such discussions.
Let’s summarize this with a diagram (source: UiPath Academy 🡪 RPA Solution Architecture Fundamentals).
Now let's discuss best practices. Here are some key points to consider:
- 1. Use of Robotic Enterprise Framework
- 2. Build workflow layout (sequence, flowchart)
- 3. Use naming conventions for variables and flows4. Comment and Annotation strategy
- 5. Code check-in strategy
- 6. Data storage strategy
- 7. Selectors
- 8. Timeout for activities
- 9. Error handling
- 10. Assets and credentials
- 11. Queue usage
- 12. Reusable workflow components
- 13. Managing the packages and activities
- 14. Clean codes
Consider the points below as you start designing your processes.
- > Refer to the best practices mentioned above
- > Decide if the process will use Attended or Unattended robots.
- > Break your process into dispatcher and performer.
- > Consider using already available workflows and reusable components.
- > Consider the test data and have a look at it. This will help you decide the input data and the kind of output you want to target.
- > Decide on scalability - the number of robots as per the business needs.
- > If the process is complex, consider breaking down the performer into multiple sub-processes.
- > Standardize the project name.
- > It's important to identify the handover points and break the complex business process into multiple simple automation processes that connect through data handover features such as queues, data tables, etc.
- > Use of Robotic Enterprise Framework should be considered.
- > Consider the possibility of human-in-the loop.> Consider how the output shall be presented to the user and how you'll notify the user in case the process ends.
> Consider sending out alert emails when there's a business exception to the stakeholders.
- > Create a password management system, i.e., what happens in case the password expires?
- > Consider sending out alert emails when there's a system exception to the RPA team.
- > Create a risk analysis matrix.
- > Keep track of upgrades to the systems being automated.
- > Design the solution so that it's easy to read.
- > Carefully design the Orchestrator components like assets, etc.
- > Create and review the configuration file details.
Vendor management case study
This use case is a classic example of how to leverage the knowledge of solution architecture. Keep in mind that to make this happen, coding practices are important. One such practice is using Robotic Enterprise Framework (REFramework).
- 1. Extract raw data from three different systems and download as Excel file.
- 2. Filter data to remove unwanted information.
- 3. Save files in a central location.
- 4. Prepare consolidated reports for each person based on extracted information.
5. Email files created for each person – one email may contain multiple files.
6. Keep track of responses and continue the conversation until valid data is received.
- 7. Track business rules for escalation.
- 8. Once valid data is received, update internal applications.
- Now, let’s put it into a diagram to see how the as-is process looks at a very high level.
You need to draw the detailed process, capturing all the steps from start to end. A detailed diagram will always help you to visualize the complex decision points, how separate sections of the process, link to other sections, and to identify individual components of the process. It's always recommended to draw it in a way where each component in the diagram represents an individual workflow. Look at the detailed diagram to see how we can design it in the way we explained above.
You can visualize the full process in detail level. However, we aren't going to build everything in one single solution. It's always good practice to break the process into smaller subprocesses. How are we to split the process into subprocesses? It's mainly by looking at specific areas where data is handed over from one section to another.
For example, if we look at the first part of the process where we download files from three different systems, we can easily break that part into three different processes. Each process can perform activities starting from logging into the application and downloading the Excel files as illustrated in the following diagram.
Once the files are downloaded, all the raw files are used as an input in the next section to prepare a consolidated report and generate files specific to different vendors. Hence, those steps can be taken into another subprocess as shown in the following figure.
Once you have all the files ready, you can extract the vendor list, look for the files for each vendor, and email it to them. The vendor might respond to emails with all the information needed. However, it's uncertain when they'll reply, or whether the data they send is always accurate. Considering these factors, it's good to handle the responses separately. So as our final subprocess, we can create a subprocess that specifically reads the vendor list, and sends out the emails for their review.
Solution architecture is the process of developing solutions based on predefined best practices, processes, guidelines, that can be orchestrated easily UiPath Platform. The key is to document it step-by-step using Process Mining and Task Mining.
Juveria Siddiqui is an RPA Consultant at Deloitte and Lahiru Fernando is an Executive RPA Lead at Boundaryless Group