Low-Code: „Niezwykle innowacyjna” technologia, której dostrzeżenie zajęło dwadzieścia lat

Na pewno słyszałeś o low-code, a jeśli nie, wkrótce usłyszysz. W 2017 roku Forbes nazwał tę technologię „niezwykle innowacyjną”, a wiadomość ta została powtórzona w tym roku – nazwano ją „najbardziej innowacyjnym trendem w 2021 roku”.

Rozwój platform niskokodowych również rozrósł się od 2016 r., osiągając szacunkową wartość 10,1 mld USD w 2020 r. i prognozuje się, że firma Forrester osiągnie w ich zakresie wartość 21,2 mld USD w 2022 r. i 65 mld USD w 2027 r.

Ten zapierający dech w piersiach wzrost jest bezpośrednim odzwierciedleniem rzeczywistego wykorzystania platform niskokodowych do tworzenia oprogramowania i aplikacji klasy korporacyjnej – rosnącego trendu, który ma się utrzymywać.

Low-code stało się jednym z najpotężniejszych narzędzi w tworzeniu oprogramowania. Korzystając z interfejsu graficznego, kod można łatwo złożyć w potężne i bezpieczne aplikacje w ułamku czasu, jaki kiedyś był wymagany. Tak jak ludzie mają 90% tego samego DNA co koty, podobnie większość podstawowego kodu jest taka sama w bardzo różnych aplikacjach. Eliminowanie niepotrzebnego, powtarzającego się ręcznego kodowania ma sens. Wykwalifikowany programista jest nadal potrzebny do stworzenia wszelkich personalizowanych elementów oprogramowania, ale platforma niskokodowa pozwala zaoszczędzić wiele „prac u podstaw”.

Eksperci z Sourceful doskonale znają platformy niskokodowe; niektórzy z nich tworzą aplikacje przy użyciu platform niskokodowych już od połowy lat 90 XX wieku. Co zadziwiające, mimo że low-code są używane już od około dwudziestu lat, zyskały one na popularności dopiero od 2016 roku. Skąd więc wziął się low-code i dlaczego jest teraz tak ważny?

Za kaskadą

W latach 80. "kaskadowe" podejście do tworzenia zostało zakwestionowane przez koncepcję szybkiego tworzenia aplikacji (RAD), którą opracował James Martin podczas pracy w IBM.

Uwzględnił on adaptacyjne podejście do tworzenia oprogramowania w oparciu o zrozumienie, że oprogramowanie wymaga zasadniczo innego podejścia w porównaniu ze „statycznymi” projektami programistycznymi. W jego miejsce zalecono i nakreślono bardziej adaptacyjne i dynamiczne podejście. Istniały wady i ograniczenia metody RAD, ale programiści zdali sobie teraz sprawę, że potrzebne są nowe narzędzia i metody. Wszystko mogłyby – i powinno – być łatwiejsze.

Podstawowe koncepcje prowadzące do low-code obejmują rozwój oparty na modelach i rozwój języków programowania czwartej generacji (4GL).

W latach 90. rozwój oparty na modelach doprowadził do zupełnie nowego podejścia w tworzeniu narzędzi programowych – takiego, które dążyło do wyabstrahowania wszystkich procesów, systemów, funkcji i zasobów danych w coś, co można by przedstawić graficznie.

4GL miał kluczowe znaczenie dla rozpoczęcia tego ruchu, ponieważ umożliwiał obsługę bardziej zróżnicowanych zadań i zasobów. Kolejną istotną cechą 4GL był sposób, który uczynił kodowanie bardziej wszechstronnym i dostępnym dla szerszej bazy programistów, ponieważ składało się ono z bardziej angielskiej składni.

Low-code powstał na żyznym gruncie przyjaznego dla użytkownika rozwoju. Firmy takie jak Outsystems i Mendix były jednymi z pierwszych i nadal są liderami rynku w dziedzinie low-code. Jednak rynek lat 90. nie był jeszcze całkowicie gotowy na wszystkie możliwości, jakie mógł zaoferować low-code.

Wchodząc roztropnie w XXI wiek

Około 2010 roku, coraz bardziej przyjmowało się podejście do rozwoju Agile/Scrum. W tamtym czasie, technologia zarządzania procesami biznesowymi (BPM) była „gorącą technologią”, a firmy zaczęły już dostrzegać, jak oprogramowanie może zarządzać coraz bardziej złożonymi systemami i ulepszać je.

