Mike -
Many of the same principles used in programming can be used here. A few things to consider:
- Do some of the existing strategies use the same (or almost the same) routines/block of steps in certain places? If so, you might be able to move this block to a subroutine
- Do some of the strategies use essentially the same routing, but the only difference is the targets and/or treatments? If so, combine the strategies and do the customization with database lookups or list objects
- Is there a standard for variable /target naming conventions?
- Is there a lot of hard coding for targets, treatments, etc? Can this be modified so the strategy uses more data lookups than explicit declaration?
- What is the reason for the 100+ VQs? If some of them have similar attributes, could they be combined, and filters used to provide additional reporting?
For example, if you had VQ_QUEUE, VQ_QUEUE_RED, and VQ_QUEUE_GREEN, could you whittle it down to just VQ_QUEUE, and apply Filters to gather Red and Green statistics?
Good luck. Our original integrator did the same thing - created a bunch of similar strategies where the only things that changed was the target and the Virtual queue. Over the years, we've reworked our routing, to where we have a single core routing strategy (with about 60 supporting subroutines) that is data driven and supports 95% of our routing.
Kevin