Одной из проблем, свойственным заведениям из сферы HoReCa (рестораны, фастфуды, кафе и отели) и Call Center/Contact Center, является планирование расписания. Проблемы с планированием, в первую очередь, возникают из-за плавающих графиков, различных типов совмещений и построения рабочих графиков исходя из квалификации сотрудников (компетенции). Особенно остро данный вопрос стоит у крупных сетей с большим товарооборотом, где правильная расстановка смен определяет качество обслуживания, оперативность и, самое главное, влияет на выручку и прибыль заведения либо всей сети.

В свою очередь, решение проблем с планированием смен позволяет минимизировать ситуации, когда в тот или иной момент на объекте не хватает сотрудников (либо их переизбыток), а также, как следствие, увеличить прибыль заведения/сети.

Для решения данных вопросов были придуманы многочисленные системы планирования, учета и оптимизации рабочего времени сотрудников (workforce management, WFM), которые уже не первый год пользуются популярностью за рубежом (и не только).

Главные проблемы, которые должны закрывать WFM-системы:

  1. Определение кол-ва смен в зависимости от потребностей (загруженности, товарооборота в определенной период времени).

  2. Варианты расстановки сотрудников по сменам и по позициям.

  3. Наличие возможности гибко изменять график для персонала.

  4. Контроль рабочего времени.

  5. Создание одной экосистемы для сотрудников и администраторов.

  6. Аналитика эффективности работы персонала.

  7. Подготовка данных для расчета заработной платы.

Для решения всех этих целей нашей командой была задумана своя собственная WFM система на базе уже функционирующей системы учета рабочего времени TARGControl.

Определившись с нужным функционалом, мы проанализировали, какой функционал у нас уже имеется. То есть, на начало разработки система уже могла закрыть следующие моменты:

  1. Контроль рабочего времени. Данный момент закрывался базовым функционалом ПО.

  2. Формирование табелей учета рабочего времени.

  3. Аналитика эффективности работы персонала. Это закрывалось базовым функционалом (стандартными отчетами) и интеграцией с другими системами. То есть с помощью API можно получить любые цифры и построить нужные диаграммы, графики и т.д. для аналитики.

  4. Подготовка данных для расчета заработной платы. Т.к. в системе учитывается ставка сотрудника, отработанное время и ставка оплаты, то данный вопрос не вызывал вообще никаких трудностей. Также, благодаря API, можно подгрузить все данные в ERP-системы, например 1С.

То есть процессы, связанные с учетом рабочего времени, были решены еще до начала разработки, однако предстояло закрыть более глобальные моменты, связанные с:

  1. Расписание. На момент разработки в системе имелись рабочие графики, но их изменение и формирование было недостаточно гибким.

  2. Прогнозирование. Система должна была на основании исторических данных (например, загруженным графикам либо товарооборота за год) понимать, сколько смен нужно в тот или иной день и какие позиции эти смены должны закрывать.

  3. Распределение смен. Кроме прогнозирования необходимо было правильным образом, исходя из доступности персонала и его квалификации, распланировать смены.

  4. Экосистема. Все процессы, связанные с учетом рабочего времени и графиками (планирование, распределение и др.), должно выполняться в одной системе.

  5. Уведомления. Необходимо было обеспечить своевременное информирование сотрудников об изменении рабочих графиков, публикации незанятых смен и др. В свою очередь, администраторы должны были иметь возможность получать уведомления о создаваемых запросах сотрудников.

Принцип работы

Для создания удобного механизма составления рабочих графиков требовалось полностью переосмыслить концепцию уже имеющихся рабочих графиков. Было принято решение оптимизировать работу с рабочими графиками путем передачи части возможностей обычным пользователем системы, то есть линейным сотрудникам.

Стандартные рабочие графики в TARGControl
Стандартные рабочие графики в TARGControl

