BiznesProgramowaniePREZENTACJA PARTNERA
Low Code pozwala budować skomplikowane aplikacje rozwiązujące złożone problemy biznesowe
Executive ViewPoint
Z Filipem Kobielskim, szefem zespołu Low-code/No-code Hub w dziale Technology Consulting EY Polska, rozmawiamy o istocie i praktycznych aspektach wykorzystania rozwiązań niskokodowych i bezkodowych; potencjalnych scenariuszach użycia technologii Low Code w realiach odpowiedzialnego biznesu; możliwościach użycia takich narzędzi do modernizacji przestarzałych środowisk aplikacyjnych; a także wyzwaniach i dobrych praktykach związanych z wdrażaniem takich koncepcji.
Czym jest Low Code i do jakich zastosowań się nadaje?
Low Code to klasa narzędzi, które przyspieszają możliwość wdrażania aplikacji poprzez wykorzystanie predefiniowanych elementów. Nadal potrzebne jest kodowanie, choć w mniejszej skali niż w przypadku tradycyjnego podejścia do programowania.
Dobrym przykładem platformy Low Code są rozwiązania ServiceNow, Pega i Microsoft PowerApps w części portalowej. Budowanie aplikacji polega na wypełnianiu pewnej matrycy gotowymi elementami i pisaniu kodu odpowiedzialnego za specyficzną logikę czy działanie interfejsu obsługi. Do stworzenia pełnoprawnej aplikacji potrzebne jest uzupełnienie gotowych elementów dostępnych w wybranej platformie niskokodowej własnym kodem aplikacyjnym. Bez tego można zbudować jedynie proste, w praktyce niemal nieprzydatne, rozwiązania oparte wyłącznie na połączeniu elementów standardowo zaszytych w platformie Low Code.
Warto też rozróżnić platformy Low Code przeznaczone dla użytkowników indywidualnych, od tych, zaprojektowanych pod kątem wykorzystania w środowiskach korporacyjnych. Jest to ogromna, często niedoceniana różnica.
Rozwiązania skierowane do zastosowań indywidualnych pozwalają na szybkie tworzenie aplikacji. Nie nadają się jednak do wykorzystania tam, gdzie potrzebne są dodatkowe mechanizmy kontroli czy ochrony danych.
Na takie potrzeby odpowiadają rozwiązania przeznaczone do zastosowań klasy Enterprise. Mają one wbudowane mechanizmy bezpieczeństwa, funkcje zapewniające zgodność z regulacjami i wspierają wiele innych aspektów niezbędnych do tego, aby mówić o produkcyjnym wykorzystaniu aplikacji Low Code w poważnych organizacjach.
Zwykło się postrzegać rozwiązania Low Code jako narzędzia przeznaczone do tworzenia trywialnych funkcjonalnie aplikacji. Rzeczywistość jest jednak inna. Dzisiejsze platformy Low Code nadają się do tworzenia skomplikowanych aplikacji rozwiązujących złożone problemy biznesowe. Mówimy o rozwijających się, ale już dość dojrzałych technologiach, które stanowią pełnoprawną alternatywę dla tradycyjnego sposobu tworzenia aplikacji. Takie rozwiązania faktycznie zapewniają alternatywę dla tradycyjnego procesu wytwarzania aplikacji do zastosowań biznesowych, w tym dla banków czy największych korporacji.
Jak na tym tle wypada koncepcja No Code?
Do grupy No Code zaliczają się narzędzia, które umożliwiają tworzenie aplikacji bez pisania ani jednej linii kodu. W EY mocno przyglądamy się platformie Unqork. Pozwala ona na tworzenie praktycznie dowolnych rozwiązań aplikacyjnych – od interfejsu użytkownika, przez obiegi dokumentów, po dynamiczne modele baz danych dostosowujące tryb działania do różnych scenariuszy użycia. Wszystko to bez potrzeby pisania jakiegokolwiek kodu.
Co jednak ciekawe, architektura tej platformy zakłada, że tworzone przy jej użyciu rozwiązania są de facto plikami .json. Nie ma tam jednak ani grama kodu. Wszystko jest budowane za pomocą narzędzi wbudowanych w platformę Unqork. To oznacza, że mając wszystkie potrzebne funkcjonalności pod ręką, w ramach jednej platformy, można tworzyć rozwiązania ograniczone niemal jedynie własną kreatywnością.
Zwykło się postrzegać rozwiązania Low Code jako narzędzia przeznaczone do tworzenia trywialnych funkcjonalnie aplikacji. Rzeczywistość jest jednak inna. Dzisiejsze platformy Low Code nadają się do tworzenia skomplikowanych aplikacji rozwiązujących złożone problemy biznesowe. Mówimy o rozwijających się, ale już dość dojrzałych technologiach, które stanowią pełnoprawną alternatywę dla tradycyjnego sposobu tworzenia aplikacji.
Dlaczego warto przyjrzeć się takim rozwiązaniom?
Podejście bezkodowe otwiera nowe możliwości rozwoju oprogramowania dopasowanego do potrzeb użytkowników biznesowych. Jest jednak też problematyczne, ponieważ zmienia status quo dla deweloperów, którzy – w naturalny dla siebie sposób – będą skłaniali się ku wykorzystaniu własnego kodu. Mają taką możliwość, ale stoi to w sprzeczności z pryncypiami architektonicznymi środowisk No Code i zazwyczaj wpływa negatywnie na wydajność tworzonego rozwiązania.
Jeśli jednak deweloper nauczy się narzędzia No Code, wyboru potrzebnych funkcjonalności spośród wszystkich dostępnych w danej platformie mechanizmów oraz ich dobrej konfiguracji pod kątem specyfiki tworzonego rozwiązania, to będzie w stanie dużo szybciej budować aplikacje dla użytkowników końcowych.
Jest to prawdziwy Game Changer. Nie musimy zajmować się żadnymi aktualizacjami platformy, bo dba o nią dostawca. Podobnie, nie trzeba aktualizować kodu aplikacji, bo żaden fragment kodu nie został napisany. Nie trzeba również dbać o całkowity koszt użytkowania rozwiązania, bo korzysta z niego w modelu usługowym. Jest to zupełnie inne spojrzenie na proces tworzenia aplikacji.
Czy zatem można powiedzieć, że No Code i Low Code to odrębne ścieżki wywodzące się z tej samej koncepcji, ale skierowane do różnych grup użytkowników?
Myślę, że tak. W EY mam przyjemność przewodzić zespołowi, w skład którego wchodzą zarówno osoby z zapleczem biznesowym – przydatnym do tego, aby dobrze rozumieć istotę problemu, który przychodzi nam rozwiązać – oraz osoby wywodzące się z obszaru technologii, które znają zasady poprawnego tworzenia aplikacji. Low Code czy No Code to jedynie nowe narzędzia, przy użyciu których budujemy aplikacje. Aplikacje, które muszą zostać dobrze zaprojektowane i zintegrowane z resztą infrastruktury, a nade wszystko muszą działać w sposób prawidłowy. Wszystko to jest niezbędne nie tylko w kontekście realizacji celu, jakiemu ma odpowiadać tworzone rozwiązanie, lecz także w odpowiedzi na pewnego rodzaju brak zaufania do takich narzędzi.
Istnieje jednak trzecia grupa użytkowników takich rozwiązań. Mowa o osobach działających na pograniczu kompetencji technologicznych i biznesowych. Działa to idealnie, ponieważ są w stanie połączyć te dwa światy. Rozumieją, co obie strony chcą osiągnąć, a często są to dość sprzeczne potrzeby. Pamiętajmy, że historycznie zawsze istniał pewnego rodzaju konflikt interesów oraz problem na linii komunikacji między IT i biznesem. Tymczasem rozwiązania niskokodowe i bezkodowe dają możliwość scalenia tych światów.
Podejście Low Code i No Code zmienia wiele paradygmatów i przyspiesza budowanie aplikacji. Nagle okazuje się, że rezultaty możemy zobaczyć po tygodniach czy miesiącach, a nie po latach. Oczywiście nie znaczy to, że aplikacje niskokodowe mogą być rozwijane, a następnie funkcjonować bez nadzoru ze strony zespołów IT. Ludzie, którzy wiedzą, jak należy tworzyć i projektować aplikacje są niezbędni. Skala ich zaangażowania może być jednak zmniejszona.
Co sprawia, że firmy i instytucje z całego świata otwierają się na koncepcje niskokodowe?
Nie da się ukryć, że mamy dziś na świecie problem z dostępnością kompetencji w zakresie rozwoju oprogramowania oraz kosztami takich kompetencji. Coraz mniej jest organizacji skłonnych ponosić wysokie koszty tradycyjnego dewelopmentu. Nie widzą w tym wartości biznesowej, tym bardziej wiedząc, że dostępne są dziś alternatywne metody rozwoju oprogramowania. W okresie pandemicznym w pewnym sensie przelała się czara goryczy na rynku.
Podejście Low Code i No Code zmienia wiele paradygmatów i przyspiesza budowanie aplikacji. Nagle okazuje się, że rezultaty możemy zobaczyć po tygodniach czy miesiącach, a nie po latach. Oczywiście nie znaczy to, że aplikacje niskokodowe mogą być rozwijane, a następnie funkcjonować bez nadzoru ze strony zespołów IT. Ludzie, którzy wiedzą, jak należy tworzyć i projektować aplikacje są niezbędni. Skala ich zaangażowania może być jednak zmniejszona. Część typowych aktywności związanych z tworzeniem oprogramowania może być realizowana przez użytkowników biznesowych, którzy w sposób wizualny są w stanie łączyć pewne gotowe elementy i stworzyć przynajmniej pewien szkic działania aplikacji.
Jest to o tyle ważne, że niemal każda firma ma obecnie problem z długim czasem oczekiwania na realizację projektów prowadzonych przez wewnętrzne zespoły deweloperskie. Jest to zazwyczaj spowodowane bardzo dużym zapotrzebowaniem ze strony biznesu oraz niewystarczającą dostępnością ludzi. Na projekty aplikacyjnie trzeba czekać miesiącami, a czasem nawet latami. A taka perspektywa już dawno nie jest akceptowalna…
Do tej pory nie było alternatywy. Za sprawą podejścia niskokodowego możemy zmniejszyć inercję organizacji nadążającej za zmieniającymi się realiami. Kluczowe znaczenie ma dziś też, naturalna dla podejścia niskokodowego, zwinność i łatwość w dostosowywaniu rozwiązań do potrzeb. Pozwala to na ograniczenie ryzyka związanego z wejściem w ślepą uliczkę rozwoju aplikacji. Nawet jeśli potrzebne będzie wyrzucenie części funkcjonalności, bo w trakcie projektu zmienią się założenia czy realia biznesowe, to można łatwo zmodernizować tylko potrzebny fragment aplikacji zamiast rezygnować z efektów wieloletniego projektu.
Barierą na drodze do wykorzystania potencjału Low Code jest też właściwe zarządzanie zmianą. Fakt, że możemy realizować projekty szybciej i więcej osób ma możliwość zaangażowania w tworzenie aplikacji sprawia, że musimy lepiej zarządzać procesem wytwórczym. Rozwiązania budowane przy użyciu koncepcji Low Code funkcjonują przecież wspólnie z innymi rozwiązaniami i w jednym środowisku aplikacyjnym. Low Code to jedynie inne podejście do tworzenia aplikacji. Nie może być zatem osobnym bytem w środowisku IT.
Jakie są główne wyzwania towarzyszące przechodzeniu na Low Code oraz No Code?
Myślę, że główną barierą jest brak wiedzy na temat rozwiązań typu Low Code/No Code, ich rodzajów oraz potencjalnych scenariuszy użycia. W wielu organizacjach ciągle nie ma świadomości, że takie technologie istnieją. W niektórych firmach Low Code jest postrzegany jako synonim dla narzędzi klasy RPA, które są tylko jednym z obszarów zastosowania technologii niskokodowych.
Istnieją dziś przecież rozwiązania Low Code umożliwiające tworzenie integracji, stron internetowych czy platform e-commerce, ale są także środowiska umożliwiające budowanie kompleksowych aplikacji biznesowych. Jako EY specjalizujemy się właśnie w tej ostatniej grupie narzędzi.
Kolejnym wyzwaniem jest zbudowanie dobrego zespołu, który będzie pracował na bazie technologii Low Code. Powodzenie tych pierwszych, pionierskich inicjatyw niskokodowych ma bowiem ogromne znaczenie dla zmiany postrzegania tego paradygmatu w całych organizacjach.
Barierą na drodze do wykorzystania potencjału Low Code jest też właściwe zarządzanie zmianą. Fakt, że możemy realizować projekty szybciej i więcej osób ma możliwość zaangażowania w tworzenie aplikacji sprawia, że musimy lepiej zarządzać procesem wytwórczym. Rozwiązania budowane przy użyciu koncepcji Low Code funkcjonują przecież wspólnie z innymi rozwiązaniami i w jednym środowisku aplikacyjnym. Low Code to jedynie inne podejście do tworzenia aplikacji. Nie może być zatem osobnym bytem w środowisku IT.
Jak zatem zmienia się rola zespołów IT w obliczu wdrażania Low Code?
Bez dwóch zdań zaangażowanie zespołu IT w kontekście wdrażania i obsługi aplikacji niskokodowych jest niezbędne. Musimy mieć ludzi, którzy wiedzą, jak się tworzy aplikacje, aby w modularny sposób i z duchem nowego narzędzia zbudować rozwiązanie działające sprawnie – także w danym środowisku – i w sposób rzeczywiście odpowiadający potrzebom.
Możemy jednak oddać część zadań związanych z projektowaniem aplikacji użytkownikom biznesowym, a tym samym uwolnić trochę mocy zespołu IT. Obecnie zdecydowana większość, bo 80-90% nakładów pracy koniecznych do stworzenia nowej lub rozbudowania istniejącej aplikacji dla biznesu leży po stronie zespołów IT. Rola biznesu sprowadza się dziś głównie do nakreślenia pewnej wizji oczekiwanego rozwiązania i oceny prototypów.
W reżimie niskokodowym możemy wydzielić zaangażowanie zespołów IT do ok. 30-40% całościowej pracochłonności związanej z budową aplikacji. Kolejne 30-40% nakładów pracy znajduje się po stronie wspomnianych już zespołów interdyscyplinarnych łączących kompetencje techniczne i biznesowe. Reszta odpowiedzialności za stworzenie aplikacji w środowiskach Low Code leży już stricte po stronie biznesu. Na ten obszar składa się np. zaprojektowanie warstwy procesowo-użytkowej.
W jakich obszarach Low Code szczególnie dobrze się sprawdza?
Odpowiem na bazie doświadczeń, które w ciągu ostatnich kilkunastu miesięcy zbudowaliśmy na własne potrzeby i w ramach projektów, które realizowaliśmy dla naszych klientów. Początkowo skupiliśmy się głównie na tworzeniu aplikacji, w których można łatwo zarządzać interfejsem użytkownika. Przykładowo, dla klientów z sektora ubezpieczeniowego zbudowaliśmy narzędzia ułatwiające brokerom przekazywanie zapytań polisowych do underwriterów odpowiedzialnych za analizę ryzyka. Przygotowaliśmy więc niezbędny workflow, a także warstwę użytkownika oraz integrację z systemami ubezpieczeniowymi. Mamy zatem dynamiczny i atrakcyjny dla użytkowników aplikacji interfejs, łatwy do manipulacji, ale działający na bazie integracji ze starszymi technologicznie systemami.
Szeroki wachlarz możliwości platform Low Code/No Code oraz ich stosunkowo łatwa integracja z systemami legacy sprawia, że możemy również rozważyć użycie tych narzędzi do wytworzenia nowej, zwinnej warstwy operacyjnej w organizacji. Przy takim podejściu możemy zwiększyć możliwości adaptacji do zmiennych warunków biznesowych, zmienić funkcje istniejących w firmie rozwiązań dziedzinowych, budując swojego rodzaju „bazy danych na sterydach”, oraz zmniejszyć wydatki związane z utrzymywaniem czy też modernizacją dedykowanych, standardowych systemów.
Ciekawe jest również rozwiązanie, które zbudowaliśmy we współpracy z zespołem prawnym z kancelarii EY Law. Nasze rozwiązanie, na podstawie udzielonych przez użytkownika odpowiedzi wskazuje obszary niezgodności z regulacjami, ryzyka związane z niedostosowaniem do konkretnych przepisów, a także podpowiada, jakie działania należy podjąć, aby te luki zniwelować. Co ważne, to narzędzie, gotowy produkt dostępny dla klientów, zbudowaliśmy w ciągu zaledwie kilku miesięcy. Jest to świetny przykład na to, jak zespół techniczny może połączyć siły z zespołem biznesowym, by szybko i zwinnie zaprojektować rozwiązanie dla użytkowników końcowych.
Kolejnym obszarem użycia Low Code są punktowe projekty dotyczące typowo niedoinwestowanych i zaniedbanych procesów, również z obszaru IT. Przykładem jest zarządzanie podatnościami. Jest to proces, który uwzględnia wiele źródeł informacji, interesów osób zaangażowanych w proces i musi być przeprowadzony bardzo szybko.
Staramy się zatem iść w kierunku nietypowych obszarów zastosowania środowisk niskokodowych, tak aby wykorzystać pełnię ich możliwości właśnie w kontekście integracji odmiennych obszarów biznesowych, a także zwinności i szybkości działania. Możemy więc np. budować całościowe aplikacje, ale też proste narzędzia wspierające procesy, które obecnie są realizowane na bazie arkuszy kalkulacyjnych czy poprzez wymianę korespondencji e-mail. Jednocześnie, do podstawowej funkcjonalności możemy łatwo dodawać zarządzanie wyjątkami i komunikacją, raportowanie, a także logikę niezbędną m.in. w kontekście czyszczenia danych. To wszystko jesteśmy w stanie zbudować przy użyciu Low Code/No Code.
Czy takie podejście dobrze sprawdza się na potrzeby unowocześnienia i uzupełnienia możliwości przestarzałych, ale ciągle niezbędnych systemów dziedzinowych?
Jak najbardziej. Modernizacja systemów typu legacy to obszar, w którym widać naprawdę ogromny potencjał podejścia niskokodowego i bezkodowego. Możemy stosunkowo szybko zbudować rozwiązanie wpasowujące się w istniejące środowisko i dostarczające potrzebną funkcjonalność na bazie istniejących już, być może przestarzałych, ale nadal działających systemów. Low Code, podobnie jak No Code, bardzo dobrze integruje się z innymi rozwiązaniami i usługami, także typu legacy.
Proszę pamiętać, że firma przymierzająca się do unowocześnienia przestarzałego technologicznie systemu, który nadal ma kluczowe znaczenie dla prowadzonej działalności, staje najczęściej przed decyzją o wydatkowaniu znaczących środków, a jednocześnie zgodą na utratę części kastomizacji czy własnych procesów.
Alternatywnie, jeśli chcemy zmienić lub udoskonalić proces biznesowy, aby lepiej odpowiadał potrzebom dzisiejszych czasów, możemy wykorzystać narzędzia niskokodowe do stworzenia dodatkowej warstwy operacyjnej. Nie mówimy więc o migracji systemu legacy do rozwiązania Low Code, czy No Code, tylko o dalszym wykorzystaniu poczynionych kiedyś inwestycji w istniejące rozwiązanie oraz zmianie sposobu jego używania.
Rezygnujemy zatem z używania warstwy operacyjnej istniejących starszych systemów kluczowych, która zapewne nie do końca odpowiada aktualnym potrzebom, pozostawiając w nich całą warstwę przetwarzania danych i przenosząc operacje do nowego, dynamicznego środowiska zbudowanego na podstawie koncepcji Low Code/No Code. Operacyjnie warstwa ta może być lepiej dopasowana do dzisiejszych realiów i potrzeb biznesu, działać sprawniej i zapewniać użytkownikom lepsze doświadczenia, ale faktycznie bazować na sprawdzonym zapleczu.
Na jakim etapie drogi klientów w kierunku Low Code i No Code może pomóc zespół EY?
Możemy pomóc na dowolnym etapie. Globalne doświadczenie pozwala nam realizować każdy projekt – od zapewnienia inspiracji i podpowiedzi, dlaczego warto zainteresować się podejściem Low Code/No Code, przez wskazanie problemów biznesowych, dla których tę koncepcję warto zastosować oraz zaprojektowanie, konfigurację i wdrożenie aplikacji, po zarządzanie nią w dalszym etapie oraz przeszkolenie personelu klientów, aby mogli samodzielnie takie rozwiązania budować. Na koniec dnia to zaangażowanie użytkowników decyduje o powodzeniu tego rodzaju projektów. Takie doświadczenia mamy także w Polsce.
Ważne jest również tłumaczenie i obalanie pewnych mitów. Punktem wyjścia nie jest jedynie zoptymalizowanie procesu, ale też szybkie wprowadzenie nowego rozwiązania, uruchomienie nowych możliwości biznesowych. Low Code i No Code świetnie wspierają innowacje biznesowe, a jednocześnie pomagają w zaangażowaniu szerszej grupy pracowników w inicjatywy rozwojowe.