Autor tekstu: Michał Guzowski
Rapid Application Development, Robotic Process Automation, Business Process Management Systems – to wszystko przykłady platform Low-Code. Na rynku pojawiły się już w latach 90tych, ale ich popularność wzrosła silnie w ciągu ostatnich paru lat. W tym artykule dowiesz się czym są platformy Low-Code, kiedy możesz ich potrzebować oraz jaka przyszłość je czeka na przykładzie platform Microsoft jak PowerApps oraz Power Automate.
Gruntowna transformacja – Zrozumieć “Dlaczego”
Zanim poznamy czym są platformy Low-Code najpierw musimy zrozumieć powody dla których w ogóle zaczęto pracować nad ich rozwojem. W tym celu cofnijmy się do lat 90tych. Wtedy to właściwie era informatyzacji rozkręciła się na dobre. E-commerce, e-government, e-society, e-wszystko zdominowało świat tak osobisty jak i biznesowy. Stało się oczywiste, że nie ma innego wyjścia, jak w swojej strategii nadać wysoki priorytet informatyzacji pracy i działań. Zarządzanie danymi (Data Management), informacją (Information Management) czy wiedzą (Knowledge Management) podlegały stopniowej digitalizacji, a wraz z nimi ulegały przemianom procesy biznesowe. Wszystko po to by każdy mógł korzystać z zasobów prywatnych, zasobów firmowych, a także komunikować się z innymi z dowolnego miejsca na świecie i o każdej porze dnia i nocy.
Skąd wziąć nowych programistów?
Taka przemiana naturalnie wymagała zaangażowania ogromnej rzeszy specjalistów IT i inżynierów. Specjalizacje IT stały się niezwykle popularne i dobrze wynagradzane. Wszyscy robili co mogli aby zwiększyć liczbę programistów:
- Kształcono nowych – kierunki informatyczne studiów wyższych zyskiwały na popularności. Obecnie w Polsce, jak podaje RAPORT MINISTERSTWA NAUKI I SZKOLNICTWA WYŻSZEGO, wśród wszystkich zgłoszeń rekrutacyjnych na rok 2017/2018 14% dotyczyło kierunków informatycznych, drugim było zarządzanie z wynikiem 7% wszystkich zgłoszeń!
- Przyciągano pracowników innych specjalizacji – całoroczne szkoły programowania, bootcampy i kursy informatyczne robią wszystko by jeszcze bardziej skrócić czas kształcenia “kompletnego juniora”. Pomagają w tym także sami pracodawcy np Aviva, firma ubezpieczeniowa W 2018 ROKU ZORGANIZOWAŁA 6 MIESIĘCZNY KURS
skierowany do wszystkich pracowników, dający szanse zdobycia kwalifikacji programisty - Zatrzymywano doświadczonych – powstałe jak grzyby po deszczu firmy rekruterskie zalewają ofertami stanowisk każdego kto na linkedIn ma cokolwiek wspólnego z IT, oferując poza bardzo dobrymi zarobkami także inne benefity.
- ZWIĘKSZANO ŚWIADOMOŚĆ
Pomimo upływu prawie 30stu lat, sytuacja nie uległa zmianie. W samej tylko Polsce, mojej ojczyźnie, już teraz brakuje ok. 50.000 programistów. Zapotrzebowanie na całym świecie jest ogromne i szacuje się, że utrzyma się do 2030 roku (SOURCE). Ale to nic dziwnego jeśli rozwiązania IT angażowane są w coraz to wiecej branz (HR, marketing, sztuka) i obszarów działań (prognozowanie, chatboty).
Platformy low-code na ratunek
W przypadku kiedy popyt jest większy niż podaż, są 2 strategie mające na celu zachowanie równowagi. Zwiększenie podaży, czyli większa “produkcja” developerów, zostało opisane powyżej. Natomiast sposób nr 2. polega na zmniejszeniu popytu, czyli zmniejszenie zapotrzebowania na programistów. Czy to możliwe? Okazuje się, że tak i wcale nie trzeba wysadzać w powietrze połowy firm ;). Wystarczy zbudować paltformę do skutecznego, szybkiego i elastycznego budowania aplikacji i procesów. Sama platforma musi spełniać 5 założeń:
- Łatwość obsługi – każdy, nie tylko wysoko wykwalifikowani inżynierowie, powinien być w stanie budować rozwiązania
- Wsparcie standardów – oparcie działania platformy na globalnie przyjętych i wspieranych standardach
- Integracja – platforma powinna umożliwiać integrację z dowolnymi systemami. Osiągnięcie punktu 2 bardzo w tym pomaga
- Dostępność – budowanie rozwiązań jak i korzystanie z nich powinno być niezależne od wykorzystywanego systemu (Windows, Linux, macOS)
- Rozszerzalność – platforma której nie da się w prosty sposób rozszerzać ma nikłe szanse przyjęcia się na dłużej na rynku
I tym właśnie są tzw. Low-code development platform [LCDP] czyli wizualne podejście do tworzenia aplikacji. Microsoft posiada wiele takich platform ale my w dalszej części artykułu skupimy się na 2-óch z nich: PowerApps oraz Power Automate. Koegzystują one w bardzo bliskiej relacji nie tylko między sobą, ale także z ponad blisko 300toma innymi platformami (Microsoftu jak i nie-Microsoftu).
W LCDP budujemy rozwiązania wykorzystując mechanizm drag-and-drop lub point-and-click z poziomu interfejsu graficznego. Dzięki temu samo budowanie, modyfikowanie i utrzymywanie jest niezwykle proste i zaoszczędza mnóstwo czasu, a efekty są widoczne natychmiast.
Korzystanie z LCDP przypomina trochę budowanie z klocków LEGO. W zabawie z LEGO używasz wyprodukowanych klocków, które są ograniczone rozmiarem, kolorem, liczbą pinów. Jednak te zależności wcale nie ograniczają w budowaniu skomplikowanych i funkcjonalnych rozwiązań.
Z wykorzystaniem LCDP można zbudować profesjonalne rozwiązania wspierające firmę i co ważne sam proces budowy jest szybki i zwinny oszczędzając czasu i pieniędzy.
Na swoim blogu Michał Guzowski, jeden z naszych trenerów, opublikował APLIKACJĘ DO SKANOWANIA WIZYTÓWEK, której stworzenie zajęło mu 8 godzin zamiast 5 dni właśnie dzięki platformom Low-Code! Pracownicy IT go nienawidzi
Takie podejście musi dawać efekty:
1. 70% less application development cost and effort
2. 362% return on investment over 3-year term
3. <3 months paybackDane z “The Total Economic Impact of PowerApps and Microsoft Flow” opublikowanych przez Forrester Consulting w Czerwcu 2018 (SOURCE)
Low-Code, High-Possibilities
Za możliwości samej platformy decyduje nie tylko wielorakość dostępnych “klocków” z których możemy budować rozwiązanie, ale też otwartość platformy na integracje. Platformy PowerApps i Power Automate współdzielą zestaw dostępnych connectorów których jest blisko 300!
Po lewej: Http trigger który uruchamia Flow kiedy otrzyma zapytanie HTTP z dowolnego źródła
Po prawej: HTTP action która wykonuje zapytanie HTTP na dowolny adres URL
(Jeśli jesteś developerem, to wiedz, że stworzenie własnej usługi SaaS serveless nie mogło być prostsze!)
Ale to nie wszystko. Power Automate, podobnie jak PowerApps czy LogicApps, umożliwiają zbudowanie WŁASNEGO “klocka” (niestandardowy konektor tzw. custom connector). Taki “Custom Connector” może być połączony np: z Azure Function, które może zrealizować DOWOLNE operacje z wykorzystaniem kodu C#, Javascript, Python itp. Dobrym przykładem jest aplikacja do tłumaczenia dokumentów, która polega na tym, że:
- Power Automate wysyła do Azure Function dokument
- Dokument jest dekomponowany przez Azure Function do pojedynczych paragrafów
- Każdy paragraf jest niezależnie tłumaczony
- Przetłumaczone paragrafy są sklejane w całość…
- …i wysyłane z powrotem do Power Automate
Dzięki takiemu podejściu dokument jest tłumaczony w całości z zachowaniem formatowania i układu informacji na stronie.
Różne perspektywy pracowników
Zaprezentowany powyżej scenariusz ma jeszcze jedną niezwykłą zaletę. Takie podejście jest zdecydowanie korzystne dla więcej niż 1 strony procesu wytwórczego oprogramowania:
- LCDP developer – Może zamodelować ogólny przepływ całego procesu. Ustala z poziomu jakiej platformy użytkownik wchodzi w interakcję z aplikacją (np PowerApps), gdzie są przechowywane dane (np SharePoint Online) oraz jak przebiega ogólny przepływ informacji zwiazany z tłumaczeniem dokumentu (np Power Automate). Natomiast nie wie, i nie musi wiedzieć, w jaki dokładnie sposób dokument jest tłumaczony.
- Software developer – Z pomocą regularnego kodu (np C#) tworzy niezależną usługę, która na wejściu dostaje dokument w jakimś języku i tłumaczy go na dowolny inny zwracając przetłumaczony dokument na wyjściu. W tym celu może wykorzystać np Azure Function oraz Azure Cognitive Services. Nie wie natomiast, i nie musi wiedzieć, co się dzieje z dokumentem przed jak i po procesie tłumaczenia.
- Business owner – wykorzystuje swoje zasoby zgodnie z ich przeznaczeniem dzięki czemu powstaje mniej błędów i dostarczona zostaje większa wartość w krótszym czasie. Osoby, które dobrze rozumieją biznes i mają szeroką wiedzę produktową mogą skupić się na modelowaniu ogólnych ram rozwiązania. Z kolei programiści mogą skupić się na tym fragmencie rozwiązania który najlepiej wykorzystuje ich specjalizację.
To bardzo ważne: korzystając z LCDP wcale nie rezygnujesz z możliwości zastosowania rozwiązań z użyciem regularnego kodu.
LCDP a Wizja jutra
Ostatnią kwestią jest: Czy warto wpuszczać platformy LCDP do swojej organizacji? Pojawia się wiele pytań:
- Koncepcja LCDP nie jest nowa, a znana była już w latach 90tych. Czemu więc dopiero teraz zyskały na popularności? Może to tylko tymczasowa moda?
- Czy platformy LCDP nie zostaną niebawem zastąpione innymi platformami?
- Czy decydując się na jednego dostawcę nie wchodzimy w drogę jednokierunkową?
Pozwól więc, że pokrótce odpowiem na te pytania.
- To prawda, LCDP pojawiły się wcześniej, ale ich niską popularność osobiście wiążę z brakiem odpowiedniej adaptacji standardów programistycznych (REST/GRAPH API, JSON, OAUTH). Taki brak adaptacji uniemożliwiał zbudowanie szerokiem gamy zintegrowanych platform. Natomiast obecnie środowisko IT wyklarowało takie uniwersalne standardy, a nowo budowane rozwiazania podążają za wyznaczonymi dobrymi praktykami. Jest jeszcze jeden istotny powód, a dokładniej 3 POWODY:
- Wzrost – szacuje się, że wartość rynku low-code zwiększy się o ponad 21 mln w ciągu następnych 5ciu lat
- Dywersyfikacja – zapotrzebowanie na rozwiazania IT rośnie, a jednocześnie software developerzy potrzebują odciążenia
- Integracja – rozwiązania muszą się szybko rozwijać zachowując integrację aby móc wykorzystać potencjał stojący za dziedzinami AI, robotyki i uczenia maszynowego
- W całej historii rozwiązań IT rzeczywiście mnóstwo produktów pojawiało się żeby zaraz zostać sprzedanym, zmienionym lub zabitym. Dlatego osobiście wydaje mi się, że najlepiej wiązać się z rozwiązaniami dużych firm, których przyszłość opiera się na zaufaniu swoich klientów. To zaufanie zależy bezpośrednio od posiadanych rozwiązań, a także ich stabilności, przewidywalności, rzetelności oraz bezpieczeństwa powierzanych danych. “Zaufanie czyli Waluta Przyszłości” jak głosi tytuł znakomitej polskiej książki autorstwa Michała Szafrańskiego
- I tak i nie. Z jednek strony rzeczywiście wybierając KTÓREGOKOLWIEK z dostawców procedura wyjścia może być wiązać się nawet z koniecznością przepisania rozwiązania na nowo w przypadku chęci zmiany. Z drugiej jednak strony budowa interfejsu graficznego nie powinna zająć dużo czasu, a w przypadków systemów RPA można zaimplementować krytyczne fragmenty rozwiązań jako niezależne rozwiązania SaaS (np z wykorzystaniem Azure Functions czy web aplikacji)
Podsumowując: dla mnie osobiście Low-Code development platforms są koniecznością każdej firmy chcącej dynamicznie się rozwijać. Niosą ogromną rewolucję jaką swego czasu przyniósł interfejs okienkowy w systemach operacyjnych. Z jednej strony, to tylko zmiana interakcji z procesorem “po drugiej stronie”. Ale z drugiej, to otwarcie na zupełnie nowe możliwości.
Jeśli podobał ci się artykuł, koniecznie odwiedź Akademię Aplikacji!