12 - 2020

Сам себе программист, или Как low-code-программирование помогает ускорить бизнес-процессы предприятия

Внедрение цифровых технологий изменяет методы ведения бизнеса, причем темп изменений никогда еще не был таким высоким, как сегодня. Главная задача цифровизации — ускорение бизнес­процессов. Чтобы повысить эффективность работы и остаться конкурентоспособными на рынке, компании вынуждены осваивать новые инструменты и методы. Всё большую популярность приобретает концепция программирования low­code (или no­code), предполагающая разработку бизнес­приложений с минимальным (или нулевым) использованием кода. Концепция отражает реакцию рынка на сложность и разнообразие современных средств разработки ПО. Согласно исследованию компании Gartner, к 2024 году low­code­платформы будут применяться при разработке более чем 65% приложений по всему миру.

Востребованность такой технологии растет из­за повышенного спроса на бизнес­приложения в условиях динамично меняющегося рынка и нехватки квалифицированных программистов. Low­code­программирование — вполне естественный этап повышения уровня абстракции при разработке приложений, которые создаются в графической среде с помощью блоков и связей между ними, строящихся по методу перетаскивания (drag­and­drop). Такой подход позволяет создавать приложения специалистам, не обладающим навыками и знаниями в области программирования, то есть инженерам, бизнес­аналитикам или даже продвинутым пользователям, которыми являются ключевые сотрудники, носители информации о процессах компании. Предоставление в их распоряжение инструмента, позволяющего, по сути, создавать/изменять компоненты IT­системы предприятия, позволяет повысить гибкость и прозрачность бизнеса, снизить затраты и увеличить скорость разработки корпоративной IT­системы.

Low­code­программирование помогает сократить разрыв между профессиональными разработчиками и так называемыми гражданскими разработчиками (citizen developer), то есть сотрудниками компании, которые раньше не были связаны с разработкой приложений. Это дает возможность исключить трудности взаимодействия между бизнес­заказчиками и разработчиками внутри компании. Применение low­code­методологии допускает создание единой команды для разработки приложений, когда одну часть задач берут на себя гражданские разработчики, а другую — профессиональные программисты. Тем самым low­code­программирование помогает снизить риски и сократить сроки реализации внутренних задач в корпоративной системе. Руководители разных уровней получают возможность оперативно опробовать новые модели управления, самостоятельно адаптировать интерфейсы к потребностям пользователей, быстро создавать новые формы отчетов, вносить изменения в бизнес­процессы и т.д.

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

Рассмотрим, например, задачу оперативного снятия данных со станка в цехе предприятия для последующего их анализа на компьютере. Можно ли решить ее средствами low­code­разработки?

Решение этой задачи предполагает несколько аспектов. В первую очередь необходимо получить данные с промышленного оборудования, например станка. Здесь есть два варианта: первый — на предприятии уже развернута IT­система, которая получает данные с оборудования, а второй — на предприятии такой системы нет, но есть оборудование и нужно разработать специальное приложение, чтобы считывать данные с этого оборудования.

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

Если рассматривать вариант, когда нужно передать данные с оборудования непосредственно в приложение при отсутствии развернутой системы сбора данных, то для решения такой задачи, кроме применения low­code­платформы, возможно, потребуется привлечение программистов, которые должны будут построить связи с протоколами промышленного оборудования и обеспечить преобразование данных в формат, подходящий для low­code­среды. Затем, используя эти данные, инженер может самостоятельно создать нужное приложение на low­code­платформе. Такую платформу предлагает, например, компания Mendix, которая два года назад стала подразделением концерна Siemens.

Платформа Mendix способна обмениваться данными с большинством индустриальных систем управления предприятием. Одна из ключевых задач позиционирования решений Mendix — создание корпоративной коллаборативной платформы верхнего уровня, на основе которой можно быстро и просто создавать логику интерфейсов. То есть она должна взаимодействовать с различными системами, в том числе наследуемыми (legaсy). Исторически сложилось так, что эта платформа изначально легко интегрировалась с ERP­системами компании SAP. Что касается решений других вендоров, соответствующих требованиям отраслевых промышленных стандартов, то для подключения к большинству современных систем в состав платформы Mendix включены коннекторы (или API­интерфейсы). Причем эти интерфейсы разработчики могут бесплатно скачивать онлайн. Mendix предлагает также решения для подключения к другим системам управления предприятием, построенным на стандартных базах данных типа SQL. Это одно из важнейших конкурентных преимуществ платформы. Созданное с помощью low­code­платформы приложение автоматически, одним щелчком мыши, отслеживает все изменения и обрабатывает скрипты базы данных, устраняя многие трудоемкие процессы развертывания и функционирования систем. Технология Mendix отличается от других предложений на рынке тем, что обеспечивает многоплатформенность, то есть разработанное приложение можно запускать на компьютере, планшете или смартфоне под управлением различных операционных систем. При этом Mendix поддерживает «нативные» приложения, то есть приложение может работать без подключения к сети (серверу) и использовать такие аппаратные возможности устройства, на котором работает, как, например, средства аутентификации (отпечаток пальца, сканирование лица и другие), видеокамера, GPS и т.п. Кроме разработки приложения каким­либо способом, важным ключевым фактором является его тестирование, сопровождение и весь жизненный цикл. Mendix содержит весь комплекс необходимых инструментов для решения этих задач и поддерживает методологию CI/CD.

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

