Adeel Javed - How To Make BPMS And RPA Work Together

How To Make BPMS And RPA Work Together - Part 1

Robotic Process Automation (RPA) has been gaining traction in recent years. It has moved from being a mere buzzword to being a priority on organization's to-do list.

Being a Business Process Management (BPM) practitioner, I am interested in exploring how a BPM software (BPMS) can work with an RPA tool. If you look at the leading BPMS vendors from different magic quadrants, you will see a trend developing. Pegasystems a BPMS vendor acquired an RPA tool last year. Appian, another BPMS/low-code vendor had RPA front and center at their annual conference.

In my opinion, RPA compliments BPMS very nicely, it can actually increase adoption of BPMS, and vice versa. In rest of this article, I am going to explore two different approaches that can be used to make a BPMS and an RPA tool work together in harmony.

Process-Driven RPA

A process cannot exist in a silo, it has to integrate with other systems in order to deliver real benefits. Unfortunately, in most organizations, a fully integrated process is only part of the vision and not reality.

Unfortunately, in most organizations, a fully integrated process is only part of the vision and not reality.

Various factors such as mergers, acquisitions, legacy software or resource constraints can stop you from building those much-needed integrations. Lack of integrations definitely has a negative impact on adoption and usability of the automated process.

Example

Consider a basic version of the order management process. You have automated the process using a BPMS, but it lacks integration with let's say the shipping vendor's system.

Adeel Javed - How To Make BPMS And RPA Work Together

In order to complete the Ship Order activity shown in the process above, you will need to work on multiple systems. Here is a quick list of different tasks that you might need to perform.

  • Login to order management system
  • Search and open order details
  • Login to the shipping vendor’s system
  • Copy and paste all the required data from order management system to shipping system
  • Ship the order and copy tracking number from shipping system back into order management system
  • Log out and close the shipping system
  • Mark order as shipped in order management system
  • Log out and close the order management system

If you get one or two orders a day, these tasks might not be a big deal, but if this is happening 100 times a day, then you are spending a considerable amount of time on non-value add work.

Approach

If you have similar situations in your organization, where processes have been automated using a BPMS but due to lack of integrations have resulted in swivel chair activities, then RPA tools can help you.

A swivel chair activity means that a user has to perform tasks in multiple systems in order to complete a single activity of a process. In the order management process example, Ship Order was a swivel chair activity.

The idea behind Process-Diven RPA approach is that your process keeps running inside a BPMS without any major modifications. You automate non-value add swivel chair activities by using the digital workforce (bots) provided by the RPA tool. Referring to the earlier example of order management process, once your process reaches the Ship Order activity, instead of a human doing all the tasks, a trained bot can perform all the tasks.

This approach can help you (in a way) integrate with systems that might not have been possible otherwise and more importantly free up your human resources, who can work on value-add work instead.

Adeel Javed - How To Make BPMS And RPA Work Together

RPA-Initiated Process

A bot is great when you have well-defined repeatable tasks that it can perform, but what happens when there are data anomalies or errors? It is simply not feasible to train a bot with all possible exception cases (unless it is a self-learning bot, topic for another day).

Example

To further elaborate this approach, let’s take a look at trade reconciliation process. This process usually happens at end of a trading day, and the goal is to make sure that balance is accurate in two or more systems.

Adeel Javed - How To Make BPMS And RPA Work Together

The figure above shows two hypothetical systems used for trading. Here is a quick list of different tasks that an agent might need to perform for reconciliation.

  • Login to trade management system of the firm
  • Search and open the customer in trade management system
  • Login to broker system
  • Search and open the customer in broker system
  • Verify that end of day balance in both systems is same
  • Log out and close the trade management system
  • Log out and close broker system

Adeel Javed - How To Make BPMS And RPA Work Together

Now consider the exception case where at end of the day, the balance was not same in both systems. In this exception case, an agent will need to perform follow-up tasks, which might require a call or email to the client and broker to find out the reason balance is not same.

Approach

In such scenarios, a bot can be trained to perform the daily repeatable tasks of checking balance in both systems, but training it on all exception scenarios, follow-ups, and follow-up actions might not be possible, and this is where BPMS comes to the rescue.

As the name suggests, the idea behind RPA-Initiated Process approach is that when a bot has not been trained to handle exception cases, it requests human intervention. The bot completes its processing, kicks off a human activity inside BPMS and moves on to the next set of work. This approach works great when a majority of the time a bot is able to complete processing without issues, but in those minor instances when they do find anomalies, a process is kicked off in BPMS so that a human can follow-up and resolve the issue.

