Вестник цифровой трансформации

Как выбрать платформу low-code
Как выбрать платформу low-code

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


11:33 01.11.2021  |  Мартин Хеллер | 4447 просмотров



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

Современные платформы для разработки без программирования или с написанием минимального объема программного кода (low-code/no-code) позволяют группам разработчиков ПО – и даже людям, не имеющим подготовки в области программирования – создавать, поддерживать и расширять достаточно большой спектр приложений. Среди наиболее распространенных сфер их применения следует отметить создание мобильных приложений, улучшение клиентского опыта (Customer Experience, CX), оптимизацию рабочих процессов, модернизацию унаследованных приложений, автоматическую интеграцию данных и поддержку их визуализации.

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

Затраты и экономия low-code/no-code

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

В качестве иллюстрации приведем следующие расчеты. Разработчики уровня бакалавра в США обходятся в год от 50 тыс. до 120 тыс. долл. (в среднем 72 тыс. долл.), а на создание с нуля простых приложений потребительского класса с написанием программного кода уходит от 6 до 25 человеко-месяцев (в среднем 12), так что разработка такого приложения обходится примерно в 72 тыс. долл. Разработка сложных приложений может стоить более 1 млн долл.

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

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

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

No-code или low-code?

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

Для инструмента категории low-code, кривая обучения может оказаться круче, чем в случае no-code, но барьеры на пути расширения возможностей приложений здесь, как правило, ниже. Вместо покупки очередного компонента достаточно написать несколько строк кода, обращающегося к базовой системе, программе Open Source или API поставщика платформы.

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

Зачастую бывает так, что код, который требуется написать, семантически похож на уже знакомый вам язык. Например, инструмент Microsoft Power Fx базируется на Microsoft Excel, а Xbasic компании Alpha Software вырос из Microsoft Basic. Во многих инструментах low-code фигурирует язык, который либо тесно связан с JavaScript, либо использует реальный движок JavaScript, такой как V8.

Бытует мнение, что на самом деле инструменты no-code представляют собой инструменты low-code, которые пытаются продать бизнес-пользователям. Более реалистичная точка зрения заключается в том, что всем коллективам – как ведущим разработки без программирования, так и пишущим небольшие объемы программного кода – все равно нужны профессиональные разработчики, создающие компоненты, которые бизнес-пользователям не под силу. Сюда относятся схемы баз данных, разработка компонентов, системная архитектура, проектирование пользовательского интерфейса и проверка качества.

Виды инструментов для разработки low-code/no-code

Прежде чем инициировать покупку инструмента для разработки low-code/no-code, следует задать себе несколько вопросов о приложении, которое вы будете предлагать, с тем чтобы понять, имеет ли все это для вас смысл. Предлагаю вам записать ответы на следующие вопросы.

— Вы собираетесь создавать настольное приложение? Для Windows? Для Mac? Для Linux? Для всего перечисленного?

— Собираетесь создавать веб-приложение? Для браузера на настольном ПК? Для планшетов? Для смартфонов? Для всего перечисленного?

— Планируете писать нативный код для мобильных устройств? Использовать гибридную веб-технологию? Использовать нативную среду и веб-контент? Использовать все перечисленное?

— У вас уже есть бюджет? Какой? Есть конкретные сроки? Насколько быстро надо все сделать? Сколько у вас разработчиков? Какими навыками они обладают? Согласуются ли ваш бюджет, сроки и ресурсы с целями создания приложения? Как вы это оценивали?

— Нужна ли вашему приложению база данных? Если да, идет ли речь об уже существующей базе данных или о новой? Будут ли клиенты обновлять базу данных?

— Нужно ли вашему приложению поддерживать связь с клиентами? Нужны ли другие специальные функции?

— Вы создаете приложение для внутреннего пользования? Для заказчиков или для массового рынка? Для бизнес-партнеров? Для всех перечисленных категорий?

— Будут ли меняться или модернизироваться существующие бизнес-процессы? Пытаетесь ли вы оцифровывать существующую бумажную форму?

Как следует из этого перечня вопросов, в мире существует много разных целевых сред, предназначенных для тех или иных приложений. А у инструментов low-code/no-code есть много разных парадигм разработки.

Настольные приложения могут создаваться для Windows, macOS, Linux, а иногда даже DOS. Мобильные – на Android, iOS и разновидностях этих операционных систем для планшетов и часов. К веб-приложениям относится практически все вышеперечисленное, а также дополнительная поддержка браузеров (Chrome, Edge, Safari, Firefox и Opera) и возможность адаптации к различным размерам экранов. Гибридные веб-приложения сочетают в себе свойства нативных приложений и веб-контента.

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

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

