Red Hat Training

A Red Hat training course is available for Red Hat Process Automation Manager

Chapter 2. Overview of the employee rostering starter application

The employee rostering starter application assigns employees to shifts on various positions in an organization. For example, you can use the application to distribute shifts in a hospital between nurses, guard duty shifts across a number of locations, or shifts on an assembly line between workers.

Optimal employee rostering must take a number of variables into account. For example, different skills can be necessary for shifts in different positions. Also, some employees might be unavailable for some time slots or might prefer a particular time slot. You can specify inputs for these variables using the tabs along the top of the application window.

Important

The current version of the starter application is limited to working with generated test data. You can use it to evaluate the Red Hat Business Optimizer capabilities. It is not suitable for use in a production environment.

Figure 2.1. Employee rostering toolbar

optaTabs

2.1. Entering source information for employee rostering

In order to produce an optimal employee roster, a set of input data is required: skills, spots and employees. Additional data, such as employee availability and rotation orders, can be used to further optimize the generated roster output.

Tenants

In the TENANT field at the top right corner of the application window, you can select one of the predefined tenants. Each tenant represents an independent set of data (inputs and roster outputs); any change in the data for one tenant does not affect any other tenants.

You can switch between tenants to use several independent data sets, for example, to prepare employee rosters for different locations.

Skills

In the skills section, you can set all skills that can be necessary in any position within the roster. For example, a 24-hour diner would require cooking, serving, bussing, and hosting skills, in addition to skills such as general human resources and restaurant operations.

To enter these skills, click the Skills tab.

Figure 2.2. Initial skills list for the factory tenant

optaSkillList

Editing the skills list:

  • To add a new skill:

    • Click Add Skill.
    • Type the name of the new skill into the text box that appears.
    • Click Save Skill.
  • Edit skill names by clicking the Edit Skill icon (pencil shape).
  • Delete skills by clicking the Delete Skill icon (trashcan shape).
Note

Within each tenant, skill names must be unique. Skills can not be deleted when they are associated with an employee or spot.

Spots

Spots refer to the various positions at the business. For a diner, spots include the bar, the bussing stations, the front counter, the various kitchen stations, the serving areas, and the office. For each spot, you can select one or more required skills from the list that you entered in the Skills tab. The following figure shows a sample list of spots and skills for the factory tenant example:

Figure 2.3. Excerpt of spot definitions for the factory tenant

optaSpotList

Editing the spots list:

  • To add a new spot:

    • Click Add Spot.
    • Type the name of the new spot into the text box that appears.
    • Select one or more skills from the combo-drop down list that appears.
    • Click Save Spot.
  • Edit spot names and associated skills by clicking the Edit Spot icon (pencil shape).
  • Delete spots by clicking the Delete Spot icon (trashcan shape).
Note

Within each tenant, spot names must be unique. Spots can not be deleted when they are associated with an employee roster.

Employees

The Employees tab contains a list of all people employed by the business and the skills they possess. The following figure contains an excerpt of the employees in the factory tenant example:

Figure 2.4. Excerpt of employees for factory tenant

optaEmployeeList

Editing the employee list:

  • To add a new employee:

    • Click Add Employee
    • Type the name of the new employee into the text box that appears.
    • Select one or more skills from the combo-drop down list that appears.
    • Click Save Employee.
  • Edit employee names and associated skills by clicking the Edit Employee icon (pencil shape).
  • Delete employees by clicking the Delete Employee icon (trashcan shape).
Note

Within each tenant, employee names must be unique. Employees can not be deleted when they are associated with an employee roster.

Spot Roster

The Spot Roster is a table of all shifts (time slots) during which the business is open and all spots that must be manned during each shift. Each shift is represented by a rectangle at the intersection of a spot (row) and time span (column).

Spots can support multiple employees per shift. If a spot is not required for a shift, you can remove all of the shifts completely from the roster for that time span.

Figure 2.5. Spot roster for factory tenant example

optaSpotRoster

To view the spot roster for future days, use the horizontal scroll bar at the bottom of the window.

Double-click an open area in the schedule to add a new shift to the schedule or double-click an existing shift to edit it. The value for the spot type and time frame is set by the initial click and is not editable. By default, the employee is not editable either, as the planning engine determines the employee for every shift. A particular employee can be "pinned" to a shift by selecting the Pinned check box and selecting the employee from the Employee drop down.

Figure 2.6. Shift details for pinning and deleting

optaSpotPopup

Rotation Patterns

The Rotation tab allows the schedule administrator to specify the default shift patterns for new weeks, withut adding shifts manually. You can also apply default employees to the shifts and drag and drop the shift borders in this tab to change the length of shifts. The default assignments are "low priority" and can be superseded by "higher priority" constraints such as employee availability and pinned assignments in the spot roster.

Figure 2.7. Rotation configuration for factory tenant example

optaRotation
Note

In the current version, the rotation data is essentially pre-set in the example data sets. In a subsequent version, these rotation preferences will be fully editable from the user interface.

2.2. Creating an optimal employee roster

Procedure

  1. Adjust the skills, employees, and spot types.
  2. Move to the Spot Roster tab:

    1. Adjust the pre-populated shifts by adding/removing as necessary. (This change might not work in the current version of the application.)
    2. Pin specific employees to shifts as necessary.
    3. Click the Solve button to create an optimized solution.

The engine takes up to 30 seconds to create a fully optimal result.

When the optimal result is available, the Spot Roster displays the name of the assigned employee for each spot and shift.

2.3. Publishing the employee roster and enabling generation for subsequent dates

After generating an employee roster for a period of time, you can ''publish'' the roster. Publishing means that the roster can no longer be changed in the automatic rostering process; therefore, you can safely distribute rostering information to employees.

At the time you publish a roster, a new period (normally one week) is added to the Spot Roster tab. When you click the Solve button, this new period is filled in, but the roster that was already published is not changed.

Procedure

  1. Move to the Spot Roster tab:
  2. Ensure that the displayed roster is fully acceptable.

    • Click the Publish button at the top right corner
Important

In the generated test data, the first three weeks are already solved and published. You can solve the rostering for the subsequent period and then press the Publish button.

2.4. Setting employee availability

Note

This section is not fully functional in the current release and will be enabled in a subsequent release.

Employee Roster

The employee roster tab displays an employee-centric view of the schedule with a row for each employee depicting their assigned shifts.

Figure 2.8. Excerpt of employee roster for factory tenant

optaEmployeeRoster

You can also use the employee roster view to specify the availability for particular employees:

  • Double click on the schedule within the row of an employee to open the Edit availability pop-up.
  • Select the availability preference (unavailable, undesired, desired). If an employee is unavailable for a particular shift, the employee can never be assigned to this shift. "Undesired" and "desired" are preferences that the rostering engine accommodates when possible.
  • Click Apply to save.

Figure 2.9. Employee availability preferences example

optaEmployeeAvailability

After making changes to employee availability, click the Solve button on the Spot Roster tab to update the schedule.

Note

The Unavailable option also applies for employees who call in sick or are on vacation. If an employee calls out just before a shift, a manager can indicate the scheduled employee’s unavailability and then create a new schedule.

2.5. Constraints

The Red Hat Business Optimizer rules for this starter application use both hard and soft constraints. During an optimization, the engine may not violate hard constraints, for example, if an employee is unavailable (out sick), or that an employee cannot work two spots in a single shift. The engine tries to adhere to soft constraints, such as an employee’s preference to not work a specific shift, but can violate them if the optimal solution requires it.