Praca w low code nie wymaga rozbudowanej wiedzy technicznej – wystarczy intuicja. Wywiad z Adamem Kierzkowskim
Adam Kierzkowski, lider teamu low code w Pretius uważa, że miał wielkie szczęście trafiając na Oracle APEX na początku kariery w IT. Dlatego stworzył kurs skierowany do wszystkich, którzy także chcieliby wejść do świata low code developmentu. Jakie zalety APEX-a szczególnie przypadły mu do gustu? Przeczytajcie.
Spis treści
Cześć! Na początek opowiedz, proszę, jak zostałeś programistą. Co skierowało Cię na tę drogę i czym zajmowałeś się wcześniej?
To chyba zależy od tego, jak rozumiemy bycie programistą. Pierwszy raz z programowaniem zetknąłem się w gimnazjum. Mogłem mieć wtedy dwanaście lub trzynaście lat i prawie cały czas wolny spędzałem, grając w gry komputerowe. Pewnego dnia tata zapytał mnie, czy słyszałem o programowaniu i czy nie chciałbym spróbować. W Internecie znalazłem kurs Turbo Pascala, z którego dowiedziałem się, co to jest kompilator oraz jak napisać prosty program.
Z lektury kolejnych rozdziałów kursu dowiadywałem się, jak sprawić, żeby komputer wykonywał moje instrukcje według zadanych warunków lub w pętlach. Przychodziło mi to bardzo naturalnie i można powiedzieć, że w pewnym sensie już wtedy zostałem programistą.
Ale wówczas na pewno tak nie myślałem. Co prawda w liceum kontynuowałem hobbystyczne projekty i planowałem studia w tym kierunku, ale po maturze ostatecznie wylądowałem na Automatyce i Robotyce, która – wbrew powszechnej opinii – od programowania leży dosyć daleko.
Skończyłem studia i przez jakiś czas pracowałem „w zawodzie”, pomagając w projektowaniu zrobotyzowanych stacji przemysłowych. Sęk w tym, że to nie dawało mi aż takiej satysfakcji, jak programowanie, nie czułem „tego czegoś”. Ponieważ nie miałem żadnych zobowiązań i mogłem sobie na to pozwolić, podjąłem ryzyko i zdecydowałem się zmienić branżę.
Jak na tej drodze trafiłeś na podejście low code? Dlaczego zwróciło Twoją uwagę?
Zmiana ścieżki zawodowej zawsze jest pewnym wyzwaniem. Możecie pomyśleć, że było mi dużo prościej, bo miałem pewne podstawy z przeszłości – ale to nieprawda. Nie znałem zupełnie realiów branży IT i nie wyobrażałem sobie, w jaki sposób tych kilka szkolnych programów miałoby mi pomóc w niesieniu realnej wartości dla potencjalnego pracodawcy. Musiałem wybrać bardziej współczesną technologię i zacząć się jej uczyć od zera. I początkowo wcale nie był to low code.
Jestem samoukiem i nie planowałem korzystać z żadnych kursów, zresztą nie miałem na nie pieniędzy. Zależało mi więc na tym, aby technologia, którą wybiorę, była popularna. Zdecydowanie zwiększa to dostępność darmowych materiałów do nauki oraz potencjalnie – choć na pewno nie jest to regułą – liczbę ofert pracy. Zacząłem więc od Javy, a do low-code’u, o którym nikt wtedy nie mówił, doprowadził mnie zbieg szczęśliwych okoliczności.
Szybko zdałem sobie sprawę, że do realizacji projektu, który sobie wymyśliłem, będę potrzebował bazy danych. Żeby oszczędzić sobie trudu szukania, zwróciłem się z prośbą o parę porad do przyjaciela, który z bazami pracował. Dostałem od niego wskazówki dotyczące czego oraz w jakiej kolejności się nauczyć.
Widząc, że idzie mi całkiem sprawnie, zaproponował, że pokaże mi APEX-a, czyli platformę low code’ową od Oracle. W firmie, w której pracował poszukiwano nowych developerów, więc istniała szansa, że po ogarnięciu podstaw zostanę przyjęty. Kolidowało to z moimi planami nauki Javy, którą dopiero zacząłem, ale koło takiej okazji nie przechodzi się obojętnie. Wkrótce pracowaliśmy już razem.
Można więc powiedzieć, że to szczęście spowodowało, że trafiłem akurat na APEX-a. Myślę jednak, że dziś nie byłbym już zdany na los. APEX oraz cała gałąź low code znacznie ewoluowała i zyskała na popularności. Dowodzą tego nie tylko badania firm takich jak Gartner, ale również sam fakt, że powstaje ten wywiad.
Jakie zalety low code szczególnie przypadły Ci do gustu?
Myślę, że te same, które zapewne rzuciły się w oczy czytelnikom. Niski próg wejścia oraz krótki czas, po jakim byłem w stanie zacząć realizacje projektów dla klienta. Aby tworzyć aplikacje w paradygmacie low code nie potrzeba rozbudowanej wiedzy technicznej. Wystarczy intuicja albo, jak mówią niektórzy, pewnego rodzaju dryg. Low code opiera się przede wszystkim na graficznym interfejsie dla developerów. Sam w sobie jest aplikacją służącą do tworzenia innych rozwiązań software’owych. Dzięki temu, nie znając żadnego języka, możemy budować strony z gotowych komponentów.
Te cechy sprawiają, że APEX jest bardzo atrakcyjny dla początkujących. Jeśli porównamy Javę do APEX-a, to z jednej strony mamy konieczność pisania setek linii kodu, a z drugiej składanie aplikacji z klocków, które można niemal dowolnie konfigurować. W pierwszym przypadku ciężko jest wyobrazić sobie, kiedy realnie uda się stworzyć coś użytecznego. Przy APEX-ie, już na drugi dzień miałem coś, co mogłem komuś pokazać i powiedzieć: „Patrz, co wczoraj zrobiłem”!
Oczywiście nasuwa się pytanie, gdzie w takim razie jest w tym wszystkim programowanie. Otóż low code – poza oferowaniem wspomnianych półgotowych „klocków” – pozwala wykorzystać umiejętności w zakresie programowania, by rozbudowywać domyślne możliwości. Zasadniczo to właśnie odróżnia low code od no code’u (w którym nie programujemy w ogóle).
Wspomniane rozbudowywanie możliwości może polegać na zmienianiu działania wybranych komponentów lub na tworzeniu zupełnie nowych. Ucząc się programowania, poszerzamy zatem swoje możliwości, uzyskujemy coraz bardziej zaawansowane efekty. Jednak w tym wydaniu nauka obejmuje dokładnie to, co jest nam w danej chwili potrzebne. Dzięki możliwości natychmiastowego sprawdzenia nowej wiedzy w praktyce zapamiętujemy dużo lepiej. A przede wszystkim ograniczamy naukę do tego, z czego rzeczywiście mamy zamiar skorzystać.
Obecnie jesteś liderem low-code’owego teamu w Pretius. Jakie są Twoje obowiązki na tym stanowisku?
Prawdę mówiąc, takie same jak innych naszych developerów. Większość mojego czasu zajmuje mi tworzenie i utrzymanie produktów dla naszych klientów, czy to stricte przez development, czy przez uczestniczenie w różnego rodzaju spotkaniach. Staram się również wspierać młodszych stażem członków zespołu, podsuwać im pomysły i dzielić się wiedzą.
Jestem też zaangażowany w tworzenie pluginów do APEX-a, czyli dodatkowych komponentów, których tej platformie brakuje. Udostępniamy je w sieci, tak aby każdy developer mógł je pobrać i wykorzystać w swoim projekcie. Pod tym kątem społeczność APEX-a jest nieoceniona i miło być jej częścią.
A jak wygląda nauka low code? Czy są jakieś minimalne podstawy dotyczące kodowania, które mimo wszystko trzeba zgłębić?
Większość producentów platform low code twierdzi, że nie ma. Z doświadczenia jednak powiem, że nie osiągniecie spektakularnych rezultatów, nie inwestując ani minuty w naukę kodowania. Przede wszystkim, tworząc aplikacje internetowe, dobrze jest wiedzieć, czym jest baza danych i jak się z nią komunikować. Jak wspomniałem wcześniej, sam zacząłem swoją przygodę od podstawowych informacji o bazach danych Oracle. Myślę, że oszczędziło mi to frustracji w późniejszym czasie. Mowa o paru tygodniach nauki, co nie jest zbyt dużym nakładem czasu.
Jeśli chodzi o naukę samego APEX-a, to u mnie przebiegało to dość eksperymentalnie. Po prostu próbowałem używać kolejnych komponentów, zmieniać ich ustawienia i sprawdzać jak wpływa to na działanie aplikacji. Niejednokrotnie z pomocą przychodziły mi opisy i podpowiedzi wyświetlane w APEX-ie. Wymyśliłem sobie również cel – stworzenie aplikacji do zarządzania rezerwacjami pokojów hotelowych. Miałem więc czym się pochwalić podczas rozmowy rekrutacyjnej.
Współcześnie jest dużo więcej możliwości, bo wzrost popularności low code’u przełożył się na znacznie większą ilość materiałów i kursów. Producenci platform low code’owych zachęcają do nauki w ich centrach szkoleniowych oraz podczas konferencji i meet-upów. My w Pretius Low-Code też zresztą współpracujemy z WIT (Wyższą Szkołą Informatyki Stosowanej i Zarządzania), gdzie prowadzimy zajęcia dla studentów. Wspólnie z Akademią Leona Koźmińskiego przygotowujemy z kolei książkę o low code. Jest też wreszcie mój kurs wideo APEX-a opublikowany na YouTube.
No właśnie – przejdźmy do najważniejszego, czyli kursu, który przygotowałeś dla wszystkich, którzy chcą wejść w branżę IT za pomocą low code. Skąd pomysł na taką formę przekazania wiedzy? Dla kogo jest ten kurs?
Uważam, że poszczęściło mi się z tym, że trafiłem na APEX-a na początku kariery. Miałem też mentora, który dawał mi rady, bez których byłoby mi o wiele trudniej. Od dawna chciałem w podobny sposób pomóc komuś odnaleźć się w świecie IT, w którym, mam wrażenie, coraz ciężej jest odnaleźć się samemu. Wielu znajomych pytało mnie też o to, jak skutecznie się przebranżowić. Jestem jeden, a pytających wielu, więc pomyślałem, że sensownie byłoby taki poradnik nagrać. A nigdzie nie dotrę łatwiej do dużej ilości osób, niż na drugiej największej wyszukiwarce w Internecie, jaką jest YouTube.
Kurs jest skierowany do różnych grup. Oczywistym targetem są ludzie aspirujący do zmiany branży na IT, ale poleciłbym go również studentom i uczniom zainteresowanym software developmentem – i bynajmniej nie mam tu na myśli wyłącznie kierunków informatycznych.
Ta wiedza przyda się wszystkim osobom, które znają bazy danych, ale dotychczas nie robiły aplikacji i nie chcą uczyć się klasycznych języków. Ponieważ próg wejścia jest niski, a młodzież jest przeważnie otwarta na nowe technologie, to może się nawet okazać, że część osób wykorzysta APEX-a w nauce.
Świetnie sprawdzi się na przykład do rejestrowania wyników badań, tworzenia analiz, wykresów czy dashboardów. Może pomóc też w administracyjnych zadaniach, jak zarządzanie kołem naukowym lub komunikacją wewnątrz grup studenckich. Mój kolega stworzył kiedyś aplikację do losowania, kto komu kupuje prezent na mikołajki. 🙂
Twój kurs zawiera cykl filmów instruktażowych poświęconych platformie Oracle APEX. Opowiedz w skrócie, co znajdziemy w kursie, z czego się składa i jaką wiedzę zdobędziemy dzięki niemu 🙂
W swoim kursie Oracle APEX starałem się możliwie najwierniej odtworzyć drogę, którą przeszedłem podczas przebranżawiania się. Wyszedłem z założenia, że skoro mi się udało, to ktoś może pójść moim śladem i jemu również się uda. Starałem się ograniczyć teorię do niezbędnego minimum, tak aby widzowie mieli okazję jak najszybciej zetknąć się z praktyką.
Niektórych tematów jednak nie sposób przeskoczyć. Tak jak zaznaczyłem wcześniej, podstawowe informacje o bazach danych uważam za kluczowe. Opowiadam więc o nich na początku kursu, wyjaśniając zagadnienia tak, jak chciałbym, żeby mi je wyjaśniono, kiedy stawiałem swoje pierwsze kroki. Jednocześnie zostawiam odnośniki do sprawdzonych źródeł, gdzie można swoją wiedzę doskonalić.
Uważam, że APEX-a można nauczyć się samemu, a najtrudniej jest tak naprawdę na niego trafić. Dlatego w dalszej części kursu skupiam się głównie na elementach platformy, które mogą być najmniej zrozumiałe na pierwszy rzut oka. Prezentuję kroki, które trzeba wykonać, aby samodzielnie stworzyć swoją pierwszą aplikację. Ci z widzów, którzy nie mają swojego pomysłu na apkę, mogą po prostu naśladować moje kroki. Przechodząc w ten sposób przez cały kurs, stworzą aplikację służącą do układania przepisów kucharskich i jadłospisów. A przynajmniej jej prototyp.
W ostatnim odcinku zostawiam wskazówki odnośnie tego, co widzowie mogą zrobić po kursie. Podpowiadam, które z języków programowania warto poznać, aby w pełni wykorzystywać możliwości platformy. Opowiadam o tym, czym są pluginy, skąd je pobierać i jak importować do swoich aplikacji. To oczywiście całe tygodnie dalszej nauki, ale znacznie łatwiej się uczyć, kiedy od razu wiemy, jak zdobytą wiedzę wykorzystywać.
Wracając jeszcze do samego low code. Jakie zalety ma low code z biznesowego punktu widzenia?
Mógłbym wymieniać bardzo długo. Budowanie aplikacji z gotowych komponentów to cecha, która nie tylko ułatwia naukę, ale też znacznie zmniejsza czas, a zarazem koszt tworzenia aplikacji. I nie tylko tworzenia. Pracując w ten sposób wielokrotnie wykorzystujemy rozwiązania dostarczone przez producenta wybranej platformy. Te narzędzia zostały już gruntownie przetestowane przez odpowiedzialną za nie firmę, co pozwala ograniczyć zakres testów fragmentów naszej aplikacji – a w pewnych przypadkach całkowicie je wyeliminować.
W przypadku APEX-a mamy również gwarancję jakości w kwestiach, o których nie zawsze myślimy, gdy planujemy rozwój naszego oprogramowania. Przykładem może być tzw. accessibility, czyli dostosowanie aplikacji do potrzeb osób z niepełnosprawnościami. Nie musimy się martwić o zachowanie odpowiedniego kontrastu, czy dostosowanie do czytników ekranu.
Inną kluczową kwestią jest bezpieczeństwo. APEX posiada wbudowane mechanizmy zabezpieczające naszą aplikację przed popularnymi rodzajami ataków, jak np. SQL Injection czy Cross Site Scripting. To wszystko zdejmuje z barków zespołu duży ciężar i pozwala skupić się na założonym celu.
Obecnie wiele firm stawia na tworzenie produktów w oparciu o metodyki zwinne. Można to łatwo zauważyć, chociażby przeglądając oferty pracy, gdzie, niezależnie od technologii, pewnym stale pojawiającym się punktem jest umiejętność pracy w Scrumie. Nie poruszam tego tematu w moim kursie, ale warto nadmienić, że technologie low code są wręcz stworzone do takiego sposobu pracy.
Ideą metodyki Agile jest dostarczanie małych, ale skończonych i działających funkcjonalności w relatywnie krótkich odstępach czasu, na przykład w dwa tygodnie. Dzięki temu osoby decyzyjne mogą łatwiej obserwować rozwijający się produkt, korygować błędne decyzje lub ustalać priorytet koniecznych zmian. Wykorzystując low code w szybkim tempie, możemy uzyskać zauważalne efekty, które da się zaprezentować, poddać dyskusji, a następnie udoskonalać.
Przy okazji może warto rozprawić się z jednym z popularnych mitów o low code: niektórzy twierdzą, że platformy low code’owe nadają się wyłącznie do tworzenia małych, prostych aplikacji do wewnętrznych zastosowań. To nieprawda i nie muszę zbyt daleko sięgać po dowody przeczące tej tezie, bo sami w Pretius regularnie tworzymy w APEX-ie złożone aplikacje dla naprawdę dużych, polskich i zagranicznych graczy.
Dla Munich Re – która, o ile mi wiadomo, jest największą firmą reasekuracyjną na świecie – zrobiliśmy pełnoprawną platformę healthtech, którą dystrybuują teraz w modelu SaaS (software-as-a-service), oszczędzając mnóstwo czasu i, jak zgaduję, zarabiając sporo pieniędzy.
Czy low code może być dobrym pomysłem na wejście w IT? Czy też lepiej wybrać konkretną technologię?
Myślę, że znacie moją odpowiedź na to pytanie. 🙂 Chciałbym się jednak odnieść do jego drugiej części. Otóż low code nie jest technologią samą w sobie. Jest pewną koncepcją. Każda z platform low code’owych opiera się na jakimś języku programowania.
Moje doświadczenie jest związane przede wszystkim z APEX-em, ale na rynku mamy wielu innych dużych graczy, takich jak Mendix, Pega czy OutSystems (Gartner publikuje regularnie raporty o aktualnym stanie rynku low code). APEX jest napisany w PL/SQL, czyli języku rozumianym przez bazy danych Oracle. Pozostałe platformy zostały stworzone w innych technologiach, takich jak chociażby C# lub Java.
Dążę do tego, że developując przy użyciu platform low code’owych, tak czy inaczej będziemy zdani na naukę danej technologii. Różnica w porównaniu do klasycznego programowania polega tylko na tym, jak szybko możemy uzyskiwać pierwsze efekty. Zaczynając pracę w Pretius nie rozumiałem, jak moje aplikacje działają. Nie przeszkadzało mi to jednak w dostarczaniu klientom poprawnie działających funkcjonalności.
Teraz, po latach, znam APEX-a od podszewki. Poznałem też inne technologie, takie jak PL/SQL i JavaScript, chociaż nie jestem ekspertem w żadnej z nich. Zawsze uzupełniam wiedzę na tyle, aby sprostać stawianym mi wymaganiom, jednak wszędzie, gdzie mogę zdać się na APEX-a, robię to. Nie ma potrzeby wyważać otwartych drzwi.
Na koniec: czy low code to trend, który stanie się przyszłością programowania?
Nawet już się nią staje. Na tegorocznej edycji konferencji CloudWorld, CTO i założyciel Oracle’a Larry Ellison ogłosił, że cały nowy development prowadzony przez firmę odbywać się będzie właśnie w APEX-ie. To strategiczne decyzje olbrzymiej korporacji, poparte stale zwiększającym się zespołem osób, które APEX-a rozwijają. Rocznie pojawiają się dwie nowe wersje tej platformy, a ostanie z nich oferują niespotykaną do tej pory ilość usprawnień.
Kolejnymi nowinkami z CloudWorld’a są zapowiedzi integracji APEX-a z narzędziami Generative AI. Nie pojawi się ona wprawdzie w najbliższej aktualizacji, ale prędzej czy później nadejdzie, co w teorii może jeszcze bardziej ograniczyć potrzebę korzystania z klasycznej wiedzy programistycznej i ułatwić korzystanie z dobrodziejstw low code’u w połączeniu z GenAI.
Choć intuicja podpowiada mi, by sceptycznie podchodzić do tematów związanych ze sztuczną inteligencją, to tego typu usprawnienia mogą znacznie wpłynąć na przyszłość developmentu. Tak czy inaczej, nie mam żadnych wątpliwości, że dobrze wybrałem decydując się na APEX-a, kiedy zaczynałem swoją przygodę z IT.
Adam Kierzkowski. Początkowo zajmował się inżynierią robotyki, ale zawsze ciągnęło go do programowania i kilka lat temu dołączył do zespołu Pretius jako Oracle APEX Developer. Obecnie jest liderem zespołu programistów i najbardziej ceni sobie, jak sam twierdzi, możliwości rozwoju i budowania osobistej marki – np. poprzez wyjazdy na zagraniczne konferencje czy tworzenie omawianego w tym artykule kursu wideo Oracle APEX. Po pracy lubi w coś zagrać, obejrzeć dobry film lub serial.