Известные платформы разработки low-code/no-code

В последний раз, когда я детально исследовал эту сферу, там было представлено более 400 вендоров. В Gartner своим анализом охватили около 250, пытаясь разбить их на постоянно меняющиеся категории. Многие вендоры и некоторые продукты подпадают под определение сразу нескольких категорий.

Не думаю, что средства управления бизнес-процессами (business process management, BPM) и роботизации бизнес-процессов (robotic process automation, RPA) следует объединять с другими инструментами low-code/no-code. Разница, на мой взгляд, заключается в том, что для инструментов BPM и RPA автоматизация и настройка систем является их основной целью. Обычные же инструменты разработки могут использовать корпоративные системы, но только в качестве средства для достижения другой цели.

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

В качестве иллюстрации я отобрал семь поставщиков систем low-code/no-code перечислив их в алфавитном порядке. Учтите, что включение в этот список не следует трактовать как рекомендацию, а исключение не является приговором.

- Alpha Software. Alpha Anywhere – инструмент полного цикла быстрой разработки low-code, который предназначен для создания разработчиками самой разной квалификации настольных приложений, веб-приложений и гибридных мобильных приложений, ориентированных на базы данных. Alpha TransForm – инструмент low-code/no-code, позволяющий разрабатывать мобильные формы с автономными возможностями и автоматической синхронизацией при возобновлении подключения.

- Appian. Appian предлагает визуальный конструктор no-code и инструменты low-code для создания веб-приложений и мобильных приложений, которые интегрируются с корпоративными данными без программирования. Кроме того, у Appian имеется платформа автоматизации для BPM и RPA.

- Claris. Claris FileMaker – система для разработки настольных, веб- и мобильных приложений категории low-code, включающая собственную базу данных. Она имеет встроенные шаблоны, поддерживает проектирование путем буксировки и интуитивный графический пользовательский интерфейс. Claris Connect – платформа автоматизации, построенная на том же ядре, что и FileMaker.

- Mendix. Mendix Studio – WYSIWYG-среда на основе браузера для разработчиков, которые создают приложения для массового потребителя. Mendix Studio Pro – среда с классическим интерфейсом дл ПК, включающая в себя все возможности, которые нужны для создания приложений, в том числе возможность добавления при необходимости программного кода. Mendix предлагает также платформу автоматизации и систему интеграции данных.

- Microsoft. Microsoft Power Apps – конструктор для Windows 10, требующий написания минимального объема программного кода и поддерживающий шаблоны, перетаскивание компонентов и Excel-подобный язык программирования Power Fx. В Power Apps используется языковая модель, способная генерировать код Power Fx из описаний на естественном языке. Профессиональные разработчики могут расширять возможности Power Apps с помощью Azure Functions и специальных коннекторов. Power Automate – отдельная RPA-платформа c поддержкой документооборота.

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

- Salesforce. Salesforce Lightning – инструмент для создания приложений на Salesforce Platform с возможностью буксировки и написанием небольшого объема программного кода. Lightning App Builder позволяет бизнес-пользователям выбирать модули для проектирования приложений. Lightning Web Components помогает создавать повторно используемые элементы.

Ключевые факторы при выборе платформы low-code/no-code

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

— Подходит ли вам модель оплаты? Для потребительских приложений системы с написанием минимального объема программного кода, требующие оплату лицензии на каждого пользователя, вряд ли можно считать оправданными. Многие поставщики указывают цены на своих сайтах. У других, чтобы узнать их, необходимо связаться с отделом продаж. Стесняться этого не стоит. Поинтересуйтесь ценами и сравните их с той информацией, которая уже имеется у вас о других поставщиках.

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

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

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

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

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

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

Разработка приложений с написанием минимального объема программного кода сулит немалую выгоду. С одной стороны, слишком многие компании настаивают на том, что мобильные приложения должны иметь нативный программный код, после чего с изумлением узнают, что придется потратить 1 млн долл. и год на создание приложения для iOS, а затем еще 500 тыс. долл. и полгода на практически идентичное приложение Android. Имеет смысл сначала изучить альтернативные варианты с точки зрения как сокращения расходов, так и ускорения вывода приложений на рынок.

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

 

Теги: BPM Языки и системы программирования Разработка ПО Цифровая трансформация RPA LC

На ту же тему: