Low-code платформы: оптимальное решение или есть риски?

История появления

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

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

Главное отличное no-code — полное отсутствие языковых команд. Именно благодаря этому качеству, работать с такими платформами могут даже рядовые сотрудники. 

Применение

Сегодня Low-code активно используется в мире CRM-систем и платформ электронного документооборота. Большинство предложений на рынке изначально создавались с расчетом на конструирование клиентом. Также благодаря этому пользователи смогли отказаться от дорогостоящих доработок платформы. 

Сегодня Low-code платформы позволяют коммерческой организации решать такие задачи:

  • Снижение расходов на содержание программистов;
  • Успешное расширение корпоративного интерфейса или CRM-системы;
  • Быстрая адаптация интерфейса;
  • Подстройка программы под индивидуальные требования каждого сотрудника.

Возможности Low-code и no-code платформ не ограничиваются этим списком. Фактически постоянное развитие платформ регулярно обеспечивает им новые преимущества.

О преимуществах Low-code поговорили с Андреем Брындиным, экспертом Low-code платформы ELMA365. 

Как ты считаешь,  Low-code платформы — это оптимальное решение или есть риски? 

Low-code в первую очередь скорее для тех, кто хочет оптимизировать свои процессы. Сегодня это многие компании. 

Риски компании с Low-code снижаются, потому что: 

  • в отличие от заказной разработки нет необходимости создавать архитектуру самой платформы с нуля, вендор уже позаботился и сделал готовое приложение, в котором мы уже непосредственно работаем. В отличие же от коробочных решений, low-code гибко настраивается под нужды конкретной компании.
  • можно начать работу с No-code прототипом, продолжить созданием скриптов, добавлением интеграций. 
  • можно попробовать поработать недорого по подписке, и проверить, подходит ли это вашему бизнесу. Некоторые Low-code системы распространяются по подписке, можно попробовать пару месяцев. Подписка это дешево и доступно всем, даже малому бизнесу.

Давай поговорим про основные преимущества Low-code. Как они снижают затраты?  

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

Во-первых, снижение затрат на команду. Нам не нужны разработчики, которые просят много денег. Большая часть команды, которые делают решение, это — аналитики. В некоторых случаях это могут делать даже пользователи. Мы не даем им сам Low-code, мы даём no-code, потому что Low-code системы включают no-code инструменты. И даже сами пользователи, если им нужно что-то поправить, могут это сделать. 

Во-вторых, снижение затрат идет благодаря тому, что у нас есть готовые интеграции, которые предоставляет вендор прямо из коробки, это плагины и вообще какие-то готовые решения, конфигурации. У Low-code систем бывают свои store (маркетплейс с готовыми решениями), и там можно все скачать. Решения можно быстро переделать как будет удобно именно вам. 

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

В-четвертых, автоматизируя бизнес с помощью Low-code, мы устраняем бутылочные горлышки в процессах компании (low-code системы обычно позволяет их мониторить), поэтому и снижаются затраты.

Что насчет безопасности, почему это также является преимуществом Low-code? 

В Low-code платформах вендор как правило уже все подумал про безопасность, если сравнивать с традиционной разработкой. Если мы говорим про облако, то обычно система располагается на защищённых серверах, например, это Яндекс, AWS Amazon, которые соответствуют общепринятым требованиям безопасности. 

Если Low-code – система поставляется в редакции On-premise, то она может быть установлена в закрытый контур, то есть вообще не иметь доступ к внешнему миру, что обеспечивает максимальную защиту. 

Также Low-code системы как правило имеют встроенные модули, например, это аудит основных событий, связанных с безопасностью. Например: вход успешный/ не успешный, авторизация, выход, изменение каких-то элементов системы и т.д. В них обычно сразу предусмотрена авторизация по токенам, используется защищенные протоколы и хранилища, двухфакторная авторизация. И, конечно же, если это продуманная Low-code система, в ней настроена система ролей, и на основе этой системы ролей мы можем разграничивать доступ сотрудников, внешних пользователей, если их предусматривает система, к её объектам, компонентам, справочникам, процессам, настройкам системы. То есть пользователю и клиенту не нужно беспокоиться о проработке и архитектуре самой безопасности. 

Low-code платформы отличаются высокой скоростью работы, так ли это? 

