
В настоящее время платформы низкого кодирования (low code) предоставляют инструменты для реализации различных задач без необходимости написания большого объёма кода. Целью создания таких систем является снижение затрат на внедрение новых решений, упрощение входа в сферу разработки и сокращение сроков создания программного обеспечения. В итоге это приводит к экономии бюджета и минимизации рисков, связанных с разработкой программного продукта с нуля. В данной статье мы рассмотрим опыт российской IT-компании SimbirSoft в создании платформы низкого кодирования, а также проанализируем возможности и трудности разработки подобных систем. Данный материал будет полезен предприятиям, не располагающим штатом IT-специалистов или имеющим ограниченные ресурсы для разработки. В первую очередь статья будет актуальна для производственных и промышленных организаций, а также компаний, стремящихся к развитию и оптимизации множества бизнес-процессов.
Задачи системы
Low code-платформа подходит промышленным предприятиям и крупным компаниям с развитой сетью филиалов. Разработанное ядро системы управления производственными процессами (MES) имеет несколько подсистем. Отдельного внимания заслуживают:
- BPMN-движок – система создания и управления бизнес-логикой
- UI-конструктор, в котором можно генерировать интерфейс системы (модули и блоки для последующей работы) с помощью готовых компонентов или кастомных элементов. О нем мы расскажем далее.
Именно благодаря этим подсистемам ядро можно использовать для разработки различных функциональных модулей по принципу Low code, т.е. с наименьшими затратами и в короткие сроки автоматизировать практически любые процессы предприятия, например, управление делопроизводством, складом, торговлей, персоналом, производством, или создать собственную CRM-систему.
Под функциональными модулями понимаем модули для конкретного сценария или сферы бизнеса. Если клиент производит газовое оборудование, то функциональный модуль будет состоять из блоков с различными типами, назначениями такого оборудования: задвижки, патрубки, боксы, камеры и прочее. Эти блоки он может настроить по своему желанию, упорядочить и т.п.
Ядро выступает «оркестрантом» – оно позволяет получить единую экосистему для построения ИТ-ландшафта предприятия.

