In our last post we considered planning theory as a unique problem solving domain, so now let’s compare and contrast Planning and Scheduling, understanding how they work together.
In most every plan we’re following a series of steps, tasks following one after another, where task order is driven by their interdependencies. But when we have some flexibility and certain task sequences are much better than others, then we have a separate scheduling problem within our planning activity that deserves special attention.
Scheduling looks at small subsets of tasks within our overall plan, within a much shorter horizon, considering much more detail and using different measures, to generate efficient task sequences. It requires a completely different skill set and supporting capability than Planning.
For example, say we have some jobs lined up and hourly employees staffed to do them; each job has multiple steps that can be done in any order by anyone, but our staff has varying pay grades and skill sets, each being much more efficient at certain kinds of work. We want jobs done on time with the least cost.
We start by planning, sorting jobs by need time and estimating how many staff we need each week based job types and historical patterns. Then we task our trusty scheduler with finding least-cost weekly assignments, utilizing each worker between 20 and 60 hours per week, completing all jobs on time. In week one we plan four people to do a set of five jobs, each having three steps; if our scheduler evaluates ten thousand schedules per second, we’ll have the least-cost schedule for that first week in … (4*15!/[1E5*3600*24*365] = ) … 16 years!
Every type of scheduling problem is different, but we know in general that they’re notoriously difficult to solve optimally, being in an altogether different space than planning. Their difficulty is often completely independent of planning complexity, and varies enormously by problem type and size. We need good answers fast, not perfect answers, using common-sense rules of thumb to simplify problems and very specialized optimization tools to do the heavy lifting.
And we can’t forget that every scheduling problem is embedded within some kind of planning problem, and that the inputs to our scheduling problems come from our plans: “A bad schedule from a good plan is better than a great schedule from a bad plan.” (Sanjiv Sidhu, i2 Technologies co-founder)
Next we’ll explore how Execution fits in with both Planning and Scheduling.