Live data from Hacker News

Employee Scheduling

developers.google.com

21–30 of 137 posts

Re: Employee Scheduling

#21

Are there any good projects that implement this in a user-friendly system that allows schedulers to choose from multiple options and make adjustments based day-to-day conditions? Algorithms like this look cool but can end up being too rigid for many real-world scenarios. You can’t just take the output and force everyone to follow that schedule.

One option for real world use is to take the rigid schedule, and tell people that if they don't like it they need to find swaps with other people. Make the fill schedule visible to all so people can easily find swaps by hand. Always pay the original shift owner for the shift, and preferably, don't even keep records or who really did the shift (doing so opens you up to liability if employees swap in some way that is illegal, such as doing not enough shifts to qualify for medicare/benefits/whatever).

Tell them that it is critical someone fills every one of their shifts, but it needn't be them. Employees will end up bartering, swapping, paying for others to fill their shift, etc. Overall, most shifts will get filled, and most people will be happy.

You run the small risk that an employee will deliberately use the ability to swap to work some illegal shift pattern, and then prosecute you over it. So far, it's never gone far.

Re: Employee Scheduling

#22

Are there any good projects that implement this in a user-friendly system that allows schedulers to choose from multiple options and make adjustments based day-to-day conditions? Algorithms like this look cool but can end up being too rigid for many real-world scenarios. You can’t just take the output and force everyone to follow that schedule.

A good iterative approach taken by many hourly jobs is to have some scheduling horizon, say 1 week in advance.

You run the scheduler software, then send each employee a text message saying "We're offering you a shift Monday at 9am for 8 hours. Accept?". After 24 hours, rerun the scheduler with accepted/denied shifts as constraints, and repeat till all shifts are filled.

Obviously you may not end up with optimal schedules when people start denying shifts, but you get pretty close.

When a particular shift gets denied by more than ~3 people, they normally give a ~30% pay boost for that shift to get it filled.

Re: Employee Scheduling

#23
Great find, thank you. I ended up playing with the tools they provide. I always loved solving optimization problems and this page ia a gem, I did not know it existed.

Re: Employee Scheduling

#24

I’m a bit uncertain about what Google OR-Tools is…it seems to be some sort of framework for solving optimization problems, but based on the example here I am curious how general such a tool can be, as normally I find that a “drop in” algorithms framework is generally quite difficult to make or use. Is anyone using this for something useful? Does it perform faster than a hand-rolled implementation tailored to the prob…

I have used the or-tools VRP (vehicle routing problem) solver to optimize the drawing order of a pen plotter [1]. The Python API is a bit ugly but once I got past that, I found it had enough flexibility (e.g. asymmetric costs, disjoint routes) to represent the problem neatly.

1. https://nb.paulbutler.org/optimizing-plots-with-tsp-solver/

Re: Employee Scheduling

#26

Are there any good projects that implement this in a user-friendly system that allows schedulers to choose from multiple options and make adjustments based day-to-day conditions? Algorithms like this look cool but can end up being too rigid for many real-world scenarios. You can’t just take the output and force everyone to follow that schedule.

One option for real world use is to take the rigid schedule, and tell people that if they don't like it they need to find swaps with other people. Make the fill schedule visible to all so people can easily find swaps by hand. Always pay the original shift owner for the shift, and preferably, don't even keep records or who really did the shift (doing so opens you up to liability if employees swap in some way that is i…

Admitting you pressure your employees (not independent (sub)contractors) to pay off part of their wage to do their job? Offloading your logistical planning work to staff and not paying them for the time spent? This is begging for a NLRB lawsuit and I hope someone wises up.

Re: Employee Scheduling

#28
post #15

State of the art for employee scheduling seems to be column generation; see benchmarks here: http://www.schedulingbenchmarks.org/nurse.html Here is an open-source column generation solver that currently achieves the best solutions on that benchmark: https://github.com/PetterS/monolith/tree/master/minimum/line...

Thank you for the pointers! I've been interested in crew scheduling systems for my company to make effective use of personnel. Is the problem of producing ideal time slots for appointments requiring a crew (pattern of ordered and unordered availability) very different?

Re: Employee Scheduling

#29

Earlier quoted context omitted.

One option for real world use is to take the rigid schedule, and tell people that if they don't like it they need to find swaps with other people. Make the fill schedule visible to all so people can easily find swaps by hand. Always pay the original shift owner for the shift, and preferably, don't even keep records or who really did the shift (doing so opens you up to liability if employees swap in some way that is i…

Admitting you pressure your employees (not independent (sub)contractors) to pay off part of their wage to do their job? Offloading your logistical planning work to staff and not paying them for the time spent? This is begging for a NLRB lawsuit and I hope someone wises up.

True, although from what I've seen it's actually rare for money to change hands. There seems to be quite an honor code - "I'll do your shift this time, as long as you remember that next time I want the day off.".

The only time people get upset is if someone trades a bunch of shifts, then quits. People who don't like that have the option of just not swapping shifts though.

Re: Employee Scheduling

#30

Earlier quoted context omitted.

One option for real world use is to take the rigid schedule, and tell people that if they don't like it they need to find swaps with other people. Make the fill schedule visible to all so people can easily find swaps by hand. Always pay the original shift owner for the shift, and preferably, don't even keep records or who really did the shift (doing so opens you up to liability if employees swap in some way that is i…

Admitting you pressure your employees (not independent (sub)contractors) to pay off part of their wage to do their job? Offloading your logistical planning work to staff and not paying them for the time spent? This is begging for a NLRB lawsuit and I hope someone wises up.

> Offloading your logistical planning work to staff

But there was a schedule for everyone.

Post reply on HN