Привет, Хабр! Меня зовут Василий Никулин, я занимаюсь разработкой решений для автоматизации внутренних процессов в IBS. В этой статье расскажу о том, как мы упрощаем работу и освобождаем время нашим администраторам на проектах с помощью такого инструмента, как «цифровой сотрудник».

Что такое цифровой сотрудник

Цифровой сотрудник — это программный робот (RPA), автоматизирующий рутинные действия и минимизирующий вероятность возникновения ошибок в выполнении процессов.

На первом этапе такие программы призваны помочь человеку в выполнении повторяющиеся действий, в перспективе — самостоятельно выполнять часть работы сотрудников компании.

Выбираем процессы для автоматизации

В начале «трудового стажа» нашего цифрового сотрудника мы решили поручить ему задачи наших администраторов на проектах — в них больше всего рутины.

Администраторы в IBS — это сотрудники, которые помогают руководителям вести проекты: создают отчетные документы и договора, помогают списывать часы сотрудников в команде.

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

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

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

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

Так в итоге и получилось. Забегая немного вперед, скажу, что мы добились довольно ощутимого эффекта, не сделав, по сути, ничего сложного.

По итогам оценки выбрали три сценария, связанные с учетом рабочего времени сотрудников.

1. Проверка заполнения таблицы рабочего времени — timesheets (далее TS), и отправка их на утверждение.

2. Проверка TS (локальная выгрузка).

3. Создание документов Акта и Отчета о выполненных работах на основании Запроса.

Для каждого из сценариев составили модель процесса.

Проверка заполнения TS и отправка их на утверждение
Проверка заполнения TS и отправка их на утверждение
Проверка TS (локальная выгрузка)

Проверка TS (локальная выгрузка)
Создание документов Акта и Отчёта о выполненных работахна основании Запроса
Создание документов Акта и Отчёта о выполненных работах
на основании Запроса

Ход процесса до автоматизации

Вот как работал процесс до его автоматизации.

В конце каждой недели все сотрудники и руководители заполняют ТS — вписывают в систему управления проектами (далее — СУП) часы, которые они потратили на тот или иной проект.

Администратор вручную проверяет правильность заполнения TS. Он скачивает отчет по трудозатратам, считает сумму часов сотрудника на проектах, сравнивает их с нормой производственного календаря.

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

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

Перед выполнением работ по проекту в IBS формируется Запрос — документ с указанием работ, которые необходимо выполнить, и их сложность. Далее администратор превращает документ Запроса в Акт, в котором указывается количество выполненных работы, затраченные часы, категории привлеченных специалистов и их базовая ставка. В том же документе рассчитывается итоговая стоимость работ. Отчет о выполненных работах также составляется администратором проекта и содержит данные о затраченных часах конкретного сотрудника по дням.

Выбор технологий реализации проекта

Выбирая язык программирования и сторонних библиотек для реализации программного решения, мы ориентировались на три ключевых фактора:

  • скорость разработки, чтобы не растягивать проект на долгие годы;

  • гибкость — для легкого добавления новых сценариев;

  • удобство установки и работы у конечного пользователя.

Время выполнения программы не было особенно важным, потому что администратор будет запускать «Василия» — так мы назвали нашего цифрового сотрудника — в фоне и продолжать работу над другими задачами.

Рассматривали разные языки. C++ привлекал скоростью выполнения, Golang — простотой читаемости кода и встроенным параллелизмом, Java — кроссплатформенностью и объектно ориентированным подходом. Выбрали в итоге Python.

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

Первая версия подразумевала CLI — интерфейс командной строки. Для его создания мы использовали пакет Click. После первичного тестирования работы «Василия» мы, используя PyQT, добавили графический интерфейс пользователя — GUI.

Для работы с большими объемами данных, таблицами, текстовыми документами и их шаблонами мы использовали такие библиотеки, как pandas, openpyxl, xls2xlsx, python-docx, docxtpl.

Чтобы донести весь этот прекрасный функционал до пользователя, мы использовали PyInstaller для сборки .exe файла. В результате получили десктопное приложения для Windows.

Структура проекта

Структура проекта
Структура проекта

Особенностью проекта стала необходимость совмещать в себе много разных процессов. Иногда входными данными были .docx и .xlsx файлы. Часто нужно было брать данные через web-интерфейс с помощью Selenium. Сценарии могли быть разными алгоритмами, иногда использующими общие функции.

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

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

Как работает цифровой сотрудник

Вот как теперь цифровой сотрудник выполняет выбранные сценарии.

Администратор запускает приложение «Цифровой сотрудник «Василий» и выбирает нужный сценарий. Например, «Проверка TS и отправка на утверждение». Поля с файлами заполняются автоматически, но их можно поправить вручную, если это необходимо. Администратор нажимает кнопку «Ок», цифровой сотрудник открывает сессию браузера и начинает обход по страницам СУП IBS. Выбирает сотрудника, считывает данные о его часах на проектах, проверяет, что это норма, и отправляет на утверждение. В окне вывода отображается прогресс процесса обхода.

Проверка заполнения TS и отправка их на утверждение
Проверка заполнения TS и отправка их на утверждение

В СУП IBS можно скачать отчет по TS в формате Excel. В таком случае администратор выбирает сценарий «Проверка TS» и добавляет скачанный файл, нажимает «Ок», и «Василий» за несколько секунд проверяет файл TS на сотни строк. В конце администратор получает подробный отчет о расхождениях потраченных на проектах часов с нормой производственного календаря.

Результат проверки TS
Результат проверки TS

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

Генерация Актов
Генерация Актов

В ходе генерации закрывающих документов, как и в предыдущих сценариях, выводится информация о ходе процесса. Это полезно как для отслеживания хода работы программы, так и для сверки запланированных и реально затраченных на проект часов. После завершения генерации, которая тоже длится несколько секунд, администратор получает заполненные закрывающие документы для конкретного проекта. Цифровой сотрудник «Василий» сам рассчитал бюджет и трудозатраты и внес их в Акт и Отчет о выполненных работах.

Результат генерации Актов
Результат генерации Актов

Учет эффективности подразделения

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

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

Кластеризация часов работы сотрудника
Кластеризация часов работы сотрудника

Используя эти данные, мы также смогли отслеживать статистику всего подразделения.

Пульс отдела
Пульс отдела

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

Результат и польза от применения

По итогам применения цифрового сотрудника на протяжении 3 месяцев мы получили такую обратную связь от коллег:

«В ходе проверки заполнения таймшитов мы исключили риски неверного списания времени и убедились, что все сотрудники своевременно заполнили отчет о времени. В процессе работы мы настроили необходимый воркфлоу, который сейчас функционирует оптимально. Это позволило сократить трудозатраты команды администрирования на 10% и повысить точность отслеживания контроля затрат на разработку в отдельных проектах».

— Елена Буренкова, администратор

Подсчитали результаты экономии времени администраторов:

Сценарий

Экономия времени

1

Проверка заполнения TS
и отправка их на утверждение

8 часов в месяц

2

Проверка TS

4 часа в неделю

3

Создание документов Акта и Отчета
о выполненных работах на основании Запроса

20 часов в месяц

(зависит от количества проектов
в подразделении)

4

Статистика эффективности отдела

Возможность отслеживать ошибки в системе и акцентировать внимание на «простаивающих» сотрудниках

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

Дальнейшие планы

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

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

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

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

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

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