Był to czas, gdy „błąd milenijny” został właśnie pokonany. Dział IT był w dużej mierze postrzegany jako wydatek – stały koszt utrzymania. Był to po prostu dział ukryty gdzieś w piwnicy, do którego dzwoniło się tylko wtedy, gdy trzeba było „coś wyłączyć  i ponownie włączyć” lub gdy w drukarce zaciął się papier.

Firmy nie miały po prostu pojęcia jak przydatny może być dział IT, lub jak ważny stanie się on w najbliższej przyszłości w wyprzedzeniu konkurencji.

Podejście Agile/Scrum zaczęło już zasadniczo rozkładać stary system „kaskad” na rzecz bardziej elastycznej i modułowej metodologii, którą można testować na każdym etapie. Firmy zaczęły dostrzegać imponujące wyniki przy użyciu tych metod, a gdy wdrożono technologię niskiego kodu w połączeniu z podejściem Agile, wyniki były niesamowite.

Imponujące synergie

Oczywiście, w tym czasie wiele firm korzystało już z metodologii agile/scrum w swoich projektach deweloperskich, ale synergie osiągnięte z wykorzystaniem low-code były zaskakującą, dodatkową korzyścią.

Używając low-code, każdy sprint mógł dostarczyć znacznie więcej funkcjonalności i pozwolić na szybsze ukończenie. Jednym z głównych efektów ubocznych było zwiększone zaangażowanie interesantów w firmie, których testy i informacje zwrotne były istotną częścią procesu. Szybka zmiana oznaczała, że dyrektorzy i inni decydenci byli skłonni do szybszego testowania i przekazywania opinii, aby nadążyć za rozwojem samego oprogramowania. Zwiększone zaangażowanie zaowocowało również bogatszymi informacjami zwrotnymi, co z kolei generowało lepsze wyniki końcowe.

To poczucie tempa i zauważalnego postępu było ożywcze dla firm przyzwyczajonych do projektów, które wydawały się nigdy nie kończyć, a często dawały zbyt mało i zbyt późno. Chociaż niższe koszty z pewnością osłodziły atrakcyjność low-code, ten ulepszony proces i zwiększone zaangażowanie były wisienką na torcie.

Dojrzewający Internet stał się głównym czynnikiem umożliwiającym nowe, efektywne praktyki biznesowe. Zaczęły pojawiać się możliwości łączenia ze sobą różnych systemów i informacji za pomocą niestandardowych rozwiązań programowych lub pakietów oprogramowania dla przedsiębiorstw.

Jednak poprzeczka dla firm została ustawiona dość wysoko i tylko te z dużą ilością wolnej gotówki (i czasu) były skłonne rozwijać niestandardowe projekty, podczas gdy SME miały trudności ze znalezieniem pakietów oprogramowania, które mogłyby faktycznie dostosować się do ich modelu biznesowego.

Dziesięć razy szybciej

Zanim ustanowiono low-code, tworzenie oprogramowania było kosztownym przedsięwzięciem opierającym  się na podatnym na ataki „podejściu kaskadowym” i ręcznym kodowaniu, które zwykle wymagało 2 do 3 lat, aby powstał program.

Podczas tego procesu, potrzeba było wielu testów. Po wykryciu błędów (a te zawsze występowały), należało przeprowadzać żmudne wyszukiwania, skanując tysiące wierszy kodu w poszukiwaniu brakujących średników lub innych znaków przypadkowo pominiętych w procesie ręcznego kodowania.

Nagle nastąpiła zmiana perspektywy.

Mniej więcej w 2016 r., wszyscy zdawali się mówić o low-code i  jego obietnicy przekształcenia biznesu poprzez inteligentne aplikacje korporacyjne, które drastycznie podniosą wydajność i zmniejszą obciążenie.

Najwcześniej korzystającymi z technologii low-code były firmy z górnej półki średniej klasy. Widziały one potencjalne korzyści i były gotowe przyjąć małe ryzyko (i duże korzyści) wynikające z możliwości zarówno szybkiego rozwoju, jak i niskich kosztów.

W ślad za ich sukcesami, większe firmy zaczęły eksperymentować z wykorzystaniem niskiego kodu do tworzenia oprogramowania o znaczeniu krytycznym – osiągając niesamowite wyniki.

W porównaniu z wieloletnim czasem rozwoju przy użyciu tradycyjnych metod, platformy low-code umożliwiły wykwalifikowanym programistom tworzenie nowego oprogramowania w ciągu zaledwie dni lub tygodni. Wiele firm początkowo było sceptycznie nastawionych uważając, że twierdzenia te są „zbyt piękne, aby mogły być prawdziwe”, ale jak pokazał czas, obietnica taniego, szybkiego rozwoju solidnego i efektywnego oprogramowania klasy korporacyjnej została spełniona.

