Platformy niskokodowe – przyszłość tworzenia oprogramowania

Computerworld

Rozmawiamy z Jackiem Michalikiem, Product Managerem platformy nAxiom w firmie LLCD, na temat przyszłości programowania aplikacji biznesowych, trendów dotyczących tworzenia oprogramowania w firmach oraz implementacji platform low-code.

Jakie jest miejsce platform klasy low-code w przyszłości rozwoju narzędzi programowania? Czy platformy te są w stanie rzeczywiście zagrozić klasycznym metodom tworzenia aplikacji biznesowych? A może je po prostu uzupełniają?

Jacek Michalik: Jesteśmy przekonani, że rozwiązania low-code są przyszłością branży aplikacji biznesowych. Śledząc rozwój platform IT na przestrzeni lat, widać jaki gigantyczny przeskok wykonano, jeśli chodzi o łatwość tworzenia systemów informatycznych. Z branży, początkowo całkowicie hermetycznej, przeznaczonej dla wybitnych naukowców, przeszliśmy do „normalnej” specjalizacji pozwalającej pisać programy po kilkuletnich studiach. Koncepcja platform low-code to kolejny pomysł na jeszcze bardziej radykalne uproszczenie tego procesu. To już nie programiści tworzą aplikacje, ale ich przyszli użytkownicy wspomagani czasem przez analityków biznesowych.

Nie traktowałbym jednak procesu upowszechniania się platform low-code jako zagrożenia, lecz raczej jako ratunek dla współczesnego świata, w którym popyt na rozwiązania IT wielokrotnie przekracza możliwości jego zaspokojenia klasycznymi metodami programowania. Poza tym nadal wiele systemów budowanych będzie „starymi” metodami.

W jakiego typu wdrożeniach platformy low-code najlepiej się sprawdzają? Gdzie rzeczywiście pokazują swoją przewagę nad „konkurencją”?

Platformy niskokodowe – przyszłość tworzenia oprogramowania

Łatwiej powiedzieć, gdzie platformy low-code na pewno się nie sprawdzą. Nie stworzymy nimi kolejnego Facebooka, wyszukiwarki Google czy nowoczesnej gry, klasy AAA, ale gdy przed nami stoi problem przygotowania aplikacji biznesowej – nieważne czy o małej, średniej czy o dużej złożoności – to dziś naturalnym wyborem jest już praktycznie wyłącznie stworzenie jej przy wykorzystaniu narzędzi niskokodowych. Nie znam zespołu deweloperów, który podjąłby się przygotowania i wdrożenia aplikacji wspierającej sprzedaż w średniej lub dużej firmie czy czynności back-office’owe w czasie 2-3 miesięcy. Samo przygotowanie podstawowych mechanizmów, takich jak: zarządzanie użytkownikami, logowanie, mechanika raportów, uprawnień, audyt itp. zajmie kilka razy więcej czasu. A to dopiero podstawy niedające jeszcze żadnej wartości biznesowej. Realny czas budowy systemu z wykorzystaniem uniwersalnego środowiska typu Java czy Net to okres od szczęściu miesięcy do dwóch lat, z medianą raczej wokół tej górnej granicy.

Platformy low-code już na starcie projektu dają więcej możliwości niż typowo budowane rozwiązania będą w stanie kiedykolwiek dostarczyć – a to dopiero początek. Pomysły materializują się już w trakcie ich wymyślania: kliknięciami projektujemy listę, formatkę, raporty, procesy, zasady uprawnień i … zwyczajnie, przekazujemy to do praktycznych testów użytkownikowi, który od razu może korzystać z tej części przygotowanego systemu. Co więcej, kolejne zmiany mogą być dostarczane w podobnym tempie. I to ciągle dopiero początek możliwości funkcjonalnych platform low-code.

W jaki sposób w praktyce wygląda integracja aplikacji biznesowej powstającej dzięki platformie low-code z systemami IT działającymi u klienta?

