[tweetmeme source=”ashish_bhagwat” only_single=false]
To have capability to define and execute dynamic processes on the fly is really powerful, and we see a lot of progress in this area. This support for the dynamic processes or Ad-hoc process definition could also gain more relevance in a collaboration driven businesses, and in lot of new areas where BPM has traditionally not been actively pursued.
However, I faced a situation that keeps me warned of an undesired implication of such capability. We had a similar functionality built up at one of our BPM implementations wherein the exceptions were supposed to be handled by kicking off a quick dynamically created sub-process. When faced with a scenario that the defined process didn’t handle (quite possible in early cycles of an interactive and incremental BPM approach), the user could define a sub-process right there from the execution browser and kick it off. This was pretty innovative and users really loved it.
And they loved it a little too much, this seemed like freedom! We saw these ad-hoc processes kicking off everywhere. One of the business managers even came up and wanted that capability built into every activity throughout her processes. We had a hard time convincing the users for not using it with such indiscretion, and rolling back this feature became nearly impossible even after processes became more mature in those particular areas. The problem is that none of those processes had any characteristics of being unstructured or dynamic.
Such dynamically created processes are difficult to manage, the metadata is inconsistent, one finds it very difficult to benchmark the processes and define KPIs. And process adherence becomes a huge challenge.
So, one has to be cautious with such capabilities, here are some of my suggestions:
- Draw a balance between process flexibility & process adherence objectives. You want user-friendly processes, but the rule-books cannot go away. Process flexibility cannot be at the cost of process adherence.
- Consciously and carefully evaluate whether the processes in question are truly dynamic. Apply the dynamic process kit only at the processes that show the characteristics of being dynamic.
- Question why those processes are dynamic? Is it due to the weaker process adherence culture? Are the variables causing the process to be dynamic out of your or organization’s control?
- Do you have a well-defined Process Exception handling approach? Sometimes, a standard approach to exception handling helps tame uncontrolled exceptions floating around.
- Define the roles that would be able to make the changes to a running process. Simple and obvious, but still very important.
- Remember that just because users like something doesn’t certify that as a good thing. Users know what they do, they know their processes, but they may not know what’d good for their processes and organizational efficiency.
With some caution, we could prevent the right & powerful solutions from being applied to wrong problems, Dynamic process kits are meant for truly dynamic & unstructured processes only.