This approach works great when a majority of the time a bot is able to complete processing without issues, but in those minor instances when they do find anomalies, a process is kicked off in BPMS so that a human can follow-up and resolve the issue. This again lets your resources focus on actual value-add work instead of spending time on mundane tasks.

Conclusion

In my opinion, BPMS and RPA are a great match. The two approaches discussed in this article show that if both technologies are used in harmony they can really complement each other and increase adoption.

Share your thoughts on how you are planning to use BPMS and RPA in your organization. What opportunities or challenges do you see in implementing both together?


Adeel Javed - Why Use Low Code Application Development Platform

Why Use Low-Code Application Development Platforms?

Note: I am not associated with any low-code application development platform vendor. All information shared in this article is based on my experience and research. I have been developing applications professionally since 2005, initially with programming languages such as Java, and later with various process automation and application development platforms (12 so far, but who's counting).

Can I use a low-code application development platform to build applications for my space shuttle? Sure you can, but should you? No, at least not yet.

In this article, I am going to try to sift through all the noise about low-code platforms and show you why I think organizations should consider low-code platforms for their development needs. We are not going to look at any particular platform, instead, we are going to run a simulation of sorts. We are going to take a set of requirements for a simple application, and then find out what type of effort would be required to implement, test and maintain the application using following development methodologies.

  • Components Off The Shelf (COTS)
  • Custom Application Development
  • Low-Code Application Development (a.k.a. Low-Code Platform)

Next section lists down high-level requirements for the application.

Requirements

For the purpose of this article, consider yourself as being responsible for building a new Expense Claims application. It is a simple yet important and relevant application that is commonly used in organizations of all sizes. Here is a list of requirements defined by each role.

Adeel Javed - Why Use Low-Code Application Development Platforms

The diagram below provides an overview of the process described in requirements.

Adeel Javed - Why Use Low-Code Application Development Platforms

Once you have an understanding of your requirements, the very next step is to decide if you are going to Build or Buy. Build versus Buy is an age-old discussion, that has been going on for decades. What's important to note here is that most of the available analysis and tools are about COTS versus Custom Application Development and don't necessarily include Low-Code Application Development. So, let's do a comparison of all three options.

Components Off The Shelf (COTS)

Components Off The Shelf (COTS) also know as canned solutions are readily available software components that can be installed as-is or with few customizations instead of building a custom application.

COTS may be a viable solution if a good software component is already available that more or fewer maps to your requirements, your team does not have necessary technical proficiency in building a custom solution or unique technology or solution would not be a competitive advantage [1][2][3].

Take a look at the oil rig transporter shown in the video below, it is designed to transport humungous oil rigs from one part of the world to another. It does what it is designed to do accurately and efficiently, but it cannot be used for many other purposes.

https://youtu.be/xsnW5CHrpQ8

COTS, in my opinion, are similar to the oil rig transporter i.e. they are built to do one thing very effectively, but they won't meet your every need. COTS are difficult to customize and integrate, so you end up changing or giving up on important requirements.

Another important aspect to consider is that for each new application you will either need to add a new module to your existing COTS solution or buy a new COTS solution altogether. A single department may only have one or two COTS solutions, but the organization as a whole will be full of different COTS solutions that may or may not talk to each other. Of course, they solve the problems they were brought in for, but this ends up creating silos that require more work to simply integrate.

Looking at the expense claims application requirements, not all COTS solutions will come with a mobile app and there is a good chance they will not be able to integrate with all your systems. More importantly, an expense claims application cannot be extended to build a leave management system, you cannot reuse any components, you will need a new COTS solution that does leave management.

Now let's move from Buy to Build.

Custom Application Development

Custom application development means building an application from scratch. You can build pretty much anything using custom application development. It allows you to be agile and building a unique solution can give you a competitive advantage.

Unfortunately, after hearing the term custom application development, the very first thought that comes to mind is:

Oh boy, this is going to take a lot of time and huge sums of money to implement!

Let's take a look at requirements for our expense claims application again. A quick review tells us that we will need to develop following components to accomplish all the requirements.

  • Design data model, create objects and tables
  • Define workflow to assign tasks to appropriate users, either by coding if/else conditions or using a third-party API
  • Integrate workflow with an SMTP mail server for sending email notifications and escalations
  • Integrate workflow with document management system to upload all attachments
  • Integrate workflow with payroll management system to push data
  • Create a web portal
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
  • Create an iOS mobile app
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
    • integrate with the phone camera to capture receipts
  • Create an Android mobile app
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
    • integrate with the phone camera to capture receipts

A simple and straightforward expense claims application has suddenly gotten out of hand. We are already looking at four different codebases. First the codebase for common components, such as data model, workflow, task management, and integrations. Then three codebases for the web portal, iOS mobile app, and Android mobile app, they do not provide any different functionality as such, but they all require different codebases, expertise, and resources for implementation.

Building all the functionality listed above will result in thousands of lines of code. Not only is that going to take a lot of time and resources to implement, but as per industry average during development, we should expect

15 - 50 errors per 1000 lines of codes. [4]

This, of course, means that in addition to a large development team you will require a good sized quality assurance team as well.

Now, let's ask the same question that we did for COTS, can this application be extended to build a leave management system? Except for the main web portal, not really, everything else will be unique for that application. So, almost an equal amount of effort will be required to build a leave management system.

So yes, you can build almost anything with custom application development, but it seems too slow. What other options do you have? Well, this is where low-code platforms come into the picture.

Low-Code Application Development

Low-code platforms provide you with a comprehensive set of tools to build your own applications. They are not restrictive like COTS and they are definitely faster than custom application development discussed in the previous section.

To better explain this, let's take an example from the construction industry. According to studies, the average time to build an apartment building in 2016 for the US was between 10-14 months [5]. A construction company in China, on the other hand, is building a new 20 story apartment complex from scratch in just 15 days. How do they do this? Well, they use pre-fabricated components that have already been built and tested in their factory. Once these pre-fabricated components arrive on site, they are only required to be assembled. So, not building every wall and ceiling onsite from scratch, allows them to achieve this extremely fast construction cycle.

https://youtu.be/veNf-bz99cI

Low-code platforms use the same concept of pre-fabricated components. Most of the components that organizations require to develop an application come out of the box. They have been carefully designed, developed and thoroughly tested. The figure below shows various tools and out of the box components that a good unified application platform provides you.

Adeel Javed - Why Use Low-Code Application Development Platforms

Once again, looking at requirements for our expense claims application we can see that most software components that we identified in custom application development actually come out of the box in low-code platforms. Here is a quick summary of what it will need to build the same expense claims application using a low-code platform.

  • Use a visual designer to define data model and all objects and tables will be created automatically
  • Use drag and drop process designers to define workflow
  • Use out of the box task management to configure who gets the task and what form they see
  • Configure your SMTP mail server to send notifications
  • Use out of the box configurable plugins to integrate with document management system and payroll management system
  • Use out of the box web portal that allows you to simply configure authentication policy and role-based security
    • use a visual designer to quickly create web forms and reports
    • configure rules for validations to ensure data accuracy
  • Low-code platforms use the concept of build once deploy anywhere, so no need to create a separate iOS mobile app or Android mobile app, these come out of the box as well

Now as you can see, because you are using out of the box components, not only does your development cycle reduces by many folds, but you end up writing much less code. This translates into less number of development and testing resources. Also, since you are maintaining a single codebase, maintenance cost is reduced significantly as well. So, not only low-code platforms allow you to build unique applications, they do so at a much faster pace.

Conclusion

COTS solutions are viable options in a few scenarios, but they do not give you any competitive advantage, you have to give up requirements and they create more silos in an organization.

Custom application development, allows you to build something unique to your organization that gives you a competitive advantage but requires a lot of time and resources to design, implement, test and maintains.

In this very digital and fast moving world, every organization needs to be extremely agile. A low-code platform allows you to do that. You can still build custom applications, but at lightening speed (maybe not lightning, but pretty fast). You still need developers and testers but instead of a team of 8, you might only need 2.

In my opinion, low-code platforms have improved significantly and now is a good time to start considering them for your development needs. To get started, take a look at The Forrester Wave™: Low-Code Development Platforms report, this will give you an idea about different vendors and how they stack up (you should be able to find a free version of the report from one of the vendor sites).

References

  1. How to determine when to build or buy enterprise software
  2. Build vs. Buy: How to Know When You Should Build Custom Software Over Canned Solutions
  3. Build Vs. Buy: A Dangerous Lie
  4. Code Complete: A Practical Handbook of Software Construction, Second Edition
  5. Time to Build an Apartment Building in 2015

Adeel Javed - UX Patterns For Enterprise Applications

eBook Overview: UX Patterns for Enterprise Applications

This post provides an overview of my new free eBook "UX Patterns for Enterprise Applications".

What This Book Covers

Adeel Javed - UX Patterns For Enterprise Applications - eBookUser Experience (UX) is an important field, lots of money and research is going in defining this field. Getting the UX right is an important step while designing consumer apps. Unfortunately, while building enterprise apps UX becomes a low priority. In my opinion, the reason is very simple, the conversion rate is not an issue, users have to use the application no matter what, so no one spends time and money on UX research.

Most organizations do not have dedicated UI/UX designers to projects, and developers like myself end up doing most of the UI design. So the idea behind this eBook is to look at the common functionality that most enterprise apps provide, and share patterns that developers can use to improve the user experience.

Patterns

Download

You can download the free eBook from dropbox.


Adeel Javed - UX Patterns For Enterprise Applications

UX Patterns For Enterprise Applications – Feedback

Just like a process model requires continuous improvement, so should the UI. A good tip would be to provide a link to users to submit quick feedback.

Adeel Javed - UX Patterns For Enterprise Applications

Want to learn more about UX Patterns? Download your copy of "UX Patterns for Enterprise Applications" here.


Adeel Javed - What Is RPA (Robotic Process Automation)

What Is RPA (Robotic Process Automation)

Note: I am not associated with any RPA vendor. All information shared in this article is based on my experience and research.

Consider the new hire onboarding process. In most organizations, an employee needs to be added to multiple systems that do not necessarily talk to each other.

A manager has to create accounts in multiple systems and send out emails to other teams in order to request office space, machine and security badge etc. These tasks are not really part of a manager's  job description but have to perform these regardless.

For such repeatable tasks, RPA is a good option. The term RPA stands for Robotic Process Automation, here are a couple of definitions.

Robotic process automation (RPA) is the application of technology that allows employees in a company to configure computer software or a “robot” to capture and interpret existing applications for processing a transaction, manipulating data, triggering responses and communicating with other digital systems.

Source: IRPA

Robotic process automation (or RPA) is an emerging form of clerical process automation technology based on the notion of software robots or artificial intelligence (AI) workers.

Source: Wikipedia

In a nutshell, using an RPA software, you can visually create a flow of how workers accomplish a task, for example.

  • Open browser
  • Login to a website
  • Copy data
  • Open another system
  • Search record
  • Paste copied data
  • Save the record

These clearly defined instructions ("robot") are then deployed on a machine, where they perform these defined tasks over and over again just like a human would do.

Prefixing "Process Automation" with the word "Robotic" makes it sound very fancy and cutting edge, but as of now if you explore features that various RPA software provide, it would be more appropriate to call it "Repeatable Process Automation".

RPA is great for repeatable tasks that you can clearly define as a flow along with all the rules. You can quickly automate various swivel chair activities that take useful time from a worker's day. So instead of workers spending time on doing these mundane tasks, they can focus on real value-add work.

I personally prefer the following definition.

Robotic Process Automation enables organizations to use software robots to complete repetitive, time-consuming work to significantly increase productivity, improve quality and decrease the need for re-work—also usually resulting in improved customer satisfaction.

Source: Verint

Use Cases

You can find a list of use cases for RPA from following sources.

Example

This video from UiPath (an RPA software vendor) will give you an idea of how RPA software work.

https://youtu.be/B2CF-DLFVkQ

Republished/Cited


Adeel Javed - UX Patterns For Enterprise Applications

UX Patterns For Enterprise Applications – Error Messages

Consider this scenario, you complete a form, click on submit button and the system show all sorts of errors that you made while filling out the form. As shown in the screenshot below, there are two obvious issues with displaying errors so late and in such format.

Adeel Javed - UX Patterns For Enterprise Applications

  • First, it is not immediately obvious which fields are causing the error message, so you need to go through each field to investigate.
  • Second, the error messages are not helpful e.g. in this case which field has an invalid format, is it the phone or email or both?

So in order to avoid such infuriating scenarios, follow the patterns listed below.

Instant Validations

Perform instant validations (upfront) on all fields instead of delaying errors and waiting until the end when the user is ready to submit. This helps users in making sure that everything is in order as they are filling the fields.

Adeel Javed - UX Patterns For Enterprise Applications

Descriptive Messages

If you are not providing inline error messages, then make sure your error messages are detailed enough to point to the correct one. This way at least users know exactly where to go in order to resolve the issues.

Adeel Javed - UX Patterns For Enterprise Applications

Both patterns help reduce time spent on resolving issues and avoid the frustration that comes with not knowing what's wrong.

Want to learn more about UX Patterns? Download your copy of "UX Patterns for Enterprise Applications" here.


Adeel Javed - UX Patterns For Enterprise Applications

UX Patterns For Enterprise Applications – Actions

Primary Actions as the name suggests are the main actions a user performs on a form e.g. submitting information or approving/rejecting work. This post discusses a few patterns that should be considered while designing primary actions.

Clear Labels

More often than not, you will see a button at the end of a form called Submit. Even though Submit button knows what happens next, the user clicking the button might not. So, to make it intuitive for the user, it is a good practice to clearly label the Submit button i.e. what is the button doing. For example on an expense form, instead of just labeling it Submit, Submit Expenses will make more sense.

Adeel Javed - UX Patterns For Improving Worker Engagement

Expose Options

Another common theme we see is that a list of options is provided in combination with a Submit button. Options (a.k.a. drop-downs, a list of values, LOVs) are a great way to list data such as names and states etc., but users need to put some effort and perform additional steps in order to find required information.

So, for set actions, it is usually a good idea to make them as Button Groups. This reduces the number of steps required to perform an action and clearly tells users what is required of them.

Adeel Javed - UX Patterns For Improving Worker Engagement

Destructive Buttons

If there is a primary action that is considered destructive e.g. Reject or Cancel Request etc., highlight them in a way that its destructive nature becomes clear to the user. Asking for confirmation once the destructive button is clicked is another good way to make sure user does not mistakenly perform the action.

Adeel Javed - UX Patterns For Improving Worker Engagement

Repetition

Actions like “Submit Request”, “Approve Request” and “Reject Request” etc. should be repeated. They should be placed on top and bottom of the screen. Repetition makes it easily accessible, the one at the top suggests what is to come and the one at the bottom is most likely the one that will be used by the users.

Another option is to make a floating bar for Primary Actions, that moves with the users so that they can take the action at any time.

Adeel Javed - UX Patterns For Improving Worker Engagement

Want to learn more about UX Patterns? Download your copy of "UX Patterns for Enterprise Applications" here.


Adeel Javed - How To Sell BPM In Your Organization

How To Sell BPM In An Organization

BPMTips.com recently did a great post about selling BPM in an organization. They asked more than 20 BPM experts this question, "How to sell BPM in an organization?".

I found following common themes in most responses.

BPM is hard to sell

Executives are not concerned about tools and methods, they are interested in outcomes and value

Less ‘selling’, more ‘benefits’

Have an executive sponsor who is committed to BPM over the long term.

Word Cloud generated from all the responses also provides nice insights.

Adeel Javed - How To Sell BPM In Your Organization

Read the complete article on BPMTips.com to gain valuable tips.


Adeel Javed - UX Patterns For Enterprise Applications

UX Patterns For Enterprise Applications – Search

A well thought out search functionality can greatly enhance the experience. Instead of just thinking about search as a filter criterion, think of this as an alternative and much quicker way to navigate.

Search should not be limited to a single tab or menu item e.g. if you are under the Orders tab then usually you would only be allowed to search for all orders by certain attributes. Having that capability is good, but what if the end-user wants to search for a customer from that location or any comments where a particular customer is mentioned. Think of this as the search your operating system (OS) provides, you can type anything in the search field and then the OS will look for matching filenames, text within files, emails, conversations etc. The figure below gives an example.

Adeel Javed - UX Patterns For Enterprise Applications

Want to learn more about UX Patterns? Download your copy of "UX Patterns for Enterprise Applications" here.


Adeel Javed - UX Patterns For Enterprise Applications

UX Patterns For Enterprise Applications – Relevant Data

Good decision making requires good data. Finding good data usually means that user has to run some report, log in to some other system or request some team to provide it. All these activities cost time and resources and often cause delays in the decision making process.

There are a couple of ways to make the decision-making process easier and quicker.

Decision-able Data

Providing data that is relevant to the decision making process is a good way to ensure that user does not have to leave the screen to find such information e.g. a manager has to approve if a new contractor can be on-boarded or not, so the system could provide how much budget there is, and to further facilitate what has been the trend of decisions for similar requests.

Adeel Javed - UX Patterns For Improving Worker Engagement

External System Links

For cases when you cannot bring data into your system, and as a result, users need to perform swivel chair activities (i.e. users need to manually log in to another system and get some data), it is helpful to provide them with a list of those external systems.

Ideally, these should SSO-enabled links that take users to correct screens in the external system, preferably with pre-filled data.

Adeel Javed - UX Patterns For Improving Worker Engagement 

Want to learn more about UX Patterns? Download your copy of "UX Patterns for Enterprise Applications" here.