То есть после построения расписания административным персоналом, линейным сотрудникам необходимо было позволить:

  1. Отказываться от смен. В случае каких-либо непредвиденных ситуаций сотрудник должен иметь возможность отказаться от смены, чтобы на это место оперативно нашли замену.

  2. Позволить запросить календарные события (больничный, отпуск и т.д.). Это бы позволило оперативно решать ситуации, когда ушедшему в отпуск сотрудникам вовремя не предоставили замену.

  3. Выполнять запросы на незанятые смены. Сотрудники должны иметь возможность оперативно получать информацию о свободных сменах и в случае их наличия иметь возможность отправить запрос на работу.

Необходимо было упростить работу административному персоналу, при этом не усложняя жизнь рядовым сотрудникам. В свою очередь, нужно было позволить администратору контролировать изменение рабочих графиков путем подтверждения запросов.

Итого администраторам оставалось бы:

  1. Построить рабочий график (в случае наличия достаточного количества исторических данных - спрогнозировать).

  2. Распланировать его - распределить смены между сотрудниками.

  3. Своевременно подтверждать запросы пользователей (сотрудников).

  4. В случае каких-либо непредвиденных ситуаций иметь возможность скорректировать расписание.

Таким образом, для административного персонала, использующего WFM, был переработан интерфейс работы с графиками. Его разделили на 2 части: Назначенные смены и Открытые смены.

Меню WFM в системе TARGControl
Меню WFM в системе TARGControl

Назначенные смены - смены, уже закрепленные за сотрудниками.

Открытые смены - смены, которые не закреплены за сотрудниками, но должны быть назначены. На данные смены имеют возможность создавать запросы сотрудники. Также данные смены можно в последующем распланировать.

При этом менеджер в любой момент может создать открытую либо назначенную смену, установив ее характеристики и принадлежность.

Создание открытой смены
Создание открытой смены

После сохранения смены она будет создана в режиме черновика. То есть данную смену не смогут увидеть сотрудники и отправить запрос на нее до ее публикации. После нажатия на “Опубликовать” данная смена станет активной для сотрудников и они получат уведомление о ее публикации (об этом чуть позже).

Однако одной из главных возможностей WFM является планирование (распределение) смен. Для планирования смен были введены следующие характеристики для смен и сотрудников:

  1. Должность - смена с определенной должностью должна быть распланирована только сотруднику определенной должности.

  2. Метки - позиции/квалификация персонала. Например, сотрудник в рамках одной должности может закрывать несколько позиций. В данном случае действует такая же логика - смена может распределиться только сотруднику, имеющего квалификацию на определенные позиции (метки).

  3. Доступность - доступность персонала в то или иное время. Доступность выставляется персоналом в мобильном приложении и влияет на приоритет расстановки смен. Если сотрудник указал, что какой-либо день желателен для работы, то при распределении будет действовать приоритет. Актуально и в противоположном случае.

  4. Настройки планирования - планировщик можно настроить таким образом, чтобы он действовал в рамках вашего регламента либо законодательства. Данный инструмент позволит не допускать переработок персонала.

Настройка планирования смен
Настройка планирования смен

То есть после составления расписания на определенный период вы можете распланировать его, учитывая вышеописанные параметры. Как вы можете заметить на гифке ниже, смены были распределены исходя из приоритета. В ячейку, выделенной красной полосой (сотрудник указал, что не может работать в этот день), не была назначена смена. В свою очередь на время, когда сотрудник указал, что для него будет приоритетнее всего для работы, смена была распределена.

Процесс распределения смен
Процесс распределения смен

После распределения смен остается лишь опубликовать их, после чего сотрудники, которым будут назначены смены, получат соответствующие уведомления.

