Blogs

The Evolution of Scheduling

Scheduledrafter began as a question.  Why is scheduling so hard?  Why is it masked in confusion and mistrust?  Why do the scheduled so often mistrust the schedulers?  Why such an opaque battle between the scheduled and schedulers.  Why do the scheduled have to rely on favors and friendship when trading schedules?

Points.  Scheduling needed points.  Simple.  Straightforward.  Transparent points.  Workers know the pain of working overnights.  Workers know the glee of working weekdays and having weekends off.  Scheduling needed a points system.   

Simple enough, but how to generate a point system that works for every schedule.  That works for all types of interesting workers.  Waiters like working weekends.  That is where the big money is found.  Nurses hate working the weekends.  All their non-nursing friends are socializing then.  A factory worker in Oklahoma likes Friday nights off because that is when his son plays football for the local high school.  A factory worker in California’s son plays on Saturday nights.  

Ranklist.  The same mechanism the system uses to determine preference could also determine points.  Flexible.  Fair.  Gameable.  Eww weee!  Gamable.  Nothing the modern world loves more than its games.  Nothing takes the sting out of working a night like gaming a way out of working a holiday.

Ok.  So the idea was formed.  A scheduling system that determined points based on user ranklists and prioritized schedules based on points.  Simple enough.  I think we need a website and a database.  Should take a month or two.

Ooops.  Uh, Oh… Yea..  Turns out, scheduling is really hard.  Ask any real world scheduler they know.  They try block scheduling, self scheduling, random scheduling.  Ask the academics.  They try stochastic optimization, genetic algorithms, colony optimization, simulated annealing, quantum annealing, coordinated descent… 

Yea, Yea, Yea… We get it scheduledrafter blog writer.  Scheduling is HARD.

The academics call it NP-Hard.  Non-deterministic polynomial-time, hard to be exact.  Ok that does seem kinda hard or at least a waist of a lot of syllables when “hard” would have sufficed.  In Computational Complexity it means kinda... like impossible... or something… probably.  Well, the nerds at Scheduledrafter were not the same nerds of Computational Complexity.  So they were a little ignorant and arrogant about the futility of their task… um, “ingnorarrogant” or “arroignorant” whichever you prefer.  

And they went about solving the scheduling problem... 

As young people do...

Toiling away...  

Saying just another month... 

Ok, just one more month...

Another year...

Ok, just another two years… 

Another two years...

Eventually…  

They got something… 

Oh, maybe not…

Then something more… 

No, not exactly...

Then more…

Wait, is that right…

No...

Then a complicated little schedule…

Then a simple big schedule…

Then a complicated, big schedule…

Hum, this thing kinda works…

Yes, this thing WORKS!

Schedulers were wowed.  Academics said, “Hey, how’d you do that?”  Along the way, doctors learned to program.  Computational Physicists learned about shift work.  And life found a way.