Anti-Buzz: Scheduling

newface-620x461Another attempt to explain a complex computer science topic in simple terms, it is also something else: I’m going to validate a business process that does not get validated enough: scheduling. So point your receptionist or office manager or whoever configures your employee schedule to this article because scheduling, in general, is very very hard, and whoever does it for you deserves some credit, (and some slack when it goes awry).

In an age where computers have clearly simplified a lot of things and where a lot of our daily interactions with computers feel like “magic” – say how your camera knows how to focus on faces, or how Target knows when you’re pregnant – scheduling can stick out like a sore thumb to the poor souls tasked with managing them. There’s no magic moment in scheduling. Even if you are using scheduling software, and even if it is very good software, it is hardly going to be perfect, and there are a variety of reasons for this.

If you take a colloquial view of computers, where computers are magic and the magic is concocted by programmers who know all the secrets, then you might think that the only reason a nice software solution to a problem hasn’t been invented yet is simply because programmers haven’t spent enough of their efforts weaving the right kind of magic. But as I’ve said time and again in this column, that view does not match reality. There are mathematically proving limits to computing, lines that no amount of software or hardware or programming genius can cross, and scheduling, as it happens, is extremely difficult and time-consuming. The scheduling magic is never coming.

Oh, there is scheduling software, and much of it might be very good, but I know that the narrative on the ground is that these programs are hardly perfect, even if they do save you a lot of time. In most office settings, the work schedule is still an authentic, hand-crafted process. In addition to the inherent difficulty, there are some other factors keeping computers from taking over this domain.

The first is imperfect knowledge. Ostensibly, you have employees and those employees have provided you with their availability, but this information is often incomplete. The nuances of an employee’s week are not always communicated to you. Sure, they might plan their vacation way ahead of time, and they might responsibly inform you of a doctor’s appointment or other obligation, but not all of these wrinkles are given to you. Often they aren’t necessary. If you post a schedule and an employee knows they aren’t scheduled to work on a certain day, they might make plans and not tell you. Why would they need to? But then let’s say another employee points out an error or otherwise requires a last minute change, and so the schedule gets remade and the first employee is now scheduled to work on the day they didn’t think they had to and now their uncommunicated plans become another bump in the way of ironing out the schedule. This implies a secondary objective that most scheduling software has great trouble accounting for: flexibility. A schedule not only has to leave you adequately staffed, but it has to be flexible against last minute changes. This isn’t an objective that is easily standardized, as a good working definition of “flexible” might vary from office culture to office culture.

The second complicating factor is that scheduling is both a constraint satisfaction problem and a maximization problem; but this is where I have to start talking in nerdier terms. Both of these problems are easy to understand in this context. The constraint problem is that you have defined needs in terms of staffing hours (a minimum constraint), and your employees have constraints on when they are available, and the maximum hours they can be assigned. Going shift by shift through the week, this is a classic constraint problem in that you need to pick which employees work that shift, but there is a need to “look ahead” and make sure that the assignment you make here doesn’t create an impossible situation later in the week. I won’t dig into why this is computationally expensive, but this probably matches the intuition of any poor office schedule maker; yes, it really isn’t that simple, it is like a giant puzzle, and sometimes it is really hard. Schedule makers, feel vindicated!

And it’s not only a constraint satisfaction problem. In fact, when scheduling software throws out a schedule for you, it no doubt meets your constraints, but something else is missing. The schedule isn’t “good.” It doesn’t feel right. What’s missing is that most offices want to maximize some utility in their schedule. This utility can be employee satisfaction, balancing skill levels, concentrating customer service skills on a certain day, keeping certain employees together, keeping certain employees apart. There’s some amount of happiness or goodness that you want to maximize, but it can be hard to quantify, and even if you could, that quantity likely differs from office to office. You might call these soft constraints in that they don’t have to be observed but it is better if you do.

At the end of the day, a human made schedule isn’t perfect. it doesn’t have to be. It just has to be good enough, but the intuition behind “good enough” is not something that programs easily. Scheduling really illustrates the difference between the human mind and the computer. The computer is perfect but stupid where the human mind is imperfect but very smart and fast with intuition.

Leave a Reply

Your email address will not be published.