When designing workflow systems you may be faced with try to optimize the performs of your resources (by resources mean anything from people, machines, parts, space in a warehouse). Well there are a few things you may need to consider. Lets take for example a manufacturing environment. In order to schedule a resource to perform a task you need to ensure that the task can be done by the resource.
It may need an array of constituent parts or componenets to perform the task
It may need to have an allocation of time
It may need to have capacity downstream
It may need to have an alignment or syncronization of all of the above.
Lets say I am making computer equipment. I have a giant machine that can make computers and monitors, I just pour in silicon and out pops a computer or monitor. In sucessfully make a run of 10 computers I may need to ensure that
A: I have some silicon
B: I have a spare slot where I can use the machine
C: I have space in my warehouse to store the machines once I have made them
D: I need to ensure I have the silicon, slot and space available at the same time.
In some ways resource scheduling is like a game of chess, you are much better off if you can think several moves in advance.
BTW I am off to Beautiful British Columbia (Victoria and the couv) for a friends wedding – weddingabovetheclouds.com talk about overkill, anyways that means that I will most likely not be posting anything until mid august.