Według Forrestera, metody low-code są 10 razy szybsze niż tradycyjne.

Aplikacje zbudowane na platformie low-code korzystają z rdzenia NET lub Java. Są z natury elastyczne; zdolne do obsługi wielu procesów w połączeniu z logiką biznesową – wszystko zbudowane na jednej platformie.

Aplikacje opracowane przy użyciu niskiego kodu są na tyle wszechstronne, bypracować również ze starszą infrastrukturą, a szybki rozwój umożliwia proces współpracy, który wykorzystuje informację od użytkowników do tworzenia idealnego narzędzia programowego, które będzie odpowiadać ich potrzebom, a jednocześnie nie będzie tak uciążliwe dla interesantów jakby to miało miejsce w przypadku dłuższego, tradycyjnego procesu rozwoju.

Małe zespoły, duże projekty

Wkrótce historie sukcesu dotyczące low-code były wszechobecne. Małe zespoły z powodzeniem realizowały duże projekty w bardzo krótkim czasie – a różnica w kosztach była oszałamiająca.

W rękach doświadczonego programisty, bezpieczne, wysokiej jakości oprogramowanie klasy korporacyjnej może zostać opracowane i przetestowane w ciągu kilku tygodni lub miesięcy.

Od tego momentu wszystko zaczęło toczyć się lawinowo, a firmy wkrótce zastępowały swoje nieporęczne systemy ERP i CRM w pełni spersonalizowanymi rozwiązaniami na bazie low-code. Te rozwiązania dokładnie odpowiadają ich wymaganiom przy ułamku dotychczas ponoszonych kosztów opracowania. Był to przekonujący argument, którego żadna firma nastawiona na zysk nie mogła zignorować.

Co niesie przyszłość

Low-code ma stać się głównym graczem w branży tworzenia oprogramowania, ale dużo mówi się również o tym, jaką rolę mogą odgrywać platformy bez kodu. Według Forbesa platforma no-code może być 100 razy szybsza niż ręczne kodowanie i może być używana praktycznie przez każdego. Otwiera to wiele bardzo interesujących możliwości, a być może zaciera tradycyjne granice między działami. Mimo że mogą one zwiększyć wydajność wielu powtarzalnych procesów, istnieją uzasadnione obawy dotyczące bezpieczeństwa, gdy programowanie wyrwie się z rąk wykwalifikowanych programistów i zostanie przejęte przez pracowników z działów innych niż techniczne. Sztuka odniesienia sukcesu z tą technologią polega na znalezieniu, które z tych narzędzi może być używane gdzie, w jakim celu i przez kogo.

Czasowa oś rozwoju

1957 Język FORTRAN (tłumaczenie formuł) - opracowany przez IBM. Nadal używany do niektórych celów niszowych, takich jak obliczenia związane z dużą ilością danych.

1959 COBOL - opracowany w oparciu o język FLOW-MATIC stworzony przez Grace Hopper, będący pierwszym językiem komputerowym opartym na języku angielskim. COBOL zawierał programowanie obiektowe ze składnią zbliżoną do języka angielskiego. Po standaryzacji w 1968 i 1997 80% firm działało w języku COBOL.

1964 BASIC -  stworzony przez naukowców z Dartmouth College. Używając składni opartej na języku angielskim, rozwinięto go z czasem tak, aby opierał się na procedurach i obiektach. BASIC był bazą dla wielu pierwszych gier wideo.

1972 C – powstał pierwszy język z rodziny „C”.

1991 Visual BASIC - wydany przez Microsoft, z wykorzystaniem  projektu BASIC. W tym samym roku został wydany Python.

2001 Visual BasicNET  -  wydany przez Microsoft jako dalszy rozwój modelu Visual BASIC, ale z graficznym interfejsem użytkownika (GUI) umożliwiającym przeciąganie i upuszczanie wcześniej przygotowanego kodu.

2001 Low Code -  Outsystems podbija rynek ze swoją platformą low-code. Po powolnym starcie, low-code staje się coraz bardziej popularny, znajdując więcej aplikacji w miarę rozwoju Internetu i powstawania technologii takich jak urządzenia inteligentne.

2016 Wydanie NET Core. Nie tyle sam język, co wspólny wieloplatformowy model, który wykorzystuje infrastrukturę wspólnego języka, aby umożliwić oprogramowaniu działanie na różnych platformach i obsługę wielu języków.