Далее работа с расписанием будет производиться с помощью запросов сотрудников. Работает это следующим образом:

  1. Сотрудник через личный кабинет (WEB) либо через мобильное приложение выполняет нужный запрос:

    1. Открытая смена - смены, не назначенные на сотрудников. Размещены в верхней части графика.

    2. Календарное событие - отпуск, больничный и т.д. Также сотрудник может прикрепить документ, например, справку.

    3. Отмена смены - запрос, позволяющий сотруднику отказаться от смены. При этом он может выбрать себе коллегу на замену, который имеет параметры смены, позволяющие взять данную смену. В случае, если сотрудник не выберет себе замену, после подтверждения администратора смена станет закрытой.

  2. Администратор/ответственное лицо получает уведомление о запросе сотрудника на определенно действие. Уведомление можно получить как через мобильное приложение, так и через почту / мессенджеры (Telegram, Viber).

  3. Ответственному лицу остается лишь подтвердить либо отклонить запрос. Также, в случае необходимости, запрос можно скорректировать.

Работа с запросами через WEB
Работа с запросами через WEB

В свою очередь сотрудник, в случае успешного утверждения запроса или назначения новой смены, получит push-уведомление и сообщение (в приложении, на почту, мессенджеры).

WEB-версия

Приложение под Android/iOS

На скриншоте выше продемонстрирована вкладка График личного кабинета сотрудника (WEB и App), через который и выполняются все запросы. Также одной из важных функций было добавление персональной аналитики эффективности (вкладка Сводка и Отчет).

Как вы можете видеть, все процессы с рабочими графиками, запросами, а также учет рабочего времени были помещены в одну систему, что соответствовало нашему изначальному ТЗ, однако вы спросите: что же по прогнозированию расписания?

Для создания инструмента прогнозирования было принято решение анализировать 2 массива данных:

  1. Рабочие графики - обязательные данные для прогнозирования. Для корректного прогнозирования нужны рабочие графики (желательно за годовой период, если свойственна сезонность).

  2. Товарооборот (либо другой фактор, коррелирующий с загрузкой персонала) - дополнительные данные. Благодаря интеграции с кассовым ПО наша система может периодически получать данные из кассовых систем (товарооборот, количество-чеков за час и др.) и использовать их для улучшения прогнозирования.

Зависимость смен определенной позиции (tag) от времени. Также на данном графике мы можем уидеть товарооборот (profit)
Зависимость смен определенной позиции (tag) от времени. Также на данном графике мы можем уидеть товарооборот (profit)

Имея большие массивы данных мы могли проанализировать их, чтобы оптимально прогнозировать нужное количество смен и их характеристики (метки).

Количество транзакций за период. На данном графике мы можем заметить определенную цикличность.
Количество транзакций за период. На данном графике мы можем заметить определенную цикличность.

Резюмируя, наша система умеет:

  1. Благодаря прогнозировщику было реализовано определение кол-ва смен и их параметров в зависимости от потребностей предприятия (товарооборота, сезонности и др.)

  2. С помощью функции распределения смен стало возможным сформировать расписание исходя из доступности и загруженности персонала, а также его квалификации.

  3. С реализацией системы запросов была добавлена возможность гибко изменять график для персонала без особых усилий.

  4. Благодаря собираемым данным в режиме реального времени и инструменту планирования смен можно контролировать рабочее время сотрудников и не допускать переработок.

  5. Создание одной экосистемы для сотрудников и администраторов. Доступ в личный кабинет стал доступен со всех устройств (даже некоторые холодильники).

  6. Аналитика эффективности работы персонала - отчеты, сводка и др.

  7. Подготовка данных для расчета заработной платы - сбор данных об отработанном времени для дальнейшей загрузки их в ERP-системы.

То есть исходя из реализованного функционала, можно с уверенностью сказать, что вышла полноценная WFM-система. Однако всегда есть куда стремиться, особенно в прогнозировании расписания, что заслуживает отдельного внимания и статьи. Поэтому, если будет интересно, в следующей статье подробнее расскажу о принципе работы “прогнозировщика”, какие библиотеки использовали и как считали.

В случае возникновения вопросов или критических замечаний, прошу последовать в комментарии для бурного осуждения обсуждения!

Комментарии (2)


  1. deadMamonth
    18.03.2022 16:46

    Есть интеграции с iiko, r-keeper или с 1c ЗУП ?


    1. robertxzc Автор
      18.03.2022 17:29

      Да, можно интегрироваться с помощью External API.