Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend the workforce scheduling mod #88

Open
2 tasks
simonbowly opened this issue Jun 5, 2023 · 2 comments
Open
2 tasks

Extend the workforce scheduling mod #88

simonbowly opened this issue Jun 5, 2023 · 2 comments

Comments

@simonbowly
Copy link
Member

  • Add a "teaming" extension: certain staff can complete certain roles, and a shift is defined by the number of each role needed. e.g. a shift needs one supervisor, at least one senior worker, and two more workers of any level
  • Add costs: with teaming done, the objective needs to capture that supervisors/seniors are more costly than junior staff
@ronaldvdv
Copy link

ronaldvdv commented Jun 8, 2023

I can see a few ways to make this work:

  1. Assume that the role requirements are the same for every shift in the dataset. I think that would be too simple: night shifts often require a smaller number of employees.
  2. One could also just add one shift instance per required role and specify the min/max number of employees.
  3. We could define a ShiftType table. Each shift could refer to a shift type, which could also be useful for labor rules. The shift type could then define the required number of employees for each shift of that type.
  4. We could say that one shift type always links to one particular role (e.g. "Supervisor night shift"). The shift would refer to a shift type and therefore have a specific role. Either the shift itself or the shift type could then define the required number of employees.

I think the middle option would be the easiest to implement, but puts much more responsibility on the user of the optimod. I tend to prefer option 3 or 4 - feels more clean and can be useful for labor rule additions too (see #92 ).

@ronaldvdv
Copy link

Some more thoughts:

  • Often the concept of "roles" can be generalized to "skills": Employees have certain skills, and shifts require certain skills. While people typically have only one role, they can have more than one skill. An employee assigned to a shift would need to have all requested skills.
  • Perhaps option 2 above is not that bad. Letting a single shift represent the need for multiple, different people adds a layer of complexity that's perhaps unnecessary. If the roles required for each shift are always the same, one can easily use a helper function to generate the input data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants