{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Enterprise решения на Low-code платформе: есть ли в них место для программиста?

Продолжаю серию материалов о гибком и все более востребованном инструменте изменения бизнеса – корпоративном ПО на Low-code платформе.

В новом материале моя коллега, Пантюхина Юлия – руководитель практики Low-code разработки в ELMA, расскажет про Enterprise решения на Low-code платформе и есть ли в них место для программиста.

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

Краткая история преобразования подходов разработки бизнес-решений

Изначально задача автоматизации решалась с помощью разработки с нуля автоматизированных систем управления (примерно с 80-х годов). Далее развитие следовало в сторону разработки экспертных систем, систем поддержки принятия решений и систем хранения баз данных (80-90 гг), упрощения интерфейсов взаимодействия с пользователями и массовая обработка различных данных (90-2000 гг). На смену процедурным языкам программирования приходят объектно-ориентированные языки, предоставляющие больший простор для унификации методов программирования, переиспользования кода, совершенствования подходов к разработке корпоративных систем.

Начали выделяться общие требования к корпоративным системам, которые нашли свое выражение в таких платформах, как КАС Бизнес-Люкс, 1С ERP, из иностранных — SAP, Axapta. Главной задачей таких систем было эффективное управление основными ресурсами предприятия и в первую очередь учет данных ресурсов. Следом за автоматизацией учета основных ресурсов: деньги, товары, сотрудники, — потребности компаний росли в сторону автоматизации сервисных процессов (системы CRM, SCM, HR), а также сквозной автоматизации процессов — здесь на помощь пришли системы на движке Worflow, системы электронного документооборота (СЭД), а затем и полноценные BPM-системы.

Применение Low-code платформ для разработки бизнес-приложений

Текущее состояние развития ИТ-систем стоит на пороге «бума» нового рода систем для быстрого создания программного обеспечения, стремясь удовлетворить скорости изменений бизнеса и бизнес-процессов. Подобного рода системы в отличие от чистых BPMS за объект проектирования берут не бизнес-процесс, а элемент приложения, для которого изначально в платформу заложены различные функции по работе с ним:

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

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

Low-code подход меняет способы проектирования ИТ-инфраструктуры компаний, предоставляя требуемую скорость изменений и гибкость. Но, уважаемые программисты, не стоит паниковать! Использование Low-code платформы – это совсем не крест на роли и участии истинных разработчиков в формировании ИТ-решений. Рассмотрим ниже возможности Low-code платформ, в том числе кейсы использования в «крупном» бизнесе.

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

- создание разделов и приложений;

- визуальная форма отображения элементов приложений и списков;

- распределение прав доступа;

- работа с шаблонами документов и т.п.

Он использует готовые и расширяемые операции и плагины при настройке работы с приложением:

- отправка сообщения;

- отправка письма;

- постановка задачи;

- создание элемента приложений;

- изменение статуса элемента приложения;

- отправка SMS;

- распознавание штрих-кода.

Также Low-code платформы предоставляют возможности совместного использования подходов и другого рода систем, таких, как BPM, CRM, СЭД:

- операции с документами;

- стандартные действия с клиентами, звонками и встречами;

- настройка бизнес-процесса для любого элемента приложения.

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

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

- динамика на форме – зависимость отображения одного поля от значения другого;

- фильтрация данных – зависимость списка значений одного поля от значений другого;

- математические вычисления значений (длительности, итоги, суммы, произведения);

- определение исполнителей, согласующих по условиям.

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

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

Представителям «малого» и «среднего» бизнеса с появлением Low-code платформы предоставляются широкие возможности по наведению порядка в своих компаниях, выстраиванию бизнес-процессов, контролю и мониторингу за данными, их совместному использованию – и все это без необходимости создания специализированного ИТ-подразделения или обращения за дорогостоящими консалтингами и внедрениями от специализированных компаний. А как же «крупный» бизнес и их ИТ-подразделения?

Особенности Enterprise-заказчиков для Low-code разработки

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

Кейсы использования Low-code платформы для таких заказчиков в данном случае могут быть следующими:

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

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

3. Объединение операций, происходящих в разрозненных системах в общее приложение. Предоставляет возможность отслеживания жизненного цикла элементов приложения, ответственных, кто сейчас ведет работу с тем или иным элементом приложения и в какой системе. Тут приходится столкнуться с сакральным для проектировщиков ИС словом «интеграция». И, конечно, Low-code платформа идет нам на встречу и может предоставить заготовленные заранее коннекторы или инструменты настройки интеграции, парсинга данных.

Но каждая новая интеграция может быть уникальна, выставляет свои требования. Например, в систему заложено предоставление доступа через HTTP API с помощью Fetch API, а на проекте необходимость работы через wcf, с которым Fetch не умеет работать, система предусматривает разбор данных из json, а у вас затесался xml. И тут снова не обойтись без написания кода!

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

Low-code и классические разработчики вместе

Итого, мы видим, что использование Low-code платформы предоставляет нам множество возможностей для быстрой и гибкой разработки. Она автоматизирует рутинные операции, которые раньше программисту приходилось разрабатывать (читай последние лет десять: копировать) из проекта в проект, из системы в систему. Этими операциями теперь может пользоваться начинающий Low-code разработчик без особого погружения в мир разработки классов, методов, паттернов проектирования, особенностей баз данных. При этом место для классических разработчиков остается. Во-первых, не забываем, что и сами Low-ode платформы нужно разрабатывать;) Во-вторых, ни один Enterprise-проект по внедрению новой ИТ-системы в компанию не обойдется без разработки специализированных модулей, интеграций, интерфейсов, сервисов. И большим плюсом остаётся возможность развития Low-code платформ от вендоров на основе разработанных интеграторами, партнерами и самими клиентами решений, учитывая реальные кейсы использования, которые еще не нашли своей реализации в текущей функциональности, дополнения их готовыми модулями и сервисами, которые каждый может скачать в магазине готовых решений.

