Platformy niskokodowe (low-code) – programowanie nie tylko dla specjalistów?

Artykuł

Platformy niskokodowe (low-code) – programowanie nie tylko dla specjalistów?

Czym są i do czego służą platformy niskokodowe (low-code)?

Blog Architecture Hub | maj 2021

Projektowanie aplikacji za pomocą platform niskokodowych (low-code) opiera się na wykorzystaniu grafów, diagramów czy formuł, często na zasadzie drag-and-drop. Budowanie aplikacji staje się więc możliwe w sposób czysto wizualny, bez konieczności ręcznego pisania kodu. Brzmi świetnie, prawda? Czy w takim razie rynek zmieni się o 180 stopni, a programiści będą zmuszeni się przekwalifikowywać?

Zastanawialiście się kiedyś, jaki jest najtrudniejszy język na świecie? W Internecie krąży popularny mem, według którego język polski jest w ścisłej czołówce. Na pierwszym miejscu ląduje jednak… C++. J Słyszeliście też pewnie, że każdej pracy można nauczyć człowieka w kilka miesięcy (nie będziemy w tym miejscu dyskutować, na ile jest to prawda), ale języka już nie. Tak jak i w przypadku nauki języków naturalnych, nauka języków programowania wymaga czasu. Opanowanie składni, semantyki, czy chociażby zapoznanie się z biblioteką standardową jednego języka programowania w stopniu, który pozwoli na efektywne wykorzystanie umiejętności programowania, jest procesem czasochłonnym. Dodajmy do tego kompletność Turinga jako wymiar wiedzy matematycznej potrzebnej do zrozumienia, w jaki sposób języka programowania używać, a okaże się, że sam zmysł lingwistyczny nie wystarczy, by opanować Javę czy C++.

 

Nie bez powodu więc zawód programisty przez lata postrzegany był jako prestiż dla nielicznych, którzy opanowali wiedzę tajemną komunikacji z maszynami.

 

Wiadomo również, że rynek IT w dalszym ciągu jest nienasycony, i nawet pandemia nie zatrzymała jego rozwoju. Od lat zapotrzebowanie na aplikacje rośnie zdecydowanie szybciej niż możliwość dostarczania ich przez działy IT, tym samym popyt na programistów w dalszym ciągu jest wyższy, niż liczba specjalistów na rynku. Nie jest też tajemnicą, że współpraca pomiędzy działami IT a użytkownikami biznesowymi często wymaga równie dużo wysiłku i zaangażowania, co dostarczenie samego rozwiązania. Tradycyjne podejście do programowania zakłada współpracę pomiędzy jednostkami biznesowymi a IT na poziomie specyfikacji wymagań. Takie podejście rodzi oczywiste ryzyko niedomówień, co w konsekwencji prowadzi do większych nakładów pracy i budżetu oraz do opóźnień w dostarczeniu aplikacji. A co, jeśliby użytkownikom biznesowym dać narzędzie, dzięki któremu będą mogli programować bez znajomości języka programowania? Z odpowiedzią przyszły platformy niskokodowe.

Platformy niskokodowe (low-code) – a cóż to takiego?

Platforma niskokodowa to nic innego jak sposób na umożliwienie zbudowania aplikacji ograniczając konieczność ręcznego pisania kodu do minimum. Projektowanie aplikacji za pomocą platform niskokodowych opiera się na wykorzystaniu grafów, diagramów czy formuł, często na zasadzie drag and drop. Budowanie aplikacji staje się więc możliwe w sposób czysto wizualny, bez konieczności ręcznego pisania kodu. Brzmi świetnie, prawda? Czy w takim razie rynek zmieni się o 180 stopni, a programiści będą zmuszeni się przekwalifikowywać?

Jak to zwykle bywa, sprawa nie jest na tyle prosta i oczywista, jak by się mogło wydawać. Okazuje się bowiem, że platformy niskokodowe rzeczywiście ograniczają konieczność kodowania, jednak zasoby ich bibliotek pozostają ograniczone. Mało skomplikowane moduły owszem, zbudujemy za pomocą wbudowanych funkcji, ale bardziej skomplikowane, autorskie rozwiązania będą zwykle wymagały ręcznego napisania algorytmu, co w platformach niskokodowych z reguły jest możliwe.

Niemniej ważnym aspektem pozostaje odpowiedzialność za jakość dostarczonych rozwiązań wyprodukowanych za pomocą platform niskokodowych.

 

