Development Experience - a unique approach to evaluate RPA vendors
As Robotics Process Automation becomes an increasingly popular tool in enterprise digital transformations, competition also increases in the RPA space. Even giants like Microsoft, known to only target big markets, are making a foray.
Given the amount of information on the internet and from consultancies alike, one will surely be paralyzed, thus more prone to make biased decisions. At a high level, when you compare among software vendors, most of the time you will see minor differences. This analysis will discuss the least popular approach to evaluate a software vendor, yet has a lot to offer: developer experience.
1. Data Types and Variables Management
UIPath supports Array, List, Dictionary, Generic data types while Blue Prism only supports Collection and Image .
Pic 1.1 A – UIPath: You can choose almost any data types from VB.NET
Pic 1.1 B – Blue Prism: What you have is a much more limited set of variables.
What it means for the development team: More data types allow you to handle a larger variety of programming situations. If you are a professional handyman, are you using a 170-piece home tool set or 8-piece general repair kit?
UIPath variables are listed all on variable section. They are visible and accessible based on scopes. Meanwhile, Blue Prism variables are placed arbitrarily in the visual diagrams.
Pic 1.2 A – UIPath: All visible variables (defined by scope) are listed alphabetically and modifiable with any expressions within the scope. You can also delete all unused variables with a button.
Pic 1.2 B-1 – Blue Prism: Variables have diamond shapes. You can size and place them wherever you like. However, they are only viewable from the same page. During runtime, these variables will display current values.
Pic 1.2 B-2: Unchecking “Hide from other pages”: you are setting the variable to be accessible and modifiable from other pages. However, it is not viewable from other pages.
What it means for the development team: In Blue Prism, during the debugging process, developers will have to navigate back and forth from pages to pages to see the current values of the variables they want to monitor. It is common that, due to either sloppy practice or carelessness, code breaks because the developer uses an incorrect variable that looks similar to the correct one.
Of course, no tools can cure bad codes. It’s just UIPath enforces more stringent variable management and allows developers to review them more efficiently.
2. UIPath Studio and Blue Prism Studio
In UIPath, scripts are organized based on activities, sequence, workflow and state machine with clear hierarchy. In Blue Prism, they are organized based on actions, sub-page and pages with less navigable links.
Pic 2.1 A – UIPath: You can drill down or navigate up by clicking the link. Also, collapsible and expandable code snippets allow you to look at high level components and low level details with few clicks.
Pic 2.1 B – Blue Prism: You can only go down or up 1 level at a time by right click on the page and click “Go to page” or “Return to page reference”.
UIPath Studio has line-by-line Outline views while Blue Prism does not.
Pic 2.2 A – UIPath: This view displays codes line by line with indentation.
What it means for the development team: There is a difference between documenting process flow in Visio and programming in a Visio-like manner. With flow control structures like nested ifs, loops and switches, Visio-like diagrams will be an eyesore. Unless a developer’s first and only language is Blue Prism, most developers will be more efficient with reading codes in the outline view above. Revision is the mother of quality code. An integrated development environment that makes the review process seamless will pay off generously in the long-term.
UIPath Activities are searchable while Blue Prism actions are not.
Pic 2.3 A – UIPath: Get the actions you need in seconds by typing in the search box.
In UIPath, Error Warning instantly shows the activities and bubbles up to all higher hierarchy. In Blue Prism, it only shows after you refresh the error checking.
Pic 2.4 A-1 – UIPath: A warning symbol appearing in the corner of the box signals a syntax error occurring anywhere inside the chunk of codes.
Pic 2.4 A-2 – UIPath: Keep drilling down to the lowest level of the code that shows the warning leads you to the place where error happens.
Pic 2.4 B – Blue Prism: After clicking Refresh and Error Validation, you will see a list of all errors Blue Prism can find. You can double-click on one of them and it will lead you to the precise location of the errors.
In UIPath, you can access many native VB.NET methods right in the studio while in Blue Prism you have to develop a new code stage to do so.
Pic 2.5 A – UIPath: As you type your expression, you can access all the methods and allowed inputs of the object.
Pic 2.5 B – Blue Prism: Only supported Functions can be used in the Expression panel. The number of supported functions is only around 150. In UIPath, combining the number of supported objects with their methods, the number of different expressions you can write is at least 10,000.
3. UI Explorer (UIPath) and Application Modeler (Blue Prism)
In UIPath, all information about UI elements is stored in each activity. These elements can be reused by storing in a variable. Meanwhile, in Blue Prism, all UI elements of an application will be stored in the application modeler of the objects.
Pic 3.1 A – UIPath: The selector properties of each activity store the UI information of the application. If you have to reuse this information, you will either have to store the information as a variable or copy and paste to the new activities. However, there is danger with copy and paste as it makes it harder to update when application UI information changes.
Pic 3.1 B – Blue Prism: All the UI information of the target application is stored inside an object. Those information are only viewable and modifiable with Application Modeller in the Object studio.
Pic 3.1 B-2 – Blue Prism: Users will have to drag and drop the UI element to the type of actions they want to interact with the application.
UIPath attributes are stored as XML string while Blue Prism attributes are stored as tables that only modelers can modify and update.
Pic 3.2 A – UIPath: In UI Explorer, all the captured UI info will also be displayed in XML text. This allows developers to easily manipulate and extrapolate the attributes to new activities
Pic 3.2 B – Blue Prism: You can manipulate the attributes by changing the match type of the attribute to “Dynamic” and supply a variable into the value in the process flow.
What it means for the development team: There are pros and cons to each tools’ approach to manage the UI information of the target application. In case of a complex application and a high need for reusability, Blue Prism’s object model approach will be more suitable. The downside is a higher level of dependencies when applications change. On the other hand, UIPath’s approach allows faster development and more nimble manipulation. In my experience, a developer doesn't trust another developer’s codes easily, so they only copy the skeleton and customize the codes to their own needs. In such a case, Blue Prism’s advantage in reusability will not be of much benefit to your team.
4. Exception Handling
UIPath uses standard Try Catch Finally block while Blue Prism uses Recover Resume Block Sequence
Pic 4.1 A – UIPath: The Try Catch block is a standard activity. Retry scope is an optional property of this activity.
Pic 4.1 B – Blue Prism: If you need to implement the same Try Catch block, you will need to draw this every time. By the way, Recover is equivalent to Catches while Resume is equivalent to Finally in UIPath.
UIPath only allows you to choose from a wide variety of selectable exceptions while Blue Prism allows you to create as many exception types as you like.
Pic 4.2 A – UIPath: You can only use an exception type that is searchable from this box.
Pic 4.2 B – Blue Prism: You can choose an existing exception type or create a new type.
What it means for the development team: This is one of the areas where freedom creates disaster. Just because of preferences or typo, you will have “System Exception”, “SYSTEMEXCEPTION”, and “SystemExcepton” exception type in the list. This will severely impede your team in reporting activities. Have you ever asked yourself how many system exceptions your platforms have last month, and find yourself writing a list of rules to catch these “variations” of system exceptions?
5. Data Storage
In UIPath, Codes and Project Information are stored as files in standard folder structure while in Blue Prism, codes and folders are stored as XML with tree id and dependency id in the databases,
Pic 5.1 A – UIPath: Every project will have standard folders structure. You will have a place to store the settings, store the output data, input and documentation.
Pic 5.1 B – Blue Prism: You group processes into a project folder and group multiple project folders into department folders. You do the same grouping for objects. As the number of objects and processes grows, you will see significant delay in opening and moving the processes around. The reason is Blue Prism stores all the processes and objects contents, along with their folder mapping in databases. As the structure and volume grow, so does the time SQL operation takes.
What it means for the development team: Without a standard folder template for each project, the team will have to rely on shared folders to store the settings and output data if they do not want to store it in a local machine. But with shared folders, the team has another risk – someone deleting their files accidentally.
In UIPath, transaction trails are stored as individual log file of project folder while in Blue Prism, they are rows of tables stored in database.
Pic 5.2 A – UIPath: Every session log is stored in a text file under Local data folder.
Pic 5.2 B – Blue Prism: Every log rows are stored in the new rows of Session Logs table in the databases.
What it means for the development team: Logs are essential to troubleshooting. At the same time, 99% of logs are noise. Storing everything in the databases overload the system, especially when the number of users as well as their interactions with the application grows. Also, archiving and deleting files are more manageable than archiving and cleaning the databases. In my experience, as soon as certain tables hit a threshold, Blue Prism will lag and crash frequently.
6. Orchestrator and Control Room
In UIPath, Orchestrator is a separate component and on cloud. In Blue Prism, Control Room shares the same connection with the Studio to the database.
Pic 6.1 A – UIPath: UIPath Orchestrator is a sleek, web-based interface.
Pic 6.1 B – Blue Prism: Control Room is a tab to the right in the Studio. So how do you view the Studio and Control Room at the same time? Opening two instances of Blue Prism ?
UIPath’s Orchestrator has the option to allocate dynamically the work cases to available resources. Meanwhile, Blue Prism only fires the schedules based on set interval and resource availability.
Pic 6.2 A – UIPath: The ”Allocate Dynamically” option enables you to execute the same process multiple times on whatever robot becomes available first. Jobs are placed in a pending state in the environment workload based on their creation time. As soon as a robot becomes available, it executes the next job in line.
Pic 6.2 B – Blue Prism: Unless you are using RPA Supervisor, a company that Blue Prism acquired, you can only make a session start based on the schedule interval. And if any of the bots in the resource group is busy, the whole group is considered busy, so no session will be started.
What it means for the development team: Time to time, terminations will happen in one of the bots so the bot becomes available. By leaving it idle until all the bots are available again while there are jobs pending, you are lowering the bot utilization rate and relying on manual triggers to run a process, which is time-consuming.
7. Package Management
In UIPath, you can just hit a button to deploy the new package to Production. In Blue Prism, it is a multi-step process of selecting what goes in a package and importing it.
Pic 7.1 A – UIPath: You can publish the whole package with a few buttons. The version numbers are auto incremented.
Pic 7.1 B – Blue Prism: You will first need to pick which components will be included in the package. Then you’ll need to export a release, manually typing the release name. Then you will need to launch the target instance of Blue Prism and import the release.
What it means for the development team: The deployment process should not be too complicated. Given the complexity and the involvement of different parties in the process, errors are prone to happen. In my experience, it is very common for someone to forget to include the right component into the package and mistakenly skip the import of the right component into the target environment.
8. Case Management
With UIPath, you can view case analytics, case metadata and data inside the case while in Blue Prism, you can only view case metadata.
Pic 8.1 A – UIPath: Orchestrator allows you to see the trend, the queue operations and individual case data.
Pic 8.1 B – Blue Prism: You are left with only Queue case count (since the very beginning of the project) and case operations information.
What it means for the development team: Depending on the roles, one can look at the queue from either a reporting perspective or a troubleshooting perspective. In such cases, the ability to quickly quantify the performance and locate the right details of the case are very important. Unless you have the privilege and the skills of a SQL developer who can query the databases directly, relying on the tool’s native analytics and business intelligence features is the only choice.
9. Version Control
UIPath is integrated with standard version control practice like Git, TFS while Blue Prism is not.
What it means for the development team: The majority of professional software development shops rely on version control tools to manage the work among themselves. As the number of members in the RPA development team grows, the need to maintain a single source of truth is very important.
10. Learning Materials
UIPath courses have interactive content, practical examples with quite rigorous exams compared to Blue Prism.
Pic 10.1 A – UIPath: UIPath learning material is interactive. Each topic is broken down to small consumable units and the examples are practical. UIPath exam composed of both theoretical multiple-choice exam and practical exam.
Pic 10.2 B – Blue Prism: Blue Prism training materials cover all the basics but seems to lack the creativity and rigor of its competitor.
What it means for the development team: How quickly you can scale your development manpower and the quality of their work will decide the fate of the transformation program. Given that it’s unlikely that fresh graduates entering the workforce learned Blue Prism or UIPath at school, the quality of training materials will impact the quality of your team’s learning. Therefore, training materials and documentation should deserve a higher weight in your decision-making.
*
During the tool evaluation process, one can easily be paralyzed by many different factors. While it is so easy to attach to quantitative factors, including cost of infrastructure and cost of license, qualitative factors are often least studied and least understood.
In the long run, I'd argue that user experience is the most important factor. In Coders: The making of a new tribe and the remaking of the work, Clive Thompson wrote: “Programmers shape our everyday behavior: When they make something easy to do, we do more of it. When they make it hard or impossible, we do less of it.” Tech giants have been using armies of PhDs to design a so good experience that you cannot live without using their software.
During pilots or proof of concepts work, the difference in development experience may not matter much. However, if we extrapolate to a multi-year, multi-million enterprise transformation program, each friction introduced in the development experience far outruns the difference in license or infrastructure costs. After all, you will still have to pay your human engineers to control the bots and you have to pay a lot.
P.S: I’ve done my best to present every detail from each tool. If I have missed anything and misrepresented any feature of the tools, please comment. Also, it may be possible that some of the gaps between two tools will change. However, some changes will require a complete reconstruction of the product, which is very unlikely at this stage of the product.