Digital Supply Chain Job Scheduling Algorithms…

- First In First Out (FIFO) – the idea here is that items get processed in order – the first request is the first to get processed; this is exactly like the line at McDonald’s or just about anywhere else you go. The problem with this approach is that it doesn’t take priority into account.
- Round Robin – this approach works when there are multiple queues, you pull one item from one queue, one from the next queue, etc. For priority, you can use this approach by having a ‘high priority’ queue and a ‘low priority’ queue; this way, both will get serviced over time. Since I travel a lot, I know of a good example of this one: the ‘first class’ line at the airport. Agents typically service someone from the regular line then someone from the first class line then regular then first class and on and on. This approach works fairly well in helping to assign priority, but it’s still doesn’t discriminate between levels of priority, and it can cause a backlog of priority jobs that don’t get serviced in time.
- Priority based – this is an ‘enhanced’ round robin approach. In this case, you assign a priority amount to each work item. Each item in the queue is then sorted based on priority so that the ‘most’ urgent requests get serviced first. Again, using the airport example, this is how airline employees are treated – they get to move to the front of the ‘first class’ line when going through security – ahead of the elite travelers.
- Shorted Job First – this approach sorts jobs based on what can be completed the quickest. It ignores priority, but it does tend to optimize the system so that you can get the most jobs completed over a period of time. By way of analogy, think about standing in line for a copy machine. If 10 people have 1 page to copy and 1 person has 100 pages to copy, it’s most efficient to let the 10 people go first. The problem with this approach, though, is that as more work items come onto the queue, it’s possible that long running processes get pushed back so far that they never get done – essentially aging out.
- Multi-Level Feedback Queues – this approach uses a number of queues which take into account both processing time as well as priority. It can also take aging into account to make sure that a low priority, large job eventually does get completed as its age eventually makes it high enough priority.
As I’ve continued to approach various digital supply chain problems, I’ve been continuously reminded that most of these problems have been seen before in various other contexts. It’s a good idea to make sure that you don’t re-invent the wheel – if there is a good algorithm or approach already being used, leverage it…


In a recent article from Reuters, 