Firmy zadają sobie pytanie, czy użytkownicy biznesowi bez wiedzy i umiejętności z zakresu programowania, rzeczywiście będą w stanie spełnić wymagania nie tylko związane z użytecznością aplikacji, ale również te związane z cyberbezpieczeństwem i zarządzaniem procesami IT.

 

Z tego względu niejednokrotnie pojawia się problem, gdzie powinna leżeć odpowiedzialność za aplikację zbudowaną za pomocą platform niskokodowych przez pracowników innych działów niż IT. Użytkownicy biznesowi nie chcą brać odpowiedzialności za kwestie związane z zapewnieniem bezpieczeństwa, z kolei specjaliści IT zwracają uwagę na konieczność analizy kodu kryjącego się pod dostarczanymi rozwiązaniami, niejednokrotnie kończącą się poprawkami. Z tego względu odpowiedzialność za produkty przygotowane w ramach platform niskokodowych pozostaje rozmyta lub zostaje w rękach działów IT.

Obok odpowiedzialności, siłą rzeczy zmienia się również zakres zadań zarówno deweloperów, jak i użytkowników końcowych aplikacji, w opozycji do tradycyjnego podejścia do wdrażania rozwiązań IT. Zgodnie z metodyką DevOps, klasyczny proces wytwarzania oprogramowania wymaga przejścia cyklu CI/CD (Continuous Integration/Continuous Delivery), który składa się z szeregu trudnych i czasochłonnych etapów, takich jak przegląd kodu źródłowego, testy wydajnościowe, testy penetracyjne etc. Proces ten dodatkowo utrudnia fakt, że programiści mają dowolność wyboru biblioteki, z racji czego wyżej wspomniane testy często kończą się dużą liczbą błędów. Platformy niskokodowe zmniejszają to ryzyko poprzez przeniesienie odpowiedzialności za dużą część testów na stronę dostawcy platformy, na której silniku przeprowadzane są pierwsze etapy CI/CD. Dzięki temu testy po stronie organizacji okazują się być dużo szybsze i prostsze, ponieważ duża część błędów zostaje zidentyfikowana na wcześniejszym etapie. 

Low-code a no-code

Decydując się na wykorzystanie platformy niskokodowej warto zastanowić się nad różnicą pomiędzy platformami low-code, umożliwiającymi pisanie ręcznego kodu, a platformami no-code, które takiej możliwości nie ofertują. Z tego względu, o ile platformy niskokodowe są oferowane głównie pracownikom z pogranicza IT i biznesu, mającym podstawową wiedzę techniczną, o tyle platformy no-code ani nie wymagają takiej wiedzy, ani nawet nie pozwalają użytkownikom na jej wykorzystanie w praktyce. Dlatego też platformy no-code mogą być z powodzeniem wykorzystywane zarówno przez pracowników technicznych jak i biznesowych.

Z drugiej strony platformy no-code oferują znacznie mniej swobody i elastyczności, niż platformy low-code ze względu na różnice obu podejść na poziomie strukturalnym. Platformy niskokodowe są połączone z systemem backendowym lub interfejsem programowania aplikacji (API), w odróżnieniu od platform no-code. W praktyce oznacza to, że dzięki low-code mamy większe możliwości dostosowywania aplikacji do konkretnych przypadków użycia, niż w przypadku platform no-code. Z kolei platformy no-code zapewniają dostęp jedynie do konfigurowalnych, gotowych szablonów, przez co możliwości wprowadzenia autorskich rozwiązań są znacznie ograniczone w porównaniu do platform niskokodowych.

 

  Platforma No-code Platforma Low-code
Użytkownik platformy Każdy może korzystać z platformy, wiedza techniczna nie jest wymagana Wymagana co najmniej podstawowa wiedza programistyczna
Możliwość customizacji Mniej swobody, wykorzystanie jedynie dostępnych szablonów Możliwość wprowadzenia własnych rozwiązań 
Aplikacja docelowa Aplikacje o ustandaryzowanych funkcjonalnościach  Zarówno proste aplikacje o dedykowanej logice, jak również złożone rozwiązania, wymagające autorskich rozwiązań i elastyczności
Kontrola Brak możliwości kontroli kodu aplikacji Większa kontrola programisty dzięki możliwości wglądu do kodu i jego aktualizacji

Na co zwrócić uwagę przy wyborze platformy niskokodowej?

${alt}
Kliknij aby powiększyć

Funkcje platform niskokodowych

 

