We all love automation. How can we not? Our coffee makers brew our morning joe at the exact temperature we prefer each morning, we have a customized news feed in the palm of our hands to bring us only the genres of news we like to see—in fact, we have nearly every daily function we perform for ourselves and others within a few clicks. Boom! We love it.
The evolution of scheduling is no different. For at least 30 years, schedulers have recognized the need computers and automation. Even for moderately-sized operations, the scheduling task can become overwhelming. Still today, many organizations have whole departments dedicated to the tasks of scheduling and resource management. That’s good for white board suppliers, but it doesn’t say much for the application of computers to the scheduling domain.
As an algorithmic challenge, scheduling has been studied by operations researchers and computer scientists alike. Their conclusions are that the general problem is “NP-Hard,” which in laymen’s terms means that as the dimensions increase, the computer run times to solve it grow exponentially. That’s really fast!
As a cognitive challenge, scheduling has been studied by behavioral scientists and they have concluded that humans make really good decisions when the choice possibilities are relatively simple but are overwhelmed by the task of finding the possibilities. (Duh, right?)
However, this rather obvious conclusion holds the key to designing a great scheduling solution. Computers can handle things more dimensionality and can perform a routine task hundreds or thousands of times without making an error. Therefore, computers are good at generating possibilities and humans are good at deciding which of the possibilities are the best Between the computer and the user, which do you think should get the decision-making responsibility?
We have all seen what happens when the wrong party gets to make the decisions in the end. (Self-driving cars, I’m talking about you.)
My point: Automation is great. 100% automation, maybe not so much. The human input will always be a vital component.
Here’s an unhappy scheduling example:
A customer wishes to place an order and the order-taker seeks a date when the order can be delivered. Using a scheduling application, she gets back a date but it is unsatisfactory for the customer. After a few of these episodes, the order-taker asks for a smarter scheduling application that will automatically rearrange the production schedules in order to meet the customers desired delivery date. To build the “smarter” scheduling application, the logic designer decides on the following strategy: Find the low priority orders already scheduled and remove them so that the new order can schedule. Then put the lower priority orders back on the schedule.
Among the consequences could be the following:
Most of the low priority orders missed their promised dates causing many unhappy customers instead of just one. The shop floor gets massive changes which cause their material supplies to be unavailable when needed. The workers get tired of being re-directed frequently and they resign. The boss is furious and the order-taker says, “That’s just what the system told me to promise and I satisfied the prospective customer.”
It’s easy to see that embedding a decision-making strategy into the application was the reason for the chaos. Resolving the situation with a new order might have better accomplished the problem by unscheduling orders in a certain time period, or customers that were not on a preferred list, or orders that cost the least to postpone, or used the most scarce resources, or the same resources as the prospective order, or ….. The resolution strategies are countless. The best one could depend on circumstances, organizational policy, or experience. It’s up to the unique characteristics of the organization or specific situation. However, any strategy for resolving the situation depends on executing similar steps:
1. Find the scheduled activities that satisfy certain criteria;
2. Examine and edit the list of activities that satisfy the criteria;
3. Unschedule the selected activities;
4. Schedule the prospective order;
5. Check to see if the results are satisfactory for the prospective order;
6. Reschedule the unscheduled activities;
7. Check the impacts of the rescheduling;
8. Repeat the above until the best alternative is found.
Notice that steps 1, 3, 4 and 6 are easily assigned to a computer. Steps 2, 5 and 7 involve decisions best left to the user. But even the user decisions can be assisted by the computer. This is a decision support system, not a decision-making system.
Hallelujah! Time for my (175-degree) coffee break.