What is Task Assignment?
Task Assignment (aka Role Resolvement) is the mechanism that decides ‘at run-time’ to which user a work flow task should be assigned. It is an essential part of every process engine. If the process defines that a request needs to be approved by the Head of Procurement, then the Task Assignment Mechanism will try to find at run-time a user with the role ‘Head of Procurement’ and assign the approval task to that person. And if that person is on holiday at that moment, then the Task Assignment function may even look up his replacement, and assign the task to that person.
In more technical terms therefore the Task Assignment mechanism is a set of rules, policies and trimmers executed by a rule engine to decide which user is the right person to execute a task at a given moment in time.
Why is Task Assignment important?
Take the example of an Expense Report Approval Flow. The flow will probably state that the expense note needs to be approved first by the Head of Department of the employee who submitted the expense note, and secondly by the Accounting Clerk. Without a Task Assignment function, the logic to determine which Head of Department needs to approve the expense note would have to be modeled in the process flow itself. In a simple organization with 3 Departments, that might look like this:
It is obvious that in a more complex organization (and which organization isn’t?) this is not a workable solution.
When you are modeling for a workflow environment with Task Assignment, the same process would look like this:
In a process modeling project, everyone focuses mainly on the process flow and les (or not at all) on the allocation of human resources to the steps in the workflow. That may be OK, until the moment you really want to execute the process in a workflow or process engine.
Conclusion: Task Assignment is important because it allows you to keep the logic
to assign a task to the right user outside your process flow by defining it in a separate set of business rules and policies.
You can do more with Task Assignment Rules
Another reason for adopting a process engine with a Task Assignment function is that you can do so much more with it.
Imagine a Task Assignment function that would balance the work load automatically over the available resources. Or that would include resources from other departments during peek hours. Or that follows a different logic in emergency cases (when availability of resources is much more important) than in normal cases (when delays are acceptable).
With a rule-based Task Assignment function, you can adopt different scenarios, depending on the context of the workflow. And none of it would influence the clarity of your process model.
Many commercial workflow or process engines ignore to a large extent the importance of resources and task allocation. And although that may be acceptable for simple workflows, it will become a major problem once you want to automate real business processes.
SharePoint’s workflow engine doesn’t have a Task Assignment function. That is why Spikes have developed such a mechanism as part of the SpikesTogether product, to operate on top of workflows in SharePoint. For more information: firstname.lastname@example.org