Важливою умовою для цифровізації підприємств є використання технологій, що дозволяють швидко ідентифікувати, аналізувати та автоматизувати якомога більше процесів, не втрачаючи при цьому в якості, безпеці та масштабованості кінцевого застосунку. Однією з таких технологій є Low Code, мета якої – автоматизувати процеси та створення власних застосунків шляхом оптимізації рутинних процесів розробників. При цьому Low Code залишається якісним інструментом для якісних продуктів.

Що таке Low Code

Low Code – це метод розробки програмного забезпечення, у якому рутинні процеси розробників оптимізуються системою, що зменшує час доставки кінцевого продукту, не втрачаючи в якості, безпеці, та маштабованості останнього.

Продукти, що ґрунтуються на технології Low Code, відповідають високим стандартам якості, не програючи продуктам, які було створено у класичний спосіб розробки. Low Code-інструменти можна використовувати для створення ІТ-рішень різних масштабів, як для компаній середнього розміру, так і для великого бізнесу. 

Критерії вибору інструменту

У виборі відповідного інструменту має допомогти категоризація рівнів абстракції. Рівень абстракції — один із способів приховування деталей реалізації певного набору функціональних можливостей. Проєктована система повинна представлятися, як ієрархії рівнів абстракції. У випадку вибору інструменту розробки, я пропоную таку модель відображення рівнів абстракції інструментів Low Code.

  1. Найвищий рівень абстракції (людська мова, масштабні блоки коду)
  2. Інструменти відходять від стандартів найменування функціоналу, що закладений у класичному програмуванні; підвищується рівень абстракції
  3. Low Code оптимізує стандартні процеси розробки, але ми залишаємося в рамках традиційних термінів класичної розробки
  4. Low Code використовується тільки для базових операцій(блокових структур), все інше – класичний код
  5. Рівень класичної розробки, Low Code не використовується

Практика показує, що дотримання третього рівня абстракції є найбільш оптимальним критерієм вибору інструменту цифровізації для більшості організацій. Особливостями та перевагами цього рівня є забезпечення гнучкості та контролю, що дозволяє розробникам оптимізувати стандартні процеси та водночас залишати простір для індивідуальних рішень. При дотримані умовного третього рівня абстракції у виборі інструменту, у подальшому в нас відкривається можливість надавати клієнту функціональні блоки продукту, які ґрунтуються на стандартах класичної розробки, що можуть бути логічно розкладені на класичні блоки функціоналу, при цьому оптимізувати рутинні процеси в розробці програмного забезпечення, не втрачаючи в безпеці, гнучкості застосунку та його можливостях.

Важливо врахувати, щоl універсальної системи розробки, що підходить на всі випадки життя, не існує. Давайте розглянемо найважливіші характеристики, на які треба звертати увагу при виборі інструменту Low Code для Enterprise-розробки:

  • Інструменти із розподіленою архітектурою Front  та Back-End. Як і у класичному програмуванні, мають використовуватися спеціалізовані інструменти, які мають своїх вендорів, що надають і розвивають функціонал свого інструменту та для свого сектору відповідальності.
  • Хостинг рішення за замовчуванням від вендору на публічних хмарах та на класичних scalable системах (Kubernetes як приклад). Це допоможе вам легше перенести продукт на сервер клієнта або розширити його функціонал можливостями хмарних платформ.
  • Незалежність від постачальника з боку інтелектуальної власності продукту,  який розроблюється на наданому вендором інструменті. Ви повинні мати можливість забрати код з інструмента вашого постачальника або вендора, та розмістити його за моделлю селф-хостингу, що має бути вбудованою функцією в інструмент.
  • Використання термінів та формулювань класичних варіантів розробки в інструменті. Використовуючи, але оптимізуючи стандартні процеси розробки, Low Code надає найбільшу користь, тому що якість та документованість кінцевого продукту буде набагато вищою ніж при використанні створених вендором термінів (action, step, time-process тощо).
  • Вбудовані та повні можливості розробки власних компонентів та кастомного коду.

Давайте розглянемо, які аргументи «проти» найчастіше лунають в бік Low Code та спробуємо спростувати їх.

  • Обмежена гнучкість та обмежений функціонал застосунку. Часто проти інструментів Low Code застосовують аргумент, що вони не пристосовані для роботи зі складними спеціалізованими завданнями. Також є аргумент, що системи, побудовані на Low Code платформах, мають недостатню продуктивність через надлишковий код або оптимізовані запити до бази даних. Чи ми плануємо спростовувати цей аргумент?
  • Проблеми з зовнішньою інтеграцією. Часто Low Code бачать як інструмент тільки із так званою black-box інтеграцією, тобто розробник не знає яким чином під’єднується система, але такий варіант інтеграції не є єдиним, що  використовується в інструментах. Треба використовувати ті інструменти, що надають класичні методи під’єднання (REST, SOAP, GraphQL, WebSockets) але оптимізуть рутинні процеси для їх створення, що притаманно класичній розробці.
  • Вартість ліцензії зависока для українського ринку. За словами клієнтів, компанії готові платити у розробці продуктів web/mobile-app: за час розробників, сервіси третіх осіб, які використовуються для функціоналу застосунку, PM/QA витрати. Проте компанії не готові платити за ліцензії інструменту для розробки, зайвий функціонал або той, який неможливо виключити з пакету, та за user-based зміну ціни за ліцензію. Тут важливо знайти той інструмент, який надає тільки потрібний вам функціонал, а не всю екосистему застосунку, тому що саме переплата за надлишок функціоналу (що?), та зміна ціни від кількості користувачів, а не від навантаження на сервер, критично впливає на ціну. І таких інструментів Low Code на ринку існує безліч. Наприклад, WeWeb/XANO/FlutterFlow.
  • Нерозуміння обсягів масштабування. Часто Low Code вендори не пояснюють, на яких технологіях базується їх інструмент. І це грає вирішальну роль в цьому аргументі та в процесі вибору інструменту клієнтом. Треба шукати таких постачальників, які користуються та вільно надають інфраструктуру за стандартами ринку (Kubernetes clusters, Container based архітектура) своїм клієнтам. Наприклад, XANO. 
  • Залежність від постачальника послуг. Існує багато інструментів, які прив’язують кінцевий застосунок до використання тільки на базі Low Code-платформи, що і формує небажання клієнтів бути прив’язаними до вендора, та їх вибір спадає на класичний код, у якому увесь продукт і так розробляється переважно на OpenSource інструментах. Аргумент щодо небажання бути залежним від постачальника послуг легко спростовується, адже існують безліч інструментів, що дають можливість вивантажити код застосунку та інтегруватися із зовнішніми системами для операційних процесів, зокрема Monitoring, User Management, CI/CD тощо. Важливо зазначити, що клієнту надається інтелектуальна власність на код.

Як і будь-яка нова технологія, Low Code має свої переваги та недоліки – перш ніж впроваджувати, варто в них розібратись. Досвід проєктів, які ми реалізували для клієнтів, показує, що інструменти розробки Low Code мають характеристики, які варто взяти на озброєння. За умови доцільного використання Low Code платформи для розробки програмного забезпечення можна уникнути мінусів при цьому, реалізувати переваги.

Стаття підготовлена на основі воркшопу «Low Code для складних проєктів: розбираємо «за» і «проти», який відбувся 19 вересня в Києві, організованому FlowMates