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.
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.
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.
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.
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.
But there was a schedule for everyone.
Usually the sorta places that need shift scheduling also require you to check in before your shift and will only pay for the hours that you worked, often those places have some sorts biometric check in mechanism, your suggestion doesn’t seem very practical in light of that.
I only kick up a fuss if someone shows up to do a shift who isn't even an employee.