Integracja to sedno współczesnych systemów IT. Obecnie nie ma już żadnej aplikacji, która nie byłaby zintegrowana z co najmniej jednym zewnętrznym systemem. Platformy low-code wspierają to na dwa sposoby. Po pierwsze, w zestawie z platformą niskokodową dostarczane są predefiniowane mechanizmy integracji do wielu systemów. Potrzebujemy wysłać lub odebrać e-mail? Po prostu to robimy! Klikając, wskazujemy co, kiedy i do kogo chcemy wysłać jako wiadomość e-mail. Podobnie klikając, definiujemy, co chcemy zrobić z otrzymaną pocztą. Dodać jako załącznik do zamówienia? Odczytać dane z otrzymanej mailem faktury w formacie PDF? Wszystkie takie zadania rozwiązujemy klikając, wystarczy tylko wiedzieć, do czego chcemy użyć danego narzędzia w budowanej aplikacji. Email, czyli integracje z serwerami pocztowymi, to oczywiście tylko jeden z przykładów predefiniowanych rozwiązań integracyjnych. Lista jest długa i trudno ją nawet całą wymienić: pluginy do systemów księgowych, usługi katalogowe ActiveDirectory do pobierania listy użytkowników i pracowników, usługi platformy ePUAP, podpisy elektroniczne, system obsługi płatności, MS Outlook, pakiet MS Ofiice …

A gdy zabraknie nam „gotowca”, zawsze brakującą lukę możemy uzupełnić sami, wyklikując nowy interfejs. Choć tutaj nie ma już „ścieżki na skróty” i osoby nie-techniczne będą jednak musiały zapoznać się z podstawowymi zagadnieniami związanymi np. z obsługą interfejsów REST czy WebService.

Jaki był najtrudniejszy projekt, jaki Państwo zrealizowali za pomocą platformy nAxiom, co było największą przeszkodą przy jego realizacji i jak udało się Państwu pokonać trudności?

Oczywiście, jak w większości projektów IT, trudnością było zdobycie wiedzy CO i JAK aplikacja ma robić, ale nawet to w wypadku platform low-code jest z reguły dużo prostsze, bo klient praktycznie natychmiast widzi w działaniu fragment aplikacji, o którego funkcjonalnościach rozmawia z analitykami bądź konsultantami.

Jeśli natomiast przez trudność rozumiemy konieczność zatrudniania podczas budowy aplikacji programistów, czy informatyków to mieliśmy tylko „łatwe” aplikacje, które przygotował zespół konsultantów przeszkolonych z obsługi naszego systemu. Choć wsparcie deweloperów było często niezbędne do tego, aby przeprowadzić modernizację jakiegoś posiadanego przez klienta systemu.

Czy rzeczywiście w pracach deweloperskich, w których wykorzystuje się platformy low-code, mogą uczestniczyć przyszli użytkownicy aplikacji i specjaliści od implementowanych procesów biznesowych, którzy są np. analitykami czy zwykłymi pracownikami, a nie programistami? Jaka może być ich rola w projekcie i jak wygląda w praktyce współpraca takich osób z zespołem programistów low-code?

Platformy niskokodowe – przyszłość tworzenia oprogramowania

Platformy low-code silnie upraszczają ścieżkę komunikacji. Klasyczna ścieżka: użytkownik – analityk – programista – tester – wdrożeniowiec może być w większości etapów ograniczona do ścieżki użytkownik – konsultant definiujący na żywo funkcjonalności platformy. Efekty procesu wytwórczego wszyscy uczestnicy mogą zobaczyć natychmiast i tak jest to najczęściej realizowane. Jeśli efekty analizy z klientem wymagają typowych operacji typu: utwórz formatkę, dodaj pole, zasil pole słownikiem, to tak budowany interfejs wymaga bardzo ograniczonych testów. W przeciwieństwie do klasycznego programowania, gdzie np. aby dodać na formatce nowe pole ze słownikiem, trzeba stworzyć setki linii kodu, skorygować instalator, konwertery modelu danych itp., to w wypadku platform low-code za tę mechanikę odpowiada platforma. Testy mogą być natomiast ograniczone do obszaru weryfikacji biznesowej.

Przejdźmy może teraz do spraw związanych z bezpieczeństwem. Czy platforma low-code jest bezpieczna? Jak w praktyce wygląda implementacja procedur bezpieczeństwa w projekcie wykorzystującym platformę niskokodową?

Bezpieczeństwo aplikacji jest zagadnieniem wielopoziomowym, obejmuje: bezpieczeństwo prawne, wydajnościowe, podatności na włamania, stabilności architektury itp. I tu ponownie widzimy przewagę platform low-code nad uniwersalnymi środowiskami deweloperskimi.

