Dynamic BPM is the ability to support process change at any time, with very low latency. Dynamic BPM implies that your business processes are more agile and flexible so it can easily adapt dynamically based on business needs.
So how is Dynamic BPM different from earlier BPM solutions.
In my view, the initial SOA BPM solutions focused on streamlining business processes, aligning Business and IT content, process automation and standardizing IT interfaces. Most of the earlier processes weren’t designed with agility and dynamicity in mind and if they were, they might not that have the platform and tooling to support dynamicity required for today’s business environment. With technology being evolved, we have better ways now to achieve agility as compared to earlier models. Â Now, based on dynamicity associated with today’s business environment, business needs to sense environmental changes and adapt quickly and respond appropriately to these changes. That’s where Dynamic BPM comes into play.
In my view, agility can be introduced at design/modeling time or at runtime. A BPM platform needs to have the right tools and technology to assist you in creating these agility behaviors to make process dynamic. For instance, let’s take an example of Loan application written in some language, say Java. Now while designing Loan types, you would typically create an abstract class for Loan and later add implementation for specific types like Auto Loan, Home Loan and so on. Based on Loan type you carry out a different function, but more or less your process remains same. So what have you ensured as part of your design, is that the new Loan implementations can be added easily by extending the Loan class. Similar, while designing BPM processes, you should have an ability to model this behavior, so new extensions or functionality) can be easily added when new Loan types are added, without changing your businesses process. This is an example of design time agility.
Let’s take another example of Loan approval process where you might have defined a human task for approving the interest rate. During the process execution, the rate of interest changes and the user who is carrying out the task requires an exception approval to disburse the loan based on the earlier negotiated rate, in that case the user can create a dynamic/adhoc task and assign it to the required approver and wait on it till task gets completed. This can be considered an example of agility being introduced during runtime without changing your existing process.
Modeling your Business process taking in account the agility behavior is one of the key aspects of dynamic processes. In my future blog, I would talk about the various agility parameters and different ways to achieve agility.