На выходе получается система, решающая весь спектр задач по управлению и автоматизации производственного предприятия.
Зачем был нужен UI-конструктор?
В рамках low code-подхода в системе реализовано:
1. Конструктор интерфейсов: позволяет создавать страницы портала без знания html и css, наполнять их данными, реакциями на события и действия пользователей.
Решение упрощает жизнь специалистам, далеким от frontend-разработки и верстки, где одно неловкое движение может «сломать» отображение. Конструктор постоянно развивается и дополняется новыми функциями.
2. Конструктор запросов для получения данных, распределенных по разным базам.
Для выгрузки информации из разных систем или баз данных (далее – БД) нужно владеть определенными навыками и знаниями по управлению БД и написанию необходимых для этого скриптов. Конструктор позволяет максимально упростить и ускорить составление запроса: пользователю достаточно указать необходимые поля, фильтры и сортировки, остальное преобразование будет происходить уже внутри системы.
На данном этапе подсистемы еще не позволяют полностью отказаться от специалистов с кодовой базой. Но при дальнейшем развитии продукта можно перейти на Low code-решение с минимальными затратами на разработку.
Но уже сейчас платформа открывает ряд возможностей:
- предоставляет разработчикам функциональных модулей (про них мы рассказывали выше) инструмент для более быстрого создания интерфейсов работы с модулем.
- обеспечивает единый вид и работу интерфейсов системы в условиях разработки модулей разными командами и постепенного добавления функциональности.
- дает возможность конечным пользователям частично настраивать интерфейсы, адаптированные под нужды конкретного производства.
Кому могут быть интересны такие решения
Low code-платформа – универсальная система, которая покрывает потребности разных сфер бизнеса и позволяет:
- масштабировать продукт
- работать с начальным уровнем знаний в программировании, что снижает технические требования к сотрудникам и затраты на оплату труда.
Создавать свою платформу выгодно, когда она изначально решает задачи конкретного предприятия, и есть достаточное количество потенциальных пользователей с похожими проблемами, чтобы их тоже заинтересовать.
Всё большему числу компаний требуются информационные системы, но не все могут позволить выделить большие финансовые и временные ресурсы на их разработку. Low code-платформа в этом случае – оптимальный вариант. Особенно это касается компаний, которые обрабатывают большое количество информации и используют ее в разрозненных подсистемах: в системе управления бизнес-процессами, мониторинга показателей и др.
Яркий пример – промышленные предприятия, где нужно настроить:
- работу системы под свою сферу, специфику, номенклатуру и особенности работы с внутренними подразделениями,
- различные событийные модели и уведомления, отталкиваясь от мероприятий, которые происходят в организации.
Тонкости создания Low Code-платформы
Во-первых, важно смотреть на платформу с точек зрения двух групп пользователей, которые будут:
- с её помощью создавать конечный продукт.
- непосредственно работать с этим продуктом.
В такой связке легче понять и проработать пользовательский опыт. Также важно хорошо продумать общие механизмы работы платформы: что у нее внутри, как она решает высокоуровневые задачи. Механизмы должны быть максимально абстрактными, чтобы закрыть как можно больше кейсов использования системы.
Во-вторых, начинать работу по созданию собственной платформы рекомендуем с минимальной жизнеспособной версии (MVP). Не исключено, что, как и в нашем случае, минимальная версия продукта будет содержать сложный и объемный набор функций, без которого нельзя решить базовые задачи пользователей и получить от них обратную связь для дальнейшего развития. Тем не менее, к выбору списка фич на начальных этапах советуем подходить взвешенно, учитывать ресурсы и ограничения проекта, расставить приоритеты.
На следующих этапах разработки можно выстроить развитие платформы с учетом пользовательского опыта, но в самом начале всё придется решать внутри команды.
В-третьих, разбить продукт на несколько более мелких частей или релизов, чтобы чаще выпускать стабильные версии и обновления, а также собирать максимально актуальную обратную связь от первых пользователей.
Подводные камни
При создании платформы не обошлось и без подводных камней. Далее расскажем, как их обойти.
Итак, при разработке UI-конструктора мы столкнулись с:
- Необходимостью большого количества интеграционных тестов, не всегда очевидных из аналитики.
- Большим объемом тестовой документации, которую сложно поддерживать в актуальном состоянии. Как правило, такие крупные сложные системы имеют множество взаимосвязанных компонентов. Изменение в одном влечет изменения в других. Всё это нужно учитывать при будущих обновлениях продукта.
- Выявлением недостающих критичных фич уже в процессе разработки. Это связано с масштабом системы, широким спектром компонентов и подсистем.
- Большое количество микросервисов в продукте влияет и на проработку архитектуры. Нужно заранее учитывать и предугадывать множество взаимосвязей и интеграций.
Сложность тестирования оказалась в том, что конструктор имеет огромное количество комбинаций, которыми можно воспользоваться. Прописать в аналитике исчерпывающие сценарии использования невозможно. Уже к сдаче MVP мы поняли, что нужно менять подход к тестированию. Мало просто проанализировать целевую аудиторию, нужно покрыть все требования тестами, применить техники тест-дизайна.
Предложили следующие решения:
- Мы проанализировали все баги и узкие места, которые возникали при использовании системы в промежуточном тестировании, и выявили часто повторяющиеся комбинации и проблемы. Все проверки включили в регресс.
- Воспользовались техникой попарного тестирования и составили максимально возможное количество комбинаций между элементами интерфейса, доступными действиями и событиями.
- После общения с заказчиком о задачах той или иной фичи и анализа бизнес-логики системы прописали основные интеграционные тесты.
- Поскольку без автоматизации тестирования невозможно быстро выпускать релизы, мы разделили процесс на этапы, чтобы снизить затраты и повысить эффективность. Совместно с заказчиком определили основные критичные сценарии, которые нужно проверять каждый раз при внесении правок в систему. Это позволило нам уже на самом начальном этапе запускать автотесты и покрывать критичный функционал, быстрее «заливать» хотфиксы или срочные доработки.
Выводы
В результате реализации проекта мы:
- Выстроили процесс тестирования и адаптации требований под особенности системы.
- Оптимизировали затраты на автотесты, чтобы они работали в минимально короткие сроки после внедрения на пользу проекта.
- Сделали продукт стабильным и отказоустойчивым.
- Внедрили процесс нагрузочного тестирования, чтобы оценить отказоустойчивость системы и определить требования к оборудованию.
Для оптимизации процесса разработки рекомендуем предусмотреть на старте:
- План по автоматизации тестирования, согласованный с заказчиком.
- Тщательную проработку сценариев использования, которая поможет избежать критичных срочных доработок, которые влияют на сроки и стабильность системы.
- Расширяемость системы и адаптировать тестовую документацию к автотестам.
- Разработку по спринтам для быстрого ввода в производственную эксплуатацию.
С помощью Low code предприятия могут выполнять широкий спектр задач:
- Выстраивать бизнес-процессы под разные цели и сферы деятельности. Это достигается за счет гибкости и абстракции системы. В результате можно повысить эффективность процессов в компании.
- Такие системы не требуют привлечения высококвалифицированных разработчиков. Их можно использовать при наличии сотрудников с базовыми знаниями в программировании или системном анализе.
Решения на основе Low code адаптивны к монетизации и довольно просты для конечного пользователя, хотя требуют серьезных ресурсов на стадии разработки.
Источник: https://up-pro.ru/

