Осторожно: Low-code!

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

В этих условиях в качестве панацеи все чаще рассматривается переход на использование при разработке информационных систем принципов low­-code. И даже Gartner считает, что к 2024 г. доля low-­code в разработке приложений будет составлять 65%. Действительно, многие известные семейства информационных систем сегодня превратились по сути в low-­code платформы. К примеру, с известной долей условности к числу платформ low­-code можно отнести «1С» и ее многочисленных партнеров, занимающихся внедрениями, в рамках которых адаптируются решения под нужды конкретного заказчика.

Специалисты, поддерживающие эти системы на стороне бизнеса, занимаются решением прикладных задач, используя визуальные инструменты и упрощенный язык программирования. Они работают в максимальном приближении к бизнесу, и характер их работы вполне соответствует подходам low­-code. И кстати, в «1С» отнюдь не стесняются ассоциаций своей торговой марки с low-­code-­платформой. Наша компания – не исключение. Мы развиваем собственную платформу LanDocs, в которой присутствует и функциональность low­-code. Многие заказчики достаточно активно реализуют ее, для того чтобы самостоятельно дополнять используемые ими системы необходимыми элементами. Но опыт работы с этими компаниями показывает невозможность решения при помощи low-­code всех задач, связанных с расширением или изменением функциональности системы.
Чем хорош low-code
Low­code – платформа, которая позволяет с небольшим объемом программирования, с помощью неквалифицированных исполнителей создавать прикладные решения.

Идеальная картина low-­code – бизнес­с-пециалист, научившийся программировать, но отнюдь не программист, получивший повернутое в бизнес задание. Чем меньше прослоек между бизнесом и теми, кто решает его задачи, тем ниже стоимость решения и эффективнее результат.

Этим и определяется ценность low-­code для компании-­заказчика. Выгода его для компании-­разработчика – сокращение себестоимости проекта. Более того, low­code дает возможность выполнить проект не только специализированной компании­-девелоперу, но и интегратору, который обладает незначительными компетенциями в написании кода.
Визуальное программирование
Идея замены программирования сборкой систем из отдельных элементов в визуальных редакторах появилась давно. Она действительно упрощает жизнь множеству компаний.

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

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

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

Именно так, а вовсе не переходом на использование только визуального программирования, реализуется low-­code сегодня. Применительно к ECM­системам визуальные конструкторы отлично подходят для того, чтобы изменить карточку документа, дополнив ее новыми полями, к примеру, добавив новый реквизит к шаблону договора. Те же инструменты можно использовать, чтобы сконструировать бизнес-процессы: расставить сотрудников в зависимости от обязанностей и сферы ответственности, прорисовать маршруты движения документов, порядок визирования и т. п.

К слову, даже те наши заказчики, которые широко используют в LanDocs встроенные визуальные средства, предпочитают поручать эту работу не бизнес-пользователям, а программистам. Такая функциональность широко востребована, и мы активно развиваем ее в каждом новом релизе. Это легко объяснимо: все эти возможности касаются мелкой кастомизации и не затрагивают бизнес-­логики системы и не могут нарушить ее. Но если речь идет о кастомизации, глубокой перестройке существующих бизнес-процессов, то для этого придется либо писать дополнительный код, либо использовать интеграцию с другими системами, такими как BPMS. Хотя и их возможности ограничены: зачастую принципиальные изменения и здесь невозможны без серьезного программирования.
Low-code или low-cost?
Вторая идея применения low­-code – стремление облегчить программистам решение типовых задач за счет использования репозиториев, библиотек компонентов, набора точек расширения и интеграции, SDK и прочих средств.

Да, такие решения широко и эффективно применимы. Беда в том, что все это едва ли можно отнести к понятию low-­code. Использование типовых шаблонных элементов скорее можно назвать low-­cost. Они позволяют разработчикам сосредоточиться на решении бизнес­- задач, а не заниматься написанием огромного объема boilerplate кода. В этом случае компания может добиться значительной экономии затрат на разработку, в том числе (и это очень важно) за счет снижения требований к квалификации девелоперов, задействованных в проекте. Подчеркну, снижение стоимости ECM­-системы – то свойство low-code, которое касается исключительно разработчика, а не заказчика.

Да, заказчик благодаря low­-code получит более дешевое решение за счет снижения себестоимости системы. Но использование low-­code не означает, что и разработчику не придется заниматься кодированием. Нет, придется! Типовые задачи, библиотеки кода – все это используется на стороне компании­разработчика. И даже доступность в системе блока объектного программирования, возможность собрать базы данных или карточки документов ситуации не меняют.

В любом случае для глубокой кастомизации потребуется новый и весьма специфический код. Стоит отметить, что с low-­cost перекликается явно выраженный тренд на open source. Открытая система, вокруг которой сформировалось комьюнити разработчиков, накопленный набор модулей, примеры и схемы решения задач снижают стоимость разработки. При этом отказаться от написания кода не получится. Наоборот, программирования при работе с open source будет много, даже очень. Использование типовых компонентов в целом ряде случаев можно заложить в систему еще на этапе разработки масштабирования и расширения функциональности. Это обстоятельство важно еще и потому, что часто low­code подается как гарантия возможности использования системы за гранью той предметной области, для которой она предназначена.

Да, именно так. Приходилось даже читать, что СЭД можно использовать и как систему управления предприятием. Авторы подобных идей исходят из того, что делать это позволяет применение многочисленных визуальных конфигураторов. Но они как раз не расширяют, а ограничивают применимость решений, созданных на low-­code.
Интерфейс – еще не бизнес-логика
Тренд на применение low-­code, который наметился во всем мире, очевиден. Весьма заманчивой выглядит идея привлечения пользователей к созданию бизнес-­приложений с использованием доступных им инструментов.

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

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

Да, именно так. Приходилось даже читать, что СЭД можно использовать и как систему управления предприятием. Авторы подобных идей исходят из того, что делать это позволяет применение многочисленных визуальных конфигураторов. Но они как раз не расширяют, а ограничивают применимость решений, созданных на low-­code.
Дело не в задачах, а в платформе
Получается, что low-­code имеет ограниченную применимость? Нет.

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

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

Точно так же как СЭД не может использоваться в качестве ERP, и наоборот. Компании, которая выбрала low­-code для решения своих задач, рано или поздно придется обращаться к услугам программистов, чтобы довести свою систему до ума, обойти ограничения платформы. Рассматривать low­-code как готовое решение для преодоления проблемы разработки – серьезная ошибка. Мы тоже используем его в своей работе, стремясь снизить стоимость разработки. Но есть другие тренды, более важные для создания эффективных информационных систем, которые будут приносить заказчикам удовольствие от работы. Это, в частности, пользовательский опыт и UI/UX.

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

А что же low­-code? Прежде чем говорить об этом подходе как о революции в ИТ, хотелось бы познакомиться с заказчиками, которые смогли безболезненно перенести свои сложные информационные системы из парадигмы high­-code, в low­-code и от этого стали счастливее. Нам таких встречать еще не приходилось.
Илья Бодров, руководитель разработки ECM, ЛАНИТ
Для журнала «CONNECT»