Всем добрый день!
Хочу рассказать о своем опыте автоматизации бизнес процессов, где использовал excel с макросами (VBA), UiPath (платформу, предназначенную для автоматизации рутинных задач в бизнесе), PowerQuery (в составе Excel, а также как элемент PowerBI), ну и облачные службы Microsoft –PowerApps, PowerBI, PowerAutomate (Flow), Sharepoint, базы данных DataVerse. Понятно, что сегодня использование облачных служб Microsoft, мягко говоря, под большим вопросом, но, надеюсь, что описанные ситуации и процессы помогут кому-нибудь автоматизировать процессы с помощью других решений.
В 2003 году я окончил университет по специальности электроника (ничего общего с программированием) и еще учась на магистратуре начал работать технологом на производстве, но так как производство было довольно специфическим, то через 5 лет, после банкротства предприятия, мой опыт стал невостребованным. Поэтому решил кардинально поменять сферу деятельности и перешел в управление качеством, практически не имея опыта в этой области. Но на каждом новом предприятии сталкивался с одной и той же проблемой - отсутствием статистики в области качества. Вернее, существующая статистика была представлена в текстовом формате или близко к нему и не позволяла проводить оперативный анализ данных. Какая проблема превалирует сегодня? Какой участок дает больше брака? Какие тенденции? Нужно садиться и считать фактически вручную. Нужен другой срез? Опять садимся и делаем новые графики или таблицы. Конечно, я, может, чуть преувеличиваю, но похожая ситуация была во всех компаниях, в которых я работал, и это не зависело от величины или прибыльности компании. Поэтому мои первые шаги автоматизации - это создание таблиц в excel (Home à Format As Table), плюс формулы различной степени сложности, плюс Pivot. Было это более 10 лет назад, но до сих пор считаю, что если компания маленькая, то сохранять и обрабатывать данные в excel совсем неплохой вариант, только эти данные должны быть в виде сводной таблицы (никаких Merged cells), а статистика должна быть сделана с помощью Pivot. В противном случае велика вероятность того, что создание новой зависимости одного параметра от другого будет занимать не несколько минут, а значительно больше времени. То же самое можно сказать и о создании еженедельных, ежемесячных и т.д. отчетов- если в компании существует понятие еженедельных отчетов, которые требуют времени на их подготовку, явно кое-что можно оптимизировать.
А с роботизацией процессов впервые столкнулся в 2017 году, когда только начал работать в компании, занимающейся розничной торговлей. Тогда компания только начала искать процессы для автоматизации. Мне повезло, и предложенный мной процесс был одобрен. Процесс такой:
- Работник проверял акты несоответствий со складов, полученные по электронной почте (в виде Excel-файлов) на наличие ошибок.
- Регистрировал акты в базе данных (полуавтоматически).
- Копировал все приложенные к актам файлы в определенный каталог (полуавтоматически).
- Пересылал акт на склад (полуавтоматически).
- Проверял полученные со складов ответы на наличие ошибок.
- Регистрировал ответы в базе данных (полуавтоматически).
- Пересылал ответы на акт отправителю (полуавтоматически).
Какие проблемы были:
- Проверяющий акты работник часто не видел всех ошибок в актах.
- Акты постоянно пересылались на склад только через 2-5 дней после их получения, когда товара на складе уже не было, и если речь шла о браке, то нечего было проверять;
- Склады часто отвечали на акты с опозданием и в любой момент времени просроченные акты составляли 5-10% от их ежемесячного количества.
- По инструкции, допускались акты только на определенные склады. Акты для других складов игнорировались и не принимались,
- Работник мог сам принять решение по акту не пересылая его на склад, поэтому склад мог узнать о проблеме в лучшем случае в конце месяца, когда получал отчет.
- В базе данных фиксировалась только малая часть нужной информации.
Что получили после роботизации:
Всю работу стал выполнять робот, который автоматически запускался 6 раз в день и в среднем работа с актами роботу занимала около 40 мин. в день. Работник проверял только те акты, которые не мог обработать робот (ок. 20% от общего количества).
Роботизировали весь этот процесс на UiPath с помощью сторонней компании, но, поскольку другие департаменты не предложили больше ни одного процесса для автоматизации, то лицензию для UiPath не приобрели. Не знаю, по этой ли причине, или по другой, но через год робот перестал корректно работать и пришлось срочно писать макрос, который делал ту же работу и даже больше, так как к тому моменту надо было автоматизировать процесс на 95% (вместо имеющихся 80%). Из-за этого алгоритм работы робота/ макроса разросся раза в 2
Вообще, сложные процессы, они такие-хочешь автоматизировать на каких 80%- анализ, перестройка процесса и программирование займет х времени, хочешь автоматизировать почти на 100%- работа займет в разы больше времени.
И окончательный результат такой:
- Получаемые акты макрос анализирует на ошибки, а акты с ошибками возвращает отправителю. Вероятность пропустить акты с ошибками – 0%.
- Акты пересылаются получателю в тот же день.
- Вся информация из акта фиксируется в базе данных.
- Макрос высылает напоминания, если вовремя не получен ответ на акт. Поэтому в любой момент времени просроченные акты не превышают 0,5% от их ежемесячного количества.
- Начали принимать и пересылать на склады абсолютно все акты и уже работники на складах должны изучать и принимать решения по актам.
- Спорные вопросы решает независимый человек.
- Всю статистику может видеть любой человек в режиме реального времени.
- Дополнительно: так как оперативная проверка продукции особенно актуальна для склада плодоовощной продукции, то макрос дополнительно информирует работников качества, проверяющих эту продукцию, если третий раз за день приходил акт на ту же продукцию.
И хотя процесс выглядит простым, упрощенный алгоритм работы макроса выглядит как-то так:
После первичной автоматизации этого процесса (имею в виду автоматизацию с помощью UiPath) департамент ИТ организовал встречу, где участвовали многие руководители департаментов и отделов (ок. 30-40 человек). После этой встречи только один человек обратился с просьбой об автоматизации определенных процессов, т.е. подавляющее большинство руководителей не видели у себя или не хотели видеть ни одного процесса для автоматизации. Также было немало критики, даже от тех людей, которые никак не участвовали в описанном выше процессе.
Т.е. вывод тут такой- если компания не готова к автоматизации или только начинает свой путь, надо делать много просветительской работы, после каждого автоматизированного процесса показывать, объяснять, что/ как было до и что как стало после.
Также посоветовал бы по несколько раз проверять схему процесса, на основе которой будет создан алгоритм для робота. И это не зависит от того, автоматизирует ли вам процессы сторонняя компания, или ваш программист. В случае со сторонней компанией каждое изменение алгоритма может стоить очень дорого (как по деньгам, так и по времени).
Да, еще вспомнил- сторонний программист, когда стал не укладываться в установленный договором срок, начал перекидывать ответственность на нас, но так как я хорошо знал и алгоритм, и сам процесс, да и тестировали вместе с ним каждый этап, то не прокатило 😉.
Далее в этой компании удалось автоматизировать еще несколько процессов с помощью макросов (VBA), PowerApps, PowerAutromate и Sharepoint. К сожалению, компании не была интересна лицензия на PowerBI, поэтому с PowerBI в этой компании я не работал, хотя именно автоматизация отчетов может дать большую экономию ресурсов.
Еще пример автоматизации двух похожих процессов выполнения аудита.
БЫЛО | СТАЛО |
Аудитор:
Администратор:
|
Аудитор:
Администратор:
|
Проблемы:
|
Какие проблемы решены:
|
Пример одного простого приложения на PowerApps, с помощью которого выполнялась проверка качества плодоовощной продукции (интерфейс показан с некоторыми ограничениями):
Здесь критерий1...критерий5 – это конкретные критерии оценки товара/ продукции. Например, одним из критериев может быть „Укажите количество найденных позиций (SKU- stock-keeping unit) с гнилыми фруктами, где эти гнилые фрукты составляют очень незначительную часть“.
В примере аудитор указал „3-5 SKU“, и поэтому рядом должен был выбрать одну позицию, где дефект доминирует больше всего (аудитор выбрал огурцы). Таким образом аудитор проверяет всю продукцию по указанным критериям.
Похожим способом можно автоматизировать и, например, Кайдзены, когда работник в несколько нажатий может выбрать, что он улучшит, какие потери уменьшит, и т.д.
Несколько лет назад перешел работать в компанию, где очень серьезно относятся к автоматизации процессов, причем настрой и руководства, и простых работников был и остается очень позитивным.
В этой компании я более года работал над автоматизацией узкоспециализированного процесса в сфере логистики с помощью UiPath и PowerApps. Могу только сказать, что разработанным на основе PowerApps приложением пользуются несколько сотен человек, а UiPath заменил работу более хх человек и выполняет такую работу:
- как только появляется новая информация (новое действие) в одной базе данных (после действий пользователя в PowerApps), проверяет эти данные, находит нужные документы (например, накладную и всю информацию по ней) в другой базе данных и вводит эти данные в специализированную программу. В этой программе выполняет множество различных действий- физически нажимает на кнопки, открывает/ закрывает окна, вводит и считывает информацию. Автоматизировали процесс на 90%, что для такого сложного процесса является очень хорошим результатом.
На что обратить внимание при автоматизации сложных процессов? Повторно посоветовал бы по несколько раз проверять схему процесса, на основе которой будет создан алгоритм работы робота. В нашем случае можно было бы процесс роботизировать за месяцев 9, т.е. где-то процентов 30-40 времени потеряли из-за плохого управления процессом. Например, делали автоматизацию какого-то субпроцесса по алгоритму работы одного подразделения не проверив досконально ни сам процесс, ни количество данных. В результате получилось, что другим подразделениям автоматизированный процесс не подходит, плюс входные данные появляются с заметной задержкой, плюс некоторые данные некорректны, и в итоге робот вместо, скажем, 100 операций, до конца мог выполнить каких 10 операций, что было ничтожно мало по сравнению с общим количеством операций и с затраченным на программирование временем.
Также при автоматизации процессов широко использовали отчеты в PowerBI. Здесь надо учитывать, что очень многое в PowerBI дает модуль PowerQuery, который, кстати, есть и в excel. Это реально мощный инструмент, который позволяет подключаться к различным источникам данных (Excel, SQL, веб-сайтам, облачным службам), преобразовывать (фильтровать, сортировать, объединять, использовать формулы и изменять тип данных) и очищать данные, а также загружать их в excel или другие приложения. Очень часто при создании отчетов в PowerBI проделывалась большая работа по цифровизации процессов. Например, несколько человек ежемесячно подготавливают отчет в excel для руководства. Нужно узнать и понять, как/ по каким формулам они считают и откуда берут первоначальные данные. Очень часто эти первоначальные данным они получают от других работников в виде того же файла excel. И снова повторяем те же действия, пока не получается выйти на первоначальный источник данных, и очень хорошо, если это база данных SQL.
Пример отчета PowerBI для процесса, над которым все еще работаем:
Слева- названия всех привязанных к данному процессу отчетов. Красным цветом обвел все фильтры. Так как отчет находится в облаке, каждый пользователь может настраивать фильтры под себя. Отчет несколько корявый, так как постоянно меняем и дополняем, но свою функцию выполняет.
И "внутренняя кухня" этого отчета - модуль PowerQuery.
Если очень грубо- имеем более 10 источников данных. В этом модуле отфильтровываем нужные нам данные, переименовываем и добавляем столбцы, где данные рассчитываются по определенным формулам на основании данных в других столбцах и, конечно, объeдиняем источники данных (это когда в одном источнике, например, имеем ID и наименование детали, а в другом тот же ID и тип детали. В результате будем иметь объединеный источник данных с ID, наименованием и типом деталей). Пользователь этих манипуляций не видит- он видит только показанный выше отчет.
В общем, в Excel хорошо автоматизируются любые повторяющиеся действия: копирование из одного файла в другой, сортировка, фильтрация, формулы (т.е. фактически выборка определенных данных), генерация pdf отчетов, отправка файлов/ отчетов определенным получателям на эл. почту и т.д. Также на основе excel в VBA можно создать специализированную программу. И еще плюс excel в том, что может работать с SQL- т.е. можно записывать и читать данные из баз данных SQL, что намного надежнее хранения данных в самом excel (кроме работы с особо важными данными, т.к. тогда встает вопрос с безопасностью данных). Но если есть возможность использовать специализированные облачные службы, то я двумя руками за них.
UiPath (или другие аналоги). Что касается UiPath (или MS PowerAutomate for Desktop), то надо отталкиваться от стоимости лицензии, но такие роботы незаменимы там, где нужно автоматизировать процесс работы с интерфейсом, т.е. там, где пользователь работает с одной или несколькими программами, физически нажимает на какие-то кнопки в программах, открывает окна, вводит или считывает информацию.
MS Sharepoint. Облачная служба для работы (хранения, ввода, считывания) с небольшими объёмами любой НЕ критически важной информацией, где с одной таблицей одновременно может работать большое количество людей.
MS PowerAutomate (Flow). Облачная служба автоматизации рабочих процессов. В двух словах трудно объяснить, для чего используется, но в основном как триггер на какое-то событие и для обмена информацией между различными системами, (Excel, SharePoint, OneDrive, SQL), автоматизации процессов (создание потоков для утверждения документов, отправки уведомлений, сбора данных и т.д.), создание связей между различными приложениями и службами, такими как Outlook, Teams и т.д. Подходит и для обработки финансовых документов (фактур, накладных и т.д.).
Например, при изменении или получении новой информации в базе данных (или просто каждые хх часов), flow будет искать какую-то определенную информацию в другой базе данных, создаст файл excel, впишет в него или другую базу данных какую-нибудь найденную или пересчитанную информацию, сохранит этот файл где-то, прикрепит к письму и вышлет определенному пользователю/ клиенту. Другой пример- при изменении графика работы автоматически вышлет работнику письмо, где работник должен нажать кнопку ДА или НЕТ, и в зависимости от ответа сделает определенные действия.
Пример простого flow, который работает в паре с DataFlow. DataFlow запускается 1 раз в сутки, высылает SQL запрос и записывает в одну таблицу обработанную актуальную информацию из другой таблицы. После этого запускается flow и выполняет такие действия:
Не претендую на точность описания каждого способа автоматизации. Уверен, что опытные пользователи или разработчики могут добавить массу плюсов и минусов для каждого варианта. Мне бы просто хотелось, чтобы люди, которые еще не сталкивались с автоматизацией бизнес-процессов, увидели бы здесь возможности.
Комментарии
Можете рассказать, какие решения принимаются на основании этих отчетов? Что корректируется в работе?
- меняли правила/ условия хранения на складе
- пересматривали стандарты качества
- (на)учились оперативно реагировать на проблемы с качеством (здесь помог описанный в статье макрос/робот)
-меняли/ контролировали условия хранения плодоовощной продукции в магазинах.
Удалось улучшить эти значения, но до целевых не дотянули.
Нехватка /текучка персонала, высокая температура в зале летом и другие факторы мешали улучшить ситуацию в части магазинах сети.
2. Отчет в PowerBI. Над автоматизацией этого процесса всё еще работаем. Там в отчете есть и другие страницы, которые не могу показать, но:
- видим, что работу в некоторых населенных пунктах робот выполняет хуже (т.е. робот в программе выбирает определенный населенный пункт и выполняет для него/ в нем определенные задачи). Выбрали один такой "плохой" населенный пункт и выясняем причины.
- работаем над устранением не описанных в тех. документации выскакивающих системных сообщений и их причин (видим и их в этом отчете)
- устраняем причины того, что робот не находит в базе данных определенных документов.
и т.д.
Каждую неделю стараемся убрать до 3-х ошибок, но, хотя ситуация улучшается, список задач только растет ;)
Не всегда целесообразно удалять все лишние операции в рамках конкретного проекта. Например, робот в специализирован ной программе должен подготовить документы 3-х различный типов/форм- «А», «Б» и «В». Создание и запуск робота занимает 1 месяц. Роботизация только формы «В» (когда другие документы/формы уже роботизированы) занимает, например, 4 дня. Можно полностью отказаться от документов «В», но нужно согласовать изменения с другими подразделениями или организациями. Согласование может занять 2 месяца.
Что выберет организация? Скорее всего, роботизацию в течение месяца, а потом (или параллельно) переговоры об отказе от формы «В».
Любой процесс можно разделить на части и тогда все части процесса будут простыми))) Это называется локальная оптимизация - улучшение простых частей процесса никак не может повлиять на результативност ь общего процесса. Хаос остается!
Что Вы называете хаосом? Как по мне, если смогли автоматизироват ь процесс, в нем с большой вероятностью не будет хаоса. Да, могут быть неэффективные места, но не хаос.
Второй вопрос- может я плохо что-то понял, но почему улучшение простых частей процесса не повлияет на общий результат? Можете дать пример?
Александр, перед этим Вы писали, что "...перед тем как автоматизироват ь процессы, их необходимо перепроектирова ть - удалить все лишние операции. Иначе получиться автоматизирован ный хаос".
Что касается "Перед тем как автоматизироват ь деятельность необходимо ее строго регламентироват ь", для этого делается и карта будущего процесса, и создается по нему алгоритм работы робота/ макроса, а лишние операции не мешают автоматизироват ь процесс.
Если говорим об автоматизации заполнения документов, то еще никогда не было цели, чтобы робот заполнял все 100% документов. И в алгоритме работы робота это предусмотрено - при определенных входных данных робот даже не пытается заполнить документ, а информирует работников. В случае незапланированн ой ошибки, когда, например, робот по алгоритму должен нажать на кнопку "Сохранить", а такая кнопка вдруг неактивна, робот также информирует работников. В дальнейшем решается, дополнить / переделать ли алгоритм работы робота, чтобы смог обойти ошибку, или ничего не менять.
В любом случае всё согласовывается с заказчиком:
- сколько процентов операций должен выполнять робот? // Время на разработку робота, выполняющего более 90% операций может быть в несколько раз больше, чем выполняющего 80% операций из-за более сложного алгоритма.
-убираем ли прямо сейчас все кажущиеся лишними операции и т.д.
Если даже частичная автоматизация уменьшает потери, она имеет право быть.
Кем делается карта будущего процесса? Ответ - разработчиками робота. "Лишние операции не мешают автоматизироват ь процесс" - это и есть сохранение хаоса в организации. "Все согласовано с заказчиком" - вот это и есть причина сохранения хаоса - заказчик сам не понимает сути вопроса и думает, что за счет автоматизации произойдут улучшения. Все печально!
Не всегда карта процесса делается разработчиками робота. Разработчики могут без перепроверки процесса создать алгоритм (уточнив, откуда брать данные, что делать в случае ошибок и т.д.). Зависит от договорённостей с заказчиком.
Если устранение лишних операций существенно удорожает проект, дает небольшую пользу и само по себе не критично, то обычно так и оставляют.
И да, благодаря такой автоматизации и происходят улучшения. Увеличивается скорость работы, существенно уменьшается количество ошибок; уменьшение конкретных видов потерь зависит от конкретного робота.
Не на последнем месте экономия на зарплатах сотрудников, но надо не забывать, что поддержка автоматизирован ного процесса тоже не бесплатна
Ваша позиция понятна.
Успехов в автоматизации
RSS лента комментариев этой записи