Od dłuższego czasu głośno jest o trendzie Low Code / No Code (LCNC). Niestety łączenie tych dwóch trendów razem jest dosyć niefortunne i wynika głównie ze wspólnej dla obu koncepcji NoOps. W wyniku tej koncepcji oba trendy częściowo dzielą ze sobą korzyści i zagrożenia i to powoduje mylne ich postrzeganie jako jednego trendu.

Pomimo ich wspólnego występowania w większości dyskusji, aby dobrze je zrozumieć, trzeba spojrzeć na każdy z nich z osobna.

No Code

W tym przypadku chodzi o bezobsługowe narzędzia między platformą programistyczną a użytkownikami końcowymi, za pomocą których można tworzyć i dostosowywać oprogramowanie bez kodowania. Umożliwia to tworzenie aplikacji bez umiejętności programowania przy niewielkim wysiłku i zasobach.

Działamy wyłącznie na predefiniowanych przez dostawcę elementach, dopasowując je przez konfigurowanie. Nie mamy możliwości modyfikowania funkcjonalności. Nie wiemy co jest pod spodem.

Rozwiązania te są dedykowane dla biznesu i osób nieposiadających wiedzy programistycznej (tzw. Citizen Developerów). Dobrze się sprawdzają w małych firmach i startujących biznesach, z uwagi na szybki czas od pomysłu do wdrożenia i niski nakład pracy na uruchomienie rozwiązania.

Korzyści oferowane przez tego typu rozwiązania dotyczą głównie czasu:

  • krótki czas wdrażania/uruchamiania platformy (mówimy tutaj nie tylko o technicznym wdrożeniu, ale również przygotowaniu zespołu do pracy z platformą)
  • skrócenie czasu budowy rozwiązań (bo korzystamy z gotowych klocków)
  • niski koszt szkolenia pracowników (dostawcy platform oferują masę szkoleń, a dodatkowo nie są to zbyt rozbudowane rozwiązania)

Warto jednak nie zapomnieć o wadach tego typu rozwiązań:

  • szybko rosnące TCO wraz ze wzrostem skali użycia platformy
  • zamknięcie w bańce konkretnego dostawcy, przejście na inną platformę wymaga przeważnie zbudowania wszystkiego od nowa
  • nikłe możliwości zaadresowania potrzeb nie przewidzianych przez dostawcę, musimy działać przeważnie w bardzo ograniczonym funkcjonalnie obszarze
  • bardzo ograniczone możliwości integracyjne

Low Code

Jest to podejście do budowania aplikacji, w którym można tworzyć automatyczny kod za pomocą wizualnych bloków konstrukcyjnych wykorzystując rozwijane interfejsy menu, przeciąganie i upuszczanie wszystkich funkcji bez kodowania. Jednakże narzędzie te umożliwiają dodatkowe rozbudowywanie aplikacji poprzez kodowanie istotnych elementów.

Wynikiem jest więc mimo wszystko kod, nad którym mamy pełnię władzy (lub prawie). Rozwiązania możemy dowolnie rozszerzać i zmieniać, jednakże wymaga to umiejętności programistycznych. Oczywiście jest możliwe zastosowanie podejścia do tego jak do platform No Code i działać bez dotykania kodu. Stracimy jednak przewagi oferowane przez platformę względem rozwiązań No Code.

Rozwiązania te są dedykowana więc bardziej do osób posiadających umiejętności programistyczne (przynajmniej podstawowe). Osoby, które są dłużej w branży widzą, że takie rozwiązania są dostępne na rynku od ponad 20 lat, to co je obecnie wyróżnia to właśnie No Ops, czyli zdjęcie z barków użytkownika platformy części operacyjnej.

Korzyści z wykorzystania platform Low Code są prawie identyczne jak w przypadku rozwiązań No Code, chociaż skala uzysku czasowego jest znacznie niższa.

Natomiast warto zauważyć, że charakterystyka platform Low Code umożliwia mitygację części ryzyk właściwych dla rozwiązań No Code, natomiast dalej:

  • TCO jest dosyć trudne do oszacowania i wyższe niż w przypadku tradycyjnych rozwiązań, jako że plany cenowe potrafią zależeć od wielu różnych czynników
  • wejście w niestandardowe wymagania oznacza konieczność sporego kodowania, do którego użytkownicy nie są gotowi

No Ops

No Operations, to pomysł, że można prawie całkowicie zautomatyzować środowisko IT, a tym samym zmniejszyć lub wyeliminować potrzebę posiadania dedykowanego zespołu do zarządzania wewnętrznymi operacjami. Oczywiście jest to bardziej kierunek działania niż cel. Ale już coraz więcej mówi się o czekającej za rogiem koncepcji Self Service IT.

Korzyści wykorzystanie No Ops w organizacjach zależą mocno od modelu operacyjnego i wielkości.

W przypadku małych firm, które nie mogą sobie pozwolić na działy IT często jest to jedyny sposób, aby utrzymać się w rynkowym wyścigu o zapewnienie jak najlepszego cyfrowego doświadczenia klienta.

W przypadku dużych firm jest to remedium na permanentne problemy kadrowe wynikające z jednej strony z wysokich oczekiwań finansowych specjalistów, z drugiej niskiej dostępności dobrych specjalistów co dodatkowo jest jeszcze komplikowane przez brak właściwych strategii HR-owych, a z trzeciej strony bardzo dynamiczny rozwój krajobrazu technologicznego, za którym bardzo ciężko jest nadążyć.

