1) Create a custom program to scan through occupied positions and if they have more than one holder calculate the duration that position has had more than one holder. If it is a period of two weeks, send an email to the manager.
2) As soon as an employee is changing positions, start the Workflow and check if it is double occupied. If it is double occupied, Workflow tracks the duration using the Loop until functionality. When a position has been occupied for a two week period an email is sent to the manager.
I am not sure which of the two would be the most efficient way. As well, I do not know what the impact of any shutdown or other irregularities would have on the loop until in Workflow. The organization has about 60,000 positions. Most of them are not double occupied.
I quite like this question because I think it illustrates some of the common design decisions that we have to make as Workflow Architects. The question of "what should be implemented as a workflow?" is one that is constantly grappled with during the "blue print" (design) phase of any project.
The "custom program" is a more efficient approach then a Workflow (less overhead), but it will also be more restrictive. If it is likely that further requirements will be added in the future then you may find yourself "throwing out" the custom program and re-implementing the functionality in a Workflow.
My recommendation is go with the Workflow as long as you are not concerned by high volumes (performance) and would prefer to have the flexibility that the Workflow approach affords you.
This was first published in September 2004