воскресенье, 25 декабря 2016 г.

Как искусственный разум управляет людьми

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



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

Нам надо составить график визиты наших специалистов к заказчику, например, понедельно в таком виде

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

Сначала привязываем выбор сотрудника для заказчика к списку сотрудников, чтобы минимизировать человеческий фактор. Делаем это штатным инструментом Google Таблиц “Проверка данных”. Делаем список сотрудников именованным диапазоном в пункте меню “Данные/Именованные диапазоны…”.

Потом на листе с реестром компаний вставляем проверку данных в пункте меню “Данные/Проверка данных”.

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

Теперь нам надо сделать так, чтобы мы при выборе сотрудника и недели, на которой будем работать с данным заказчиком сразу видели загрузку в графике. Для этого пользуемся функцией многофакторного суммирования (для ячейки D3)
=SUMIFS('Реестр'!$C:$C;'Реестр'!$D:$D;A3;'Реестр'!$E:$E;"")
Таким образом, процесс планирования происходит естественным образом. Клиенту назначается сотрудник и неделя.  

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

Внимательные читатели могли заметить, что на первом скриншоте графика была скрыта одна строка и две колонки. В эту строку попадают все клиенты, которым не присвоен сотрудник, а в колонки попадают клиенты, которые не распределены по неделям. Из представленного скриншота видно, что 54 часа не распределены ни по неделям, ни по сотрудникам (это “Завод Любого Оборудования”, как можно увидеть из предыдущего скриншота). Также видно, что сотруднику Васечкину назначены клиенты на 50 трудочасов, которые еще не распределены по неделям. А на 41 неделю поставлены клиенты на 89 часов, которым еще не назначен никакой сотрудник.  И так далее. Это сделано для удобства планирования, мы видим сколько трудочасов нам еще надо распределить.  

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

До этого решения процесс планирования проходил “вручную” и очень трудозатратно. Сначала в ячейку графика к заказчикам добавлялся клиент, потом к часам добавлялись часы. Если требовалось что-то изменить, приходилось удалять и заказчика и отнимать количество трудочасов. Которые необходимо было предварительно посмотреть в реестре заказчиков. После формирования предварительного графика на основании него переносились данные в реестр заказчиков. При этом выявлялись ошибки, например, заказчики, которых забыли включить в график (или включили дважды). Что приводило к трудоемкой переделке графика.

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

    

Комментариев нет:

Отправить комментарий