Несмотря на популярность low­code­программирования в европейских странах, в России эту технологию пока применяют редко. Mendix только недавно вышла на российский рынок, тем не менее, специалисты Siemens Digital Industries Software, отвечающие за внедрение платформы Mendix, уже начали прорабатывать совместные решения со своими российскими коллегами. В частности, для отечественных предприятий предлагается решение, которое обеспечивает подключение платформы Mendix к системе «1C», весьма популярной на российском рынке.

Технические специалисты Siemens Digital Industries Software продемонстрировали некоторым российским заказчикам возможности и функционал платформы Mendix. Например, было показано, как можно быстро и просто передать данные из системы SAP в демоприложение, созданное на платформе Mendix. Программисты, которые занимаются интегрированием различных систем, хорошо понимают сложность получения данных из других систем, их интерпретации и преобразования в требуемый формат. Часто такую задачу решить не удается вовсе. У специалистов, продемонстрировавших возможности решения Mendix, этот процесс занял всего 5­7 минут.

Возникает вопрос: может ли менеджер, используя low­code­программирование, справиться с задачей получения сложной и иногда сложно структурированной информации (например, из хранилищ системы SAP) или для этого нужен квалифицированный программист? Однозначно ответить на этот вопрос нельзя. Всё зависит от опыта и знаний конкретного человека. Следует учитывать, что концепция low­code не означает, что сотрудник компании может вообще не иметь опыта программирования или не обладать знаниями в этой области. Так или иначе, разработчик должен быть знаком с методологией создания приложений, построения моделей данных. Он должен понимать задачу и знать последовательность ее решения, в которую входит ряд этапов. Вначале следует описать модель данных, а затем построить логику работы приложения. В любом случае вряд ли менеджер, впервые скачав инструмент разработки с сайта компании, сможет быстро создать приложение. Siemens Digital Industries Software предлагает бесплатные web­курсы по основам low­code­разработки, окончив которые инженер или менеджер приобретет знания, достаточные для самостоятельного создания приложений на базе платформы Mendix.

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

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

Можно выделить три основных типа решения для IT­системы предприятия, которые определяют, следует ли заказчику самостоятельно разрабатывать приложение с применением low­code­программирования или поручить эту работу системному интегратору или другой сторонней организации. Первый тип — это инновационная система, которой на рынке до сих пор не существовало, а компания хочет реализовать какие­либо новые подходы или собственные бизнес­модели. Второй тип системы — это коллаборативная платформа, когда имеется задача получить данные с существующей системы, дополнить их необходимой логикой и создать единое информационное пространство предприятия. И третий вариант — это готовые системы под конкретные задачи компании, такие как ERP­, CRM­, MOM­ или MES­системы. При первом и втором сценарии, то есть когда нужна инновационная система или коллаборативная платформа, заказчику целесообразно самостоятельно создавать приложение на базе low­code­платформы. Когда речь идет о готовых системах, то их лучше покупать у вендоров, потому что у них накоплен необходимый опыт, имеются квалифицированные специалисты, которые реализуют IT­решение быстрее и c меньшими издержками, чем при их самостоятельной разработке. Siemens Digital Industries Software охватывает все три варианта — компания как предлагает готовые системные решения для конкретных задач, так и дает возможность заказчикам разрабатывать самостоятельные решения, строить коллаборативные и инновационные системы на базе платформы Mendix.

Как показывает опыт, применение low­code­платформы позволяет сократить время разработки на порядок и более, при этом ресурсов тратится на 70% меньше. Это достигается главным образом за счет возможности коллаборативной работы и оптимизации использования ресурсов компании. Платформа Mendix обеспечивает совместную эффективную работу специалистов из различных подразделений компании и программистов из департамента информационных технологий, что значительно ускоряет процесс. В отличие от этого при традиционном подходе вначале подразделение выходит с бизнес­идеей, затем разрабатывает и утверждает техническое задание, которое передается непосредственно исполнителям. После этого пишется ПО, выполняется тестирование и, наконец, решение вводится в эксплуатацию. На этот процесс может понадобиться год и более в зависимости от задачи и количества ресурсов. При использовании платформы Mendix создание приложения и его тестирование может занимать от месяца до трех. Это достигается за счет применения на практике популярного сегодня agile­подхода при разработке ПО. Когда приложение можно создать всего за месяц и изменить его всего за несколько минут, предприятие способно быстрее адаптироваться к динамичным условиям ведения бизнеса.

Подход low­code может быть применим в различных отраслях промышленности и практически в любой современной компании, где есть IT­отдел. Безусловно, различные компании находятся на разных этапах «цифровой зрелости», и иногда применение low­code с первого взгляда не очевидно. Но если разобраться в бизнес­процессах предприятия более детально, то Mendix может оказаться полезным для решения задач различных подразделений — от отдела кадров (приложения по поиску, утверждению кандидатов) до отдела административно­хозяйственной деятельности (контроль административных ресурсов, заказов и т.п.).

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