Almost every decent ITSM tool offers the admins to configure a set of rules to assign or route tickets to proper support groups or specialists. BMC Remedy ITSM Suite is no different, as expected, and has its own assignment engine. But I the result is a bit confusing and maybe not as useful as it could be. The result is a overloaded system, difficult to maintain, or worse, not using the assignment engine.
In this post I will review the BMC Remedy ITSM Suite’s assignment engine.
Remedy has two different tools to automatically determine which support group must be assigned for some specific task or role, and to determine which specialist within this group is assigned. The second is based on the assignment engine, a core tool that can assign records to individuals in a very intelligent way, using different algorithms. For instance, it can assign technicians one after another in a round-robin basis, or check the remaining work for each individual to assign the ticket to the less occupied, etc.
The first, the support group assignment, is based on the CFG:Assignment form. Using this form you can define a set of rules, that when matched will determine which group must be assigned to each ticket.
As I said, the assignment engine is a core part of Action Request System. But with BMC Remedy ITSM Suite, it’s use becomes simpler, since you can configure it form rules. For instance, the HPD:CFG-Rulesform, defines the behavior for incident management.
My opinion about this assignment engine, is that is very easy to configure but it is not enough for the majority of cases. For instance, you can’t consider the availability of the user. Imagine a support group with a 24×7 operational service. People inside this group are rotating. The assignment engine doesn’t care about who is working right now. There is no way to implement it using this engine as it comes. My experience tells me that this assignment engine integration will be set off for the most of cases.
This form is the key of ITSM’s automatic assignment. This form covers all the different roles for each process where a support group can be assigned (like the assigned group and owner group of an incident, or the assigned group, coordinator group and manager group of a change). Thus you can create different routing rules for the different roles. For instance, for a laptop incident in a company, you may want your Help Desk support group to be the owner, and you laptop-PC support group to be assigned. In this case you will create different rules for the owner and for the assigned.
For each assignment you can define a set of constraints (Routing order), including the organization, the location, the operational categorization and the product categorization, that if matched, the defined support group will be chosen. If more than one rule applies, then the one with highest priority (sort order) is selected.
So, the use seems very easy and flexible, just select the constraints, the support group and go live!. But when starting to design the rules, things start to change…
The great limitation is the set of constraints. Yes, at first sight seems that the main options are covered by the proposed constraints, but believe me, it will not pass so many time until you discover that you need another field at the constraints set. Some examples of fields needed that I found in the past:
- Service CI: Sometimes if far more easier to route by service, than by product category.
- Time of the day: If you have some night-guard group, maybe you want to route all tickets to it.
- Workday or weekend: Same as before.
- Priority: Maybe you can bypass some layer depending on priority.
The conclusion is that it doesn’t matter how many fields you put on the constraints, it will be always some missing field. The only solution is to have an extra field where you can write an arbitrary qualification. Thus you will have all the needed flexibility. But I think I know why BMC has chosen to not to put it. It is because, the current approach makes an intensive use of indexes, so no matter how many requests do you have on the CFG:Assignment form, it will be fast. If you must evaluate this extra qualification, the performance can degrade. My opinion is that the next version of this form must include this arbitrary qualification. The engine will ignore it, and only will check it on the chosen rule. If not qualified, then look at the second rule. So only a reduced set of rules will be evaluated at every auto assignment.
Depending on your organization, you can survive with a reduced number of rules (I mean less than100), or you may need a very high number of them (more than 10.000). It depends on the number of support groups and your procedures. The main problem is that the constraint model only allows you to select one item, with the risk of the need of creating a lot of rules for one simple concept.
Imagine the next case, your organization is composed of regions, divisions and departments. You want that all management employees have a VIP Help Desk for the routing. If you have 4 regions, and for each region, 5 divisions, that means 20 management departments. So you need 20 rules.
But things can become worse when you combine this effect at two dimensions, that its, you want that all corporate services for management departments will be routed to VIP Help Desk. There are 50 product categorizations related to corporate services. You must create a rule for each combination of product categorization and department, so 1000 rules are required.
As your company mature the auto assignment rules, also the template catalog is completed. It arrives at one point where you start having a set of templates covering almost every case on your organization. You can choose the support groups at the template, so it can arrive one point when you will evaluate if does it worth the effort of maintaining the assignment rules, when the 90% of the cases a template is used.