Zagrożenia są prawie identyczne jak z wykorzystaniem platform chmurowych w modelu PaaS i SaaS, czyli w pewnym stopniu stajemy się zakładnikiem dostawcy i zamykamy w jego ekosystemie. Natomiast w obecnych czasach główni dostawcy dbają o to, żeby z jednej strony ich ekosystem był jak najwygodniejszy (aby był pierwszym wyborem), ale z drugiej strony, aby był w miarę otwarty (tak aby klient nie czuł zamknięcia w klatce).

Przyczyny

Analizując te trendy i możliwość (albo konieczność) ich wykorzystania w organizacjach warto przyjrzeć sobie czynnikom, które stoją za powstaniem tych trendów:

  • Wzrost dojrzałości platform chmurowych i możliwości przez nie oferowane w sensownej cenie
  • Ograniczona dostępność zasobów IT, dobrzy pracownicy o kompetencjach programistycznych są drodzy i trudno dostępni, tak samo administratorzy zdolni utrzymywać platformy i zapewnić proces wdrożeniowy
  • Ciągłe potrzeby drobnych zmian, wynikających z rozwoju w koncepcji zwinności – małych przyrostów przy jednoczesnym nieustalonym kształcie docelowym.
  • Zapotrzebowanie na coraz szybsze dostarczanie rozwiązań z odłożeniem na później kwestie dotyczące jakości czy kompletności realizacji wymagań
  • Kwestie związane z demokratyzacją IT i zapotrzebowaniem na narzędzia o niskim koszcie wejścia możliwym do obsługi przez początkujących użytkowników / developerów
  • W małych firmach widać koncepcję cyfryzuj-alb-giń (bo konkurencja inaczej szybko Cię prześcignie), więc potrzebne są rozwiązania, gdzie pracownicy nie-IT będą w stanie popchnąć cyfryzację do przodu

Wykorzystanie platform LCNC

Kluczowym czynnikiem jaki musisz uwzględnić przy wyborze platformy jest wielkość firmy w jakiej pracujesz i rodzaj biznesu. Jeżeli pracujesz w małej nie technologicznej firmie to raczej powinieneś przyglądać się platformom No Code, inaczej może się okazać, że złożoność platformy stanie się na tyle dużą przeszkodą, aby doprowadzić do utraty potencjalnych korzyści.

W przypadku dużych przedsiębiorstw skup się na platformach Low Code, ale musisz mocno przeanalizować sytuację, czy iść w kierunku jednej jak najbardziej uniwersalnej czy raczej w planach uwzględnić kilka bardziej specjalizowanych. Na szczęście w przypadku dużych firm powinieneś mieć na pokładzie architekta IT (a może sam nim jesteś). To jego zadaniem jest analiza charakterystyki potrzeb przedsiębiorstwa i dopasowanie odpowiedniej strategii wykorzystania tego rodzaju technologii.

Analizując potencjalny wybór i przygotowując plan wdrożenia musisz pamiętać, że nie ma dwóch identycznych firm, więc rezultat może być całkowicie inny niż u konkurencji. Jeżeli jesteś osobą decydującą za wybór powinieneś zebrać swoje wymagania i oczekiwania w siedmiu kategoriach (chociaż możesz stworzyć własny zestaw kategorii):

  • Logika biznesowa – czyli twoje oczekiwania związane z podejściem do implementacji procesów biznesowych
  • Środowisko developerskie – tutaj wszystko co dotyczy, jak platforma powinna ułatwiać tworzenie rozwiązań, ich testowanie oraz cały cykl rozwoju oprogramowania
  • Nadzór – czyli wymagania związane ze wsparciem nadzoru (architektonicznego) nad budowanie rozwiązań, mierzeniem postępów i oceną jakości
  • Integracja – tak, bardzo ważne, abyś zebrał wszelkie oczekiwania związane z integracją
  • Rozszerzalność platformy – czy planujesz rozbudowywać co platforma dostarcza i ją rozwijać
  • Bezpieczeństwo – czyli wszelkie zagadnienia, aby uniknąć naruszeń bezpieczeństwa i ułatwić pracę użytkownikom
  • Doświadczenia użytkownika – czy chcesz zaszyć na platformie standardy kolorów korporacyjnych ?

Po tym, jak już zbierzesz wymagania, musisz jeszcze ustalić wagi dla poszczególnych kategorii. A potem wybór właściwej platformy to już łatwizna.

Podsumowanie

Na koniec warto jeszcze zwrócić uwagę, że nie wszystko jest takim jak się wydaje. Czasami dostawcy będą przynosić rozwiązania SaaS i próbować je sprzedawać jako platformy No Code. Czasami podobnie będzie się działo z platformami Low Code. To zadaniem osoby odpowiedzialnej za adopcję technologii w firmie jest przejrzenie przez chmury marketingu i ustalenie czym jest oferowany produkt i czy pasuje do organizacji.

Dodatkowo nie zapominaj, że to tylko narzędzia. Mogą one być wykorzystywane na wiele różnych sposobów, np. do demokratyzacji IT albo do rozwiązań RPA dostarczanych przez IT. Wszystko w Twoich rękach.

Autor:

Maciej Sobieraj — Architekt korporacyjny z 23-letnim doświadczeniem w IT, założyciel polskiej społeczności architektów IT. Absolwet Wydziału Cybernetyki Wojskowej Akademii Technicznej. Autor kursów z obszaru architektury IT, twórca newslettera dla architektów IT oraz mentor. Więcej informacji na stronie https://drogaarchitektait.pl/