Delegation is Hard
- December 21, 2017
- 0 Comments
One of the more common request I hear from our process automation customers is a request to support task delegation in their solution. Many customers seem somewhat mystified that the process automation Engine they have chosen doesn’t have out of the box (OOTB) support for this scenario. Over the years I’ve come to the conclusion that this remains unaddressed because doing it well is actually a very hard problem.
The reason customers feel that this should be a simple problem to solve is because they are generally only concerned with a very limited use case. The process automation engine provider however needs to ensure that what they provide OOTB will work for all their various customers. This need for completeness drives the complexity and I think is why most engines still don’t support the delegation use case.
To understand where the complexity comes from you need to understand that DPA can be used to solve any number of very hard business problems, some of which come with very strict rules about who can do what in a solution.
The basic delegation use case is something like “While Andrew is out of the office, please take any items assigned directly to Andrew and assign them to Krista.” This seems very simple and if that is all that is required it is fairly easy to implement. However here are all the items that make this much more complex than this simple statement makes it appear.
- Do we need to take groups into account?
- What happens when Andrew gets back?
- Does that behavior depend on the process or task?
- Does it depend on if the initial assignment is to a group or directly to Andrew?
- Should Krista have blanket permissions?
- How does Krista differentiate “Krista” tasks from reassigned “Andrew” tasks?
- Is delegation chaining allowed? If Scott delegated to Andrew, is Andrew allowed to delegate, and if so, do Scott tasks now go to Krista?
Because of all this complexity, it is difficult to create one solution that will work for all situations. And the reality is that your specific use case may in fact be very simple. Most of the Process Engines available today have the APIs required to support delegation, and BP3 already has the building blocks to create the right delegation solution for you.