0
9 комментариев
Написать комментарий...
Speedwagon MMXXII

Как человек, который в своё время вдоволь намучался-наигрался Элмами, КомпаниМедиями, Тесаси, Айбиэмами, ДокВиженами, отмечу одну важную деталь Энтерпрайза:

В какой-то момент любой крупный Заказчик приходит к тому, что условная СЭД/BPM выше головы прыгнуть не может, что расширяшками что-то сделать нельзя, что надо сделать что-то невероятно сверхъестественное, что в дефолтной коробке отсутствует напрочь, и начинается старая добрая свистопляска, заканчивающаяся тем, что нанимается штат разрабов/аналитиков/тестеров/девопсов, которые пилят свою корпоративную СЭД/BPM/ещё что-нибудь, лишь бы уйти от проклятых платформенных ограничений.

Увы, все предусмотреть у Энтерпрайза просто невозможно, ждать, пока Вендор выкатит новую фичу/правку можно ждать вечно (и платить за это тоже можно безмерно много).

Ответить
Развернуть ветку
Yulia Bataltseva
Автор

Совершенно верно - любая платформа имеет свои ограничения, которые следуют из ее преимуществ. Это касается не только корпоративных платформ, но и в том числе фреймворков разработки. Любая "обертка" ускоряет одни популярные функции и может накладывать ограничения на непопулярные. Совсем универсальных продуктов не бывает. Очень много ограничений у NoCode инструментов. В Low-Code можно многое допиливать.
Вендоры обычно слышат рынок. И если 90% вещей можно сделать быстрее - логично ими пользоваться.

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

У нас много понимания, что “допилки” нужны часто.
Это уже четвертое поколение продуктов ELMA и поэтому продукт сделан очень кастомизируемым. И это не только функции скриптов внутри Low-Code, но и написание собственных модулей и микросервисов. В том числе на сторонних языках. У нас уже сегодня есть много фичей для кастомной разработки для расширения возможностей системы. Но в разработке также создание среды полноценной для разработки и CI/CD. Пытаемся “убить двух зайцев сразу” - дать широкие возможности для программистов и кратно сократить сложность разработки простых и популярных вещей за счет лоукода.

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

Ответить
Развернуть ветку
Jonathan Lynn

Очень интересно, спасибо!

Ответить
Развернуть ветку
Елизавета Маркитонова

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

Ответить
Развернуть ветку
Yulia Bataltseva
Автор

В следующих случаях:
- реализация фич из предыдущей системы при переносе функционала
- написание специализированных модулей для интеграций с внешними системами
- реализация кастомных интерфейсов
- реализация специфических сервисов

Ответить
Развернуть ветку
Дмитрий Казаков

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

Ответить
Развернуть ветку
Yulia Bataltseva
Автор

Конечно, лоу-код позволяет дорабатывать решения не только из "кубиков". Как раз для этого существует блок Сценарий (https://elma365.com/ru/help/360027203731.html), который позволяет прописать любую автоматическую логику, например, по изменению и созданию новых элементов приложений, документов, файлов, управление более сложной динамикой или визуализацией. Внутри блока Сценарии код пишется на TypeScript, есть полное описание библиотеки для работы с пользовательскими сценариями (https://tssdk.elma365.com/ru). Также существует большое количество статей и примеров, по которым можно сориентироваться при написании собственного Сценария.

Ответить
Развернуть ветку
Анжелика Крылова

Какие тогда основные отличия low-code платформ от классической разработки бизнес-приложений?

Ответить
Развернуть ветку
Yulia Bataltseva
Автор

Возможность использования предустановленных операций с элементами и функциями drag-and-drop

Ответить
Развернуть ветку
6 комментариев
Раскрывать всегда