Привет! В департаменте корпоративных систем ЛАНИТ, где я работаю аналитиком, одно из направлений — разработка ИТ-решений и бизнес-приложений на базе систем визуального программирования. Последние два года мы реализовывали проекты с использованием low-code платформы BPMSoft. Хочу поделиться нашим опытом в этой статье. Она будет полезна тем, кто:
рассматривает возможность использовать или уже применяет low-code платформы в автоматизации процессов работы организации;
работает с low-code как пользователь или представитель команды разработки;
готов преодолеть скепсис и понять, что разные бизнес-задачи можно и нужно решать не только с использованием классической разработки.

BPMSoft — это система для автоматизации бизнес-процессов, работающая в нотации BPMN 2.0. Для большинства задач написание программного кода не требуется. Платформа содержит инструменты для гибкой настройки и кастомизации процессов, а также готовые бизнес-приложения для управления продажами, маркетингом, сервисом, коннекторы и расширения для адаптации к различной ИТ-инфраструктуре.
Разработчик VS аналитик: как меняется подход к формированию команды при работе с low-code
«Нужно оценить коммерческое предложение и прикинуть команду…» — так начинается работа над каждым проектом. Опытные команды пользуются чем-то вроде калькулятора: знакомятся с вводными от заказчика, а потом планируют, сколько сотрудников и в какой период будут задействованы, какие затраты в человеко-часах и деньгах потребуются.
Однако вендоры low-code платформ предлагают основной рабочей лошадкой назначить аналитиков, а не разработчиков, оставив последним совсем уж специфичные задачи. Если говорить про BPMSoft, то действительно, и инструментарий, и база знаний рассчитаны на пользователя, в большей степени знакомого с продуктом и его возможностями, чем на разработчика с определенным стеком технологий.

Вот и мы перераспределили силы, оставив кодеров на скамейке запасных: в одном из первых наших проектов на low-code платформе по настройке системы управления запросами пользователей и клиентов с несколькими тысячами обращений в день приоритет был отдан именно работе аналитиков.
В нашей команде у каждого специалиста своя история и различный опыт как по части задач (саппорт, тестирование, аналитика, разработка), так и по части эксплуатируемого ПО. Именно этот винегрет позволил нам выстроить продуктивную работу в low-code. Нельзя сказать, что все шло гладко: если с настройками разделов в платформе проблем практически не возникало, то вот с поиском удобного способа работы в команде, в том числе с настройкой системы управления версиями, вопросов было в разы больше.
Чем больше опыта мы накапливали, тем сложнее задачи мы брали на исследование, и здесь уже не обошлось без классической разработки. Можно бесконечно долго пытаться настроить сложные процессы, а потом все равно пойти и написать задание-сценарий на С#.

В итоге только для двух крупных задач нам потребовалось участие разработки: для модуля учета трудозатрат и для модуля расчета времени на обработку обращений по сервисным договорам, в каждом из которых были нетривиальные требования и сложные вычисления. Причем, в первом случае реализация требований была выполнена путем настройки существующего раздела и добавления бизнес-процесса с несколькими сценариями на С#. Во втором случае был написан отдельный модуль и добавлен новый кастомный раздел в интерфейс пользователя, обеспечивающий настройку и корректировку параметров SLA администратором.
На сегодняшний день в проектах около 80% задач мы выполняем, привлекая только аналитиков. Более того, некоторые свои решения, реализованные первоначально с помощью кода, мы перекладываем в плоскость настройки бизнес-процессов, понимая, что целесообразно передать заказчику и службе сопровождения однородный продукт (только работа в интерфейсе платформы), нежели иметь пачку модулей «сбоку».
Несем low-code в массы, или почему мы используем визуальное программирование
Это быстро. Определенно быстрее, чем классическая разработка.
Если у организации есть потребность оперативно автоматизировать внутренние процессы и самостоятельно их поддерживать и развивать, то решение на low-code платформе оптимально.
При необходимости можно продумать последовательный переезд в единое пространство для всех сотрудников по большинству бизнес-процессов — эта задача вполне реализуема с помощью low-code. Даже базовые возможности коробочного решения обычно позволяют настроить коммуникацию, создать реестры задач (настроить карточку объекта, статусную модель, выполнить импорт/экспорт записей), сформировать отчеты, подготовить печатные формы. Тем не менее для масштабных проектов участие опытной команды разработки и наличие нескольких пользователей из числа сотрудников заказчика, прошедших обучение по разным компетенциям, конечно, предпочтительнее.
Все LCAP-платформы по-разному подходят к содержанию коробки: в одних, покупая лицензию, вы приобретаете только набор инструментов для работы. Другие, напротив, предоставляют различные готовые отраслевые решения, в которых можно “пощупать” продукт с первых минут, а настраивать уже в процессе обучения или эксплуатации.
В BPMSoft пошли по второму пути: приобретаемый продукт в зависимости от предполагаемой области применения будет содержать ряд разделов, готовых к работе. Например, для продукта «Управление продажами» в систему заложены эталонные процессы работы с разными циклами сделки.

Но типовые решения рано или поздно заканчиваются, и необходимо настраивать процессы, для которых нет стандартного рецепта. Кроме того, в экосистеме могут появиться мелкие процессы, до которых руки у основной массы пользователей пока не дошли. И здесь Конструктор — must have для вашей сборки.
Тиражирование при low-code разработке: почему мы любим Конструктор и используем магазин приложений
BPMSoft Конструктор — это продукт для создания с нуля любого бизнес-процесса, функционирующего в организации. Можно дополнить коробку собственными подпроцессами или разделами, которые отличаются составом параметров, ролевой моделью, статусной моделью, наличием интеграций, сферой применения.

Мои коллеги любят Конструктор и уважают работу с ним куда больше, чем настройку готовых модулей (добавить поля и связи, переименовать статусы). Разумеется, работы с созданием разделов с нуля в разы больше, чем с настройкой, но и результат, который мы на выходе показываем заказчику, куда ближе к требуемой функциональности.
В нашей практике полностью на базе Конструктора реализован ранее упомянутый проект по работе технической поддержки с клиентскими обращениями (Service Desk). Потребности заказчика во взаимодействии между тремя линиями саппорта требовали глубокой кастомизации, настройки интеграции с различными внешними системами в обе стороны и разработки сложных алгоритмов расчета времени по сервисным договорам. Пример кастомного раздела приведем ниже:

Помимо создания раздела для настройки параметров SLA Конструктор использовался также для создания разделов базы знаний — отдельного рабочего места сотрудников сопровождения.

Не станем умалчивать тот факт, что low-code платформы имеют ограничения в части настройки UI: многое из того, что не относится к основному функционалу и обслуживает работу основных разделов, имеет специфичное, слабо регулируемое представление (например, журналы или системы оповещений/уведомлений). Вот тут на помощь можно «позвать друга» в лице вендора и его партнеров, успешно реализовавших модули для решения таргетных задач, вроде коннекторов или аналитических отчетов, или подготовивших крупный блок для новых отраслевых решений.
Поскольку пользовательский опыт у большинства заказчиков совпадает (речь об использовании продуктов, к которым все привыкли, но которые нужно/желательно заменить), то и ожидания у многих сходятся.
«Нам нужно представление в виде канбан-доски…»
«Хорошо бы реестр отображать в виде иерархического списка…»
«Пусть из проектных задач формируется диаграмма Ганта…»
Вендор продумал процедуру публикации в магазине приложений различных дополнений (шаблоны, расширения, коннекторы и т.д.), которые можно устанавливать бесплатно или приобретать у разработчиков. Также после прохождения сертификации можно публиковать свои разработки в магазине приложений.

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