Platforma low-code dostarcza predefiniowanych rozwiązań wspierających bezpieczeństwo w obszarze prawnym, np. narzędzia do obsługi wymogów RODO, szyfrowania danych, podpisów kwalifikowanych i ich weryfikacji. Bezpieczeństwo w zakresie wydajności aplikacji gwarantuje m.in. skalowalność platformy, wbudowane narzędzia do monitorowania obciążenia systemu i automatycznej optymalizacji jego wydajności. Regularnie wykonywane testy bezpieczeństwa platformy pozwalają być „zawsze na czasie” w rozwiązywaniu problemów podatności na włamania i nowe zagrożenia. Podkreślmy, że musi to być proces stały. Dobrze zaprojektowana architektura platformy gwarantuje korzystanie z najbezpieczniejszych rozwiązań w zakresie autoryzacji użytkowników, centralnego zarządzania rolami biznesowymi i bazującymi na nich regułach bezpieczeństwa czy wydajnych i bezpiecznych modeli danych. Oczywiście zakres i sposób wykorzystanie poszczególnych elementów jest zawsze dostosowany do specyfiki aplikacji, wymaganych poziomów zabezpieczeń adekwatnymi do oczekiwań biznesu.

Jak widzą państwo przyszłość platform low-code? W jaką stronę będą one ewoluować? Czy można się spodziewać szerszej implementacji rozwiązań chmurowych, np. platforma low-code cloud native oraz algorytmów sztucznej inteligencji (SI), w tym uczenia maszynowego, co w jeszcze większym stopniu może skrócić czas przygotowywania aplikacji biznesowych?

Rozwiązania chmurowe to nie przyszłość, to teraźniejszość, to kolejny krok do skrócenia czasu wdrożenia i obniżenia całościowych kosztów utrzymania systemu. A jaka jest przyszłość? Jak każda dojrzała technologia także i ta będzie ewoluować. Niewątpliwie powstawać będą specjalizowane platformy low-code dla poszczególnych domen biznesowych lub technologicznych. Moim zdaniem, to co czeka platformy low-code, to szeroko pojęta automatyzacja, w tym automatyzacja wspomagana mechanizmami sztucznej inteligencji. Już dziś wiemy, że robotyzacja procesów jest trendem, może jeszcze nie wiodącym, ale takim, którego nie da się powstrzymać. Platformy low-code mogą być tego największym beneficjentem, dzięki temu, że budowane za ich pomocą aplikacje bazują na silnikach procesowych (WorkflowEngine), to wiadomo, co i jak działa w organizacji. I mając teraz odpowiednie narzędzia, można wspierać robotyzację tych procesów. Za sprawą zgromadzonych historycznych danych, procesy robotyzacji mogą być wspomagane uczeniem maszynowym. I ponownie, dodatkowym atutem platform low-code, będzie tu łatwość ich użycia i brak wymogu posiadania specjalistycznej wiedzy z zakresu IT, sztucznej inteligencji, czy robotyki przez osoby budujące firmową aplikację biznesową. Sądzę, że już niedługo będziemy budować nowe aplikacje nie tyle dla użytkowników-ludzi, ile dla użytkowników-robotów.

Dziękuję za rozmowę.


Jacek Michalik

Product Manager w LLCD Sp. z o.o.

Absolwent Uniwersytetu Jagiellońskiego w Krakowie, na którym ukończył studia magisterskie z Informatyki.

Od 20 lat zajmuje się zarządzaniem projektami z branży IT, a także rozwijaniem systemów informatycznych. Z powodzeniem zbudował i wdrożył wiele systemów dla sektora finansowego, administracji publicznej i przemysłu. W przeszłości związany m.in. z Asseco Poland i SoftBank S.A.

W listopadzie 2020 roku dołączył do zespołu spółki LLCD jako Product Manager, gdzie zajmuje się przede wszystkim budowaniem strategii rozwoju. Zarządza backlogiem prac zespołu deweloperskiego, definiuje reguły wydawania kolejnych wersji platformy, a także odpowiada za kontakt z Klientami.

Prywatnie interesuje się wyprawami rowerowymi. Jest przewodnikiem górskim.