Это вопрос не совсем про Low-code, здесь вопрос именно скорости самого ядра платформы. Если Low-code система построена на современной архитектуре, то именно это помогает обеспечить высокую скорость. 

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

Что насчет настройки, правда ли, что это может сделать любой пользователь? 

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

Low-code сокращает время? 

Да, значительно сокращается время на прототипирование. C помощью Low-code это делается очень быстро: мы можем накидать прототип, опубликовать и сразу же работать. Также мы можем вносить какие-то изменения в процессы, приложения без каких-либо дополнительных ожиданий и перезагрузки сервера.

Кроме того, мы сокращаем время с помощью встроенных инструментов отладки. Обычно на Low-code платформах процесс отладки происходит на одном экране. Например, отлаживая работу бизнес-процесса, мы видим его схему и знаем, где он сейчас находится, нам доступны все оповещения и текущие значения переменных. Это очень удобно.

Если компании требуется использовать low-code решения на нескольких инстансах системы, то мы можем их создать в одном месте и тиражировать, развертывать на других площадках. Low-code решения как правило имеют простые механизмы экспорта, импорта. Выгрузка происходит буквально с помощью двух кликов, а на новой системе потребуется лишь минимальная настройка. 

Для многих остается большим страхом обязательный навык кодирования, но для работы на Low-code платформах это совсем не нужно, верно? 

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

Также, как правило, вендор следит за рынком, и реализует наиболее популярные запросы в коробке.

На Low-code вместо кода мы используем визуальные конструкторы. 

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

Если все-таки мы пишем скрипты силами аналитиков, то это не какие-то огромные скрипты. Обычно это 10-20 строк, которые решают простые задачи и вызываются точечно в системе. Одна функция, один раз вызываем, это довольно понятно, логично и обеспечивает довольно низкий порог входа. Используются как правило простые, понятные, скриптовые языки. Например, Typescript.

Есть ли какие-то интеграции?

Здесь все стандартно – используется API и http – запросы.  Интеграция настраивается кодом, который можно переиспользовать. Более того, в некоторых системах запрос можно сформировать и без кода.

По интеграции на Low-code платформе ELMA365 есть также автогенерируемый API. Если нам нужно интегрироваться из внешней системы с Low-code системой, то с помощью него можно сгенерировать JSON-пакет и endpoint url автоматически для каждого справочника или бизнес-процесса. Мы по нему можно обратиться и вносить изменения в систему. Кратко говоря, не нужно что-то придумывать, можно работать уже с готовыми шаблонами. 

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

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

Какие расширенные возможности ты можешь отметить у Low-code платформ? 

Low-code – это не примитивная вещь или детская игрушка, как многим кажется на первый взгляд. Мы можем строить сложную архитектуру решений, писать большие скрипты, если хотим. Для более глубокой кастомизации интерфейсов мы можем использовать HTML, CSS код.

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

А возможно ли такое создать на Low-code?

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

Как ты оцениваешь порог вхождения? 

Я бы оценил порог вхождения примерно так:

  • для пользователя в рамках одной недели; (знакомство с системой, с той частью, в которой нужно работать);
  • для аналитиков базовое обучение по платформе займет примерно 2 недели
  • лоукодеру с учетом погружения в новый язык понадобится примерно месяц 

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

В сравнении с другими языками, сколько понадобилось бы времени для погружения? 

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

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

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

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

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

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

Для сравнения возьмем 4 стандартных вида решений: собственная разработка, Low-code, коробочное решение и BPMS. Как я уже говорил, коробочные решения с возможностью кастомизации останутся востребованы в своих нишах. К примеру, бухгалтерские решения. 

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

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

BPMS, на мой взгляд, уже смотрят в сторону Low-code. Я читал исследование компании Gartner, где они прогнозируют, что к 2024 году 80% IT-продуктов будут создавать на Low Code и No Code. Более того, по их предположению, 80% технологических продуктов и услуг будут создавать люди, не являющиеся профессионалами в области технологий.

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

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

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

Как ты оцениваешь Low-code в качестве инструмента для прототипирования? 

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

В чем проявляется зависимость от вендора?

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

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

Если у пользователя On-premise версия, то он уже не так зависим от обновлений, он может продолжать работать в текущей версии. 

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

Хлебные крошки