Технология RPA позволяет в сравнительно короткие сроки решить проблему автоматизации задач пользователей, которым приходится совершать рутинные операции в разных системах. Однако, если компания достигла высокого уровня роботизации, то в определенный момент у нее может возникнуть ряд сложностей, которые будут тормозить дальнейший прогресс разработки и внедрения решений на базе RPA.
При больших объемах автоматизации RPA-разработчики тратят много времени на смежные процессы, например, тестирование роботов или мониторинг окружения. Один из способов оптимизации — применение методологии DevOps, которая помогает автоматизировать все активности, не относящиеся напрямую к самой разработке. Это позволяет сделать работу RPA-разработчиков более продуктивной и способствует успешному развитию в компании ее программы по роботизации.
Статья написана при поддержке технического эксперта UiPath: Валентина Драздова.
Путь RPA-технологии в компании
Когда в компании роботизировано много процессов, их необходимо поддерживать, одновременно выделяя ресурсы на разработку и внедрение новых программных роботов. В какой-то момент ресурсов штатных специалистов по роботизации может не хватить, в результате чего темпы внедрения RPA в компании снижаются.
Но, даже если у организации есть возможность взять в штат дополнительных RPA-разработчиков, обычно это не решает проблему. Как правило, поддержкой старых роботизированных процессов могут заниматься только опытные специалисты, которые их знают как свои пять пальцев; а сотрудники, недавно подключившиеся к проекту, могут не обладать достаточной компетенцией для качественной автоматизации новых процессов. Этот разрыв в итоге может приводить к тому, что программы по роботизации после достижения некой критической точки замедляют темпы своего развития.
Другой способ решения проблемы — повышение эффективности работы центра компетенций (СоЕ) и его команды. Этого можно добиться, применяя DevOps методологию в разработке и обслуживании RPA-процессов.
DevOps и RPA – где точки соприкосновения?
DevOps – это методология активного взаимодействия специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимная интеграция их рабочих процессов друг в друга для обеспечения качества продукта.
Автоматизация задач DevOps позволяет RPA-специалистам сфокусироваться на стратегических вопросах и работе с людьми.
На сегодняшний день UiPath – один из немногих вендоров RPA, который заботится о поддержке методологии DevOps при создании программных роботов.
От методологии DevOps в практику разработки роботов можно брать:
Непрерывную оценку и планирование, которые подразумевают сквозную оценку требований заказчика с учетом возможностей разработчиков и инфраструктуры предприятия.
Интеграцию и тестирование. Они особенно важны, когда в команде роботизацией разработкой занимаются несколько человек.
Развертывание, включающее подготовку инфраструктуры, тестирование в тестовом и промышленном контуре, ввод в эксплуатацию.
Постоянный мониторинг роботов и их окружения: сбор инцидентов и ошибок.
Оценка и планирование
Любое RPA-решение поставляется с профессиональным инструментом для настройки роботов, однако для полноценной разработки этого недостаточно. Необходимо обеспечить качественное документирование на этапе бизнес-анализа таким образом, чтобы оно помогало создавать работающего робота, а не заставляло разработчиков разбираться в описаниях процессов.
У UiPath есть инструменты, которые позволяют проводить качественное документирование на этапе сбора информации о процессе, а так же в полуавтоматическом режиме создавать документацию, которая отлично подходит как бизнес-аналитикам, так и разработчикам. Это — UiPath Automation Hub и UiPath Task Capture.
Интеграция (командная разработка)
Критерии качества и документирование
UiPath предоставляет инструменты статического анализа процессов, которые позволяют повысить качество создаваемых решений. С их помощью можно проверять роботов на соответствие заданным критериям качества, и делать это полностью в автоматическом режиме. Использование статического анализа в разработке позволяет нивелировать человеческий фактор и максимально снизить количество ошибок, допускаемых RPA-разработчиками. UiPath Studio предоставляет большой набор правил для анализа, в котором разработчики могут менять настройки, а так же задавать свои собственные.
Общие правила разработки программных роботов на уровне всей компании или отдельных групп разработчиков можно создавать и настраивать с помощью решения Automation Ops. Например, для профессиональных разработчиков можно установить одни ограничения, а для citizen developers — сотрудников, создающих корпоративные IT-решения, без опыта в разработке — другие, более строгие.
Также важно, чтобы в процессе создания программных роботов была предусмотрена удобная возможность комментировать их схемы. Это поможет новому разработчику, не работавшему раньше с процессом, легко в нем разобраться, не перечитывая всю документацию — что значительно может сократить онбординг специалистов в проект.
UiPath Studio поддерживает возможность технической документации роботов сразу несколькими способами: описание каждой схемы, блоки комментариев, аннотации к каждому действию. Это позволяет новым разработчикам на проекте быстро понимать процессы и не тратить время на анализ.
Системы контроля версий
При разработке даже самого простого робота хорошей практикой является фиксация всех изменений в системе контроля версий, которая доступна всем разработчикам. В случае, если разработчик этого процесса будет недоступен, любой его коллега сможет не только получить весь проект с сервера, но и будет иметь возможность ознакомиться с историей изменений. Это особенно важно в тех случаях, когда в новой версии робота появилась ошибка, которой раньше не было — всегда можно вернутся к старой и проанализировать, что именно повлияло на ее возникновение.
При роботизации сложных процессов, состоящих из большого количества операций, или же разбитых на несколько отдельных процессов, которые должны исполняться несколькими роботами, важно правильно организовать командную работу с проектом. Правильная организация командной работы над такими проектами подразумевает не только использование систем контроля версий, но и создание своих независимых веток для каждого разработчика. Каждый разработчик ведет настройку робота именно в своей зоне ответственности, и до тех пор, пока он не завершит свою работу — его правки не должны влиять на результат работы коллег. После того, как разработчик закончит свою часть — он должен объединить результат своей работы с результатом работы других разработчиков.
UiPath Studio предоставляет интеграцию с несколькими системами контроля версий: GIT, TFS, SVN. Благодаря этой интеграции разработчики имеют возможность работать в команде из графического интерфейса без необходимости установки и использования дополнительных программ.
Тестирование
На компьютере разработчика
На сегодняшний день правильное тестирование процессов роботизации является самым больным вопросом для большинства RPA-разработчиков.
UiPath Studio Pro поддерживает разработку сценариев для автоматизированного тестирования, которые позволяют проверять соответствие получаемого результата с ожидаемым. Так же поддерживается data-driven тестирование, благодаря которому можно загрузить в UiPath большой объем данных для выполнения одних и тех же сценариев тестирования с разными входными параметрами и ожидаемыми результатами.
Важным преимуществом тестирования с использованием UiPath Studio Pro является отображение покрытия протестированных схем роботов тестами. Среда разработки покажет какие активности были проверены различными тестами, а какие были пропущены (не протестированы), а значит могут привести к непредвиденным последствиям.
Сценарии тестирования UiPath не ограничивают разработчика в возможности их применения. Не обязательно тестировать только роботизированные процессы, имеется возможность тестирования:
Сторонних приложений
Программного окружения
Веб-сервисов
Мобильных приложений
Тестирование на сервере
Выполнение автотестов на компьютере разработчика в UiPath Studio Pro на регулярной основе является плохой практикой, так как если тесты составлены качественно и количество тестовых данных много — это может занимать несколько часов работы высокооплачиваемого сотрудника. Для автоматизации запуска автотестов на регулярной основе имеется возможность их публикации в UiPath Orchestrator и запуска на специальных роботах как по расписанию, так и по команде.
Комплексное решение
Все перечисленные возможности тестирования входят в единое решение — UiPath Test Suite. Центром решения является UiPath Test Manager Hub, который включает в себя ряд дополнительных возможностей для тестирования.
UiPath Test Manager Hub является связующим звеном между возможностями тестирования UiPath и внешними приложениями. Он позволяет настроить интеграцию с такими инструментами, как: Jira, X‑Ray, Azure Devops, Servicenow и другими.
Например, при настроенной интеграции с Jira, создаваемые требования к роботам будут автоматически дублироваться в UiPath Test Manager. При этом тестовые сценарии, создаваемые в UiPath Studio Pro могут быть привязаны к требованиям из UiPath Test Manager, в результате чего будет получена связка автотеста с требованием из Jira.
Важно то, что результаты всех проведенных тестов доступны в UiPath Test Manager App, и в случае возникновении ошибок при проведении тестирования, имеется возможность сообщить об этом обратно в Jira. Там с информацией сможет ознакомиться руководитель проекта, который может не работать с продуктами UiPath самостоятельно.
Таким образом, UiPath дает возможность реализовывать подход Test-Driven Development в RPA-разработке. Он предполагает, что сначала будут создаваться тесты на основании требований, а уже потом — будет проводиться разработка робота, который должен обеспечить полное прохождение всех тестов. Благодаря такому подходу снижается вероятность того, что разработчики будут подгонять тесты под уже выполненную разработку, тем самым отходя от исходных требований и понижая качество выполненной работы.
Развертывание
Установка новых версий роботизированных процессов для роботов является отдельной задачей. Большинство современных RPA-решений поставляются вместе с серверными компонентами (их обычно называют оркестратор), которые позволяют хранить актуальную версию схемы робота и отправлять ее одновременно всем пользователям. Однако, в реальной жизни такой простой подход оказывается непродуктивным.
Перед вводом новой версии роботизированного процесса в эксплуатацию его желательно проверить на маленькой группе пользователей, чтобы если она окажется нестабильной – не ломалась работа всей организации. Так же порой имеется необходимость разным группам пользователей настраивать разные версии процесса.
Чтобы закрыть такую потребность многие разработчики просто создают несколько разных вариантов одного и того же процесса, что со временем приводит к путанице.
UiPath предоставляет возможность использования папок для разбиения процессов автоматизации на уровне оркестратора. В каждой папке может быть установлена своя версия процесса, выбрана индивидуальная точка входа, уникальные входные аргументы. Также UiPath позволяет делать персональные настройки для каждого процесса на уровне конкретной машины, что позволяет выделить разные группы пользователей, которые будут получать разные варианты работы одного и того же робота, при этом не создавая разные версии одного и того же процесса.
Автоматизация развертывания с UiPath
На этапе развертывания IT-решения можно построить полноценный СI/CD-конвейер:
UiPath поддерживает популярные инструменты автоматизации DevOps: Jenkins и Azure DevOps. Эти инструменты позволяют настроить цепочку событий, идущих друг за другом от сборки до тестирования и публикации проектов. Для обоих инструментов имеются специальные плагины, которые позволяют выполнить настройку автоматизации максимально просто. Ниже вы можете увидеть типовую настройку автоматизации для Jenkins:
Шаг №1 – Получение исходных кодов из GIT
Является стандартным действием для указанных инструментов. По таймеру, событию или команде извне выполняется получение исходного кода из указанной ветки репозитория.
Шаг №2 – Сборка пакета UiPath
Действие от UiPath – из исходников собирается один или несколько пакетов.
Шаг №3 – Настройка окружения в UiPath (автоматическая настройка Assets)
Действие от UiPath – в составе проекта может находится файл с данными для робота (Assets), которые будут внесены на сервер. Важный момент – данные могут вводится в разные папки, то есть для тестовой сборки могут быть одни данные, а для продуктивной – другие.
Шаг №4 – Публикация пакета в тестовой среде
Действие от UiPath – собранный пакет загружается на сервер и публикуется в тестовой среде.
Шаг №5 – Запуск тестов
Действие от UiPath – запускаются тесты, выполняется проверка результатов тестов. Если тесты выполнены хотя бы с одной ошибкой – результат сборки будет считаться негативным.
Шаг №6 – Публикация пакета в промышленной среде
Только в том случае, если тесты завершились без единой ошибки — произойдет публикация пакета в продуктивной среде аналогично шагу №4.
Настроенная автоматизация позволяет сократить затраты разработчиков на отслеживание результатов тестирования, самостоятельную подготовку окружения, публикацию роботов. Разработчику достаточно только выполнить публикацию кода в нужную ветку системы контроля версий, после чего он может заниматься другими задачами. В случае, если возникнут ошибки — он может получить об этом уведомление; в случае, если ошибок нет — пользователи автоматически получат новую версию робота.
Мониторинг
Роботизированные приложения, сайты, системы, использованные ресурсы могут обновляться и получать новый интерфейс или же могут становиться недоступными на неопределенный период времени. В случае, когда робот выполняя свою задачу столкнется с подобной ситуацией — это может вызвать ошибку, что будет иметь серьезное влияние на работу сотрудников и бизнеса в целом.
Данная проблема решается применением возможностей тестирования с использованием оркестратора и тестовых роботов. Можно настроить ежедневный запуск роботов, которые будут проверять все используемые приложения, сайты, системы на соответствие получаемого интерфейса ожидаемому. Так же можно настроить робота, который будет раз в несколько минут проверять доступность внешних ресурсов.
Таким образом при возникновении любых проблем разработчики будут знать о них раньше, чем будет запущен робот, выполняющий действия с настоящими данными, что обеспечит возможность превентивного устранения проблем до того, как они повлияют на бизнес.
Для мониторинга того как реально работают процессы, можно использовать UiPath Process Mining. Возможно, что процесс роботизирован, но не функционирует так, как было задумано. Например, несмотря на проведенную роботизацию пользователи до сих пор выполняют дополнительные действия, что может являться как некорректной работой робота, так и результатом некачественного обследования, что означает необходимость доработки робота.
В интерфейсе UiPath Insights можно наглядно наблюдать данные по функционированию роботов: как часто используются роботы, какова величина ROI, дает ли процесс ожидаемые показатели и т.д.
Движение к идеалу: синергия DevOps и RPA
Внедрение методологии DevOps в организации может повысить качество разрабатываемых роботизированных процессов, увеличить скорость ввода в эксплуатацию новых версий программных роботов, снизить входной порог для поддержки старых процессов новыми разработчиками.
Несмотря на все преимущества, человеческий фактор часто приводит к тому, что люди со временем отходят от методологии, и качество работы RPA-разработчиков снова снижается. Избежать этого можно, используя профессиональные инструменты автоматизации, о которых мы рассказали в этой статье, — они помогут контролировать и сохранять стабильность всех процессов, связанных с реализацией DevOps методологии.
P. S. Приятная новость для всех, кто хочет пользоваться преимуществами UiPath Studio Pro, но не обладает требуемой лицензией: начиная с версии 2021.10 UiPath будет предоставлять все возможности UiPath Studio Pro в обычной версии UiPath Studio.