As a kid, I watched my Dad pack the trunk of the car for a vacation. His golf shoes were not a priority item–at least from the perspective of the rest of the family. However, they were the only item in the stack of awaiting luggage that would fit behind the spare tire, so in they went! And they went in early in the packing process. That “lower priority item” used space which otherwise would have been empty. Packing them where they just fit kept the remaining trunk space available for the higher priority luggage. It turns out packing was a puzzle, not a prioritizing system.
The most efficient scheduling should be thought about in the same way. While it’s intuitive to schedule items on a timeline—meaning earlier times are on the left and later times follow the continuum to the right, it’s not always the best solution. For example;
- Suppose you have a list of activities that need to be scheduled. Each of the activities can have a different earliest start time and a latest finish time. And each can have a different priority level. That is, some are more important to get on the schedule than others. Should you schedule the activities in the order of their earliest start times or should you schedule the highest priority ones first?
- Suppose you are trying to build a schedule in which all activities get done “just in time.” Should you schedule the activities in the order of their latest finish times? Or should you schedule them backward from the latest time on the schedule?
- Suppose you are trying to schedule the activities into spaces that exist on a timeline that has already been partially populated. Should you schedule earliest first or look for a hole where an activity fits the tightest so that the remaining spaces are as big as possible?
If you think about it, scheduling as soon as possible (or with “left-to-right” reasoning) can lead to results that don’t utilize scarce resources in the best way.
In an earlier blog, (http://schedulingdoneright.com/whats-a-good-schedule/) I wrote about making good local decisions in order to generate the best schedule. Obviously, those good local decisions should be as intelligent as possible about their impact on future scheduling decisions. Human schedulers do this; they employ a “look-ahead” logic almost instinctively. From experience, they realize that maybe assigning an activity to a resource that is available a little later than the earliest available resource might preserve some flexibility for scheduling another activity that requires the same type of resource.
The analogy to scheduling shows that the processing sequence should not be based solely on earliest or highest priority, but should be based also on best fit because the best fit criterion has a look-ahead aspect to it. It anticipates preserving the degrees of freedom (or possibilities) for future decisions.
Tools designed using simulation approaches are left-to-right schedulers and produce less-than-optimal results. Capacity is often under-utilized in the schedules produced this way. When looking for a scheduling application ask three important questions:
- Does the scheduling process use only left-to-right (earliest-to-latest) scheduling? (If so, pass.)
- Is the sequence of activities considered for the scheduling dependent only on start times or priorities? (If so, pass.)
- Is there “look-ahead” logic incorporated in the start time decisions and resource selection? (If so, then you’ve got a winner!)
Remember: Scheduling multiple activities with differing priorities is no different than packing the car trunk. It’s a puzzle. Get those golf shoes in!