Minimalny zakres usług, które musi posiadać każda platforma niskokodowa, to wspomniane wyżej wizualne środowisko programistyczne z narzędziami typu drag-and-drop, wbudowane podstawowe komponenty interfejsu użytkownika i powiązanie ze źródłem danych. Warto jednak wziąć pod uwagę szereg kwestii przy wyborze odpowiedniego narzędzia w zależności od przypadku użycia. Oprócz zagadnień związanych z licencjonowaniem i wsparciem dostawcy, warto zwrócić uwagę na takie czynniki, jak:

  • Moduły integracyjne

Większość przedsiębiorstw korzysta z co najmniej kilku systemów w swojej codziennej pracy. Dla zapewnienia ciągłości działania i zmniejszenia nakładów operacyjnych, firmy coraz większą uwagę zwracają na możliwość integracji swoich aplikacji z istniejącymi już w firmie systemami do zarządzania projektami, systemami klas ERP oraz CRM czy serwerami baz danych. Warto zwrócić uwagę na możliwości integracyjne przy wyborze odpowiedniej platformy niskokodowej.

  • Komponenty wbudowane

Wspomniane już wyżej komponenty wbudowane będą miały istotną wpływ na jakość pracy z platformą niskokodową szczególnie w przypadku, w którym pracować na niej będą osoby nietechniczne. Liczba gotowych szablonów, wbudowanych funkcji czy gotowych modułów znacząco podniesie wydajność pracy osób bez znajomości zasad programowania.

  • Wsparcie mikroserwisów

W dobie opozycji do monolitycznego podejścia do architektury aplikacji, ważnym aspektem pozostaje wielozadaniowość i niezależność zespołów tworzących aplikację. Dziś zespoły wdrożeniowe wykorzystują konteneryzację w celu poprawy wydajności pracy nad budową aplikacji. Decydując się na konkretną platformę niskokodową, warto przeanalizować wsparcie usług konteneryzacji i automatyzacji.

  • Możliwości konfiguracyjne

Większość platform niskokodowych pozwala stworzyć szereg schematów przepływu pracy. Tę usługę spotkamy również na platformach no-code, jednak w przypadku platform niskokodowych będziemy mieć większą przestrzeń do konfigurowania znacznie bardziej zaawansowanych, często zautomatyzowanych schematów zarządzania procesami biznesowymi. Rozwiązania te mogą się różnić w zależności od platformy pod względem możliwości konfiguracyjnych, jak również łatwości tworzenia i przejrzystości interfejsu.

Podsumowując, decydując się na wykorzystanie platformy niskokodowej w przedsiębiorstwie należy wziąć pod uwagę szereg czynników, takich jak aplikacje, które będą budowane przy jej pomocy, użytkowników końcowych, możliwości integracyjne, konfiguracyjne czy łatwość korzystania z interfejsu. Należy również pamiętać, że platformy no-code zawsze będą wymagały chociażby minimalnej wiedzy technicznej, a im większa ona będzie, tym większą może zapewnić kontrolę nad docelowym rozwiązaniem. Brak wiedzy technicznej będzie wiązał się z wydłużonym czasem dostarczenia rozwiązania a także mniejszymi możliwościami rozbudowania aplikacji o usługi niestandardowe. Jeżeli planujemy wykorzystywać platformę przez użytkowników nietechnicznych, a aplikacje, których będziemy potrzebować, cechuje niski stopień skomplikowania i powtarzalność modułów, warto rozważyć platformy no-code.

Autorką tekstu jest Paulina Lipska, Ekspert w zespole Strategii i Transformacji IT, Deloitte

Jak możemy pomóc?

W dzisiejszych czasach firmy żyją zmianami. Nowe kanały, nowi klienci, nowe produkty, to wszystko wymaga ciągłego dostosowywania narzędzi IT. Nasz zespół postawił sobie jeden cel – sprawić, żeby nasi klienci nie tylko przeszli przez te zmiany niepoturbowani, ale by jak najlepiej wykorzystywali technologie do realizacji swoich celów biznesowych.

Pomagamy liderom IT oraz ich zespołom w procesie przemian technologicznych:

  • Opracowujemy nowe modele operacyjne, procesy i struktury.
  • Wspieramy w uruchamianiu praktyk architektonicznych i planujemy wspólnie z nimi mapy drogowe rozwoju systemów.
  • Prowadzimy również organizacje poprzez zwinne transformacje, wspierając w uruchomieniu wcześniej wypracowanych koncepcji strategicznych.

Zapraszamy do kontaktu.

Czy ta strona była pomocna?