Target dla PowerApps i Microsoft Flow cz.2

W moim poprzednim artykule pokazałem na przykładzie 3ech różnych organizacji najwazniejsze cechy platform PowerApps i Microsoft Flow. W tej części wytłumaczę Ci do kogo kierowane są te platformy. Objaśnię także jakie są moim zdaniem przyczyny rosnącej popularności platform Low-Code Microsoft. Zacznijmy więc od podstawowego pytania.

Kto może budować rozwiązania w PowerApps i Microsoft Flow?

Od kiedy tylko tytułowe platformy pojawiły się na rynku, mówi się że są one platformami typu Low-Code, a nawet No-Code. Tutaj nie ma pełnej zgodności. Tak samo nie ma zgodności czy z w/w platform mogą korzystać wszyscy czy tylko osoby techniczne. Czy osoby spoza IT jak sprzedawcy, handlowcy i managerzy mogą czerpać korzyści z tych platform? Aby odpowiedź na te pytania omówię 2 kwestie:

  • Czy PowerPlatform jest platformą typu no-code?
  • Czy PowerPlatform jest dla każdego?

There is no No-Code

No-Code, to pojęcie zgodnie z którym narzędzie nie wymaga pisania ŻADNEGO kodu. Cały proces budowania rozwiązania opiera się o korzystanie ze specjalnego kreatora w którym za pomocą metody drag-n-drop można zbudować rozwiązanie. To miało implikować, że w/w narzędzia są tak proste, że KAŻDY może z nich korzystać do budowania rozwiązań. Wystarczy, że chce – twórca aplikacji nie musi być nawet programistą. Wówczas taka osoba uruchamia którąś z wymienionych platform i ku zdumieniu okazuje się, że:

  • platformy korzystają ze specjalnego języka funkcyjnego posiadającego składnię
  • posiadają bloki warunkowe IF
  • posiadają pętle
  • wykorzystują koncepcję zmiennych oraz kolekcji

Dla tych z Was którzy pierwszy raz widzą na oczy powyższe pozycje wyjaśniam – są to uniwersalne pojęcia cechujące wszystkie języki programowania. Trafnie ujął to swego czasu jedej z moich ulubionych influencerów – Jon Levesque

PowerApps i Microsoft Flow to nie są platformy No-Code. Kropka.

DISCLAIMER:
Oczywiście nie chodzi mi o to, że Microsoft nie posiada platform No-Code. Ma ich całkiem sporo, a żeby nie szukać daleko wystarczy podać za przykład Microsoft Forms (ciekawe review tej platformy napisał swego czasu Tomasz Poszytek na swoim blogu). Ale z pewnością PowerApps jak i Microsoft Flow do nich nie należą.

Teraz zajmijmy się drugą, znaczniej bardziej gorąco kwestią czyli czy każdy może tworzyć roziwązania na tych platformach.

ANYONE can’t do programming

Skoro już wiemy, że PowerApps jak i Microsoft Flow nie są platformami typu No-Code, to czy nadal możemy je polecić każdemu? Nie przypadkowo w nagłówku celowo użyłem słowo “programowanie” a nie “kodowanie”. Żeby budować rozwiązania wcale nie trzeba pisać kod, aby wciąż korzystać z umiejętności programowania. Wystarczy, że buduje się rozwiązanie w oparciu o to, że jest ono:

  • reprezentacją powtarzalnego procesu (niekoniecznie biznesowego)
  • oparte o możliwości określonej platformy lub platform
  • implementuje powtarzalny ciąg zdarzeń przyczynowo-skutkowych
  • kompletne rozwiązanie niesie znamiona unikalności (czyli nie jest funkcjonalnością out-of-the-box platformy)
  • (pewnie jeszcze można by coś dodać, ale na moje potrzeby to wystarczy)

W tym ujęciu nawet platformy No-Code wymagają umiejętności programowania. Zarówno Microsoft Forms, SharePoint, MailChimp jak i WordPress itp. do budowania na nich rozwiązań potrzebują pewnego stopnia zrozumienia wiedzy (nierzadko technicznej) i poznania możliwości platform. Szczególny nacisk chciałbym położyć na “ZROZUMIEĆ”, bo to często pomijany aspekt. Należy pamiętać, że wraz ze wzrostem złożoności rozwiązania rośnie prawdopodobieństwo wystąpienia błędów. A wtedy obowiązkowa będzie umiejętnośc tzw. debugowania czyli procesu odnajdywania i naprawiania błędu. Chyba, że chce się co chwila biec do swojego działu IT z prośbą typu: “TU NIE DZIAŁA! NAPRAW!”…ale chyba nie o to chodzi w całej idei No-Code/Low-Code paltforms. Nie wspomnę o tym że czasami także przydają się znacznie bardziej wyrafinowane umiejętność jak np inżynieria wsteczna.

Żeby zobrazować jeszcze lepiej opisywaną przeze mnie kwestię spójrzmy jak na ten temat wypowiada się Bob Reselman, programista, architekt i dziennikarz z wieloletnim stażem, w jednym ze swoich artykułów:

For example, imagine using a low-code visual composer to bind data from a poorly written SQL query to a UI. All should work fine, right? That’s the promise. Everything should be peachy keen, except that the app is slow as molasses in February. Why is it so slow? DB? UI code? The network?

Most likely, the low-code software developer won’t know. He was not hired to know. He was hired to drag and drop components to create business forms, not to do data performance debugging.

TechTarget, Bob Reselman

I choć nie zgadzam się ze wszystkim o czym pisał Bob w całym artykule, to ten fragment ma w sobie trochę prawdy. Low-code software developers, to nie software developers. Ale w sumie…czy nie o to właśnie chodzi? Bo…

Tworzyć rozwiązania w oparciu o platformy Low-Code nie może każdy, ale zdecydowanie może więcej osób niż tylko programiści.

Czy zastanawiałęś się czemu tak instensywnie propaguje się idee Citizen Developers (programistów platform Low-Code) i możliwość łatwego budowania rozwiązań? Wydaje mi się, że są 2 powody takiej sytuacji.

1. Tworzenie rozwiązań IT jest drogie

O kwestii problemów na rynku programistów pisałem już w swoim artykule poświęconemu zagadnieniu “Czym są platformy Low-Code“. Ogromne braki kadrowe (dla przypomnienia szacuje się, że w 2020 na rynku europejskim będzie brakować 500.000-600.000 programistów) powodują, że programiści, jak przystało na “towar” luksusowy, mają wysoką cenę. Wdrożenie rozwiązań IT to często niezwykle drogie przedsięwzięcia (analiza wymagań, architektura, infrastruktura, licencje, godzina pracy programisty, adopcja, utrzymanie itp itd). Na domiar złego często praca programistów nie jest efektywna, bo wielokrotnie implementują oni te same fragmenty aplikacji (warstwa logowania, uprawnienia, warstwa łącza danych itd). To rodzi następujące wnioski:

  1. Programiści potrzebują odciążenia w prostszych zadaniach. Mówiąc bardziej obrazowo do wymiany koła w samochodzie nie potrzebujesz usług inżyniera rakietowego
  2. Idealnie by było, gdyby tylko raz tworzyć daną funkcjonalność. Nie wymyślajmy koła na nowo. Korzystajmy wielokrotnie z powtarzalnych części rozwiązań.

I z tą myślą zbudowane zostały platformy Low-Code. W szczególności w PowerApps i Microsoft Flow jest kładziony nacisk na:

  • maksymalne pokrycie powtarzalnych fragmentów aplikacji (warstwa logowania, uprawnienia, warstwa łącza danych itd)
  • wsparcie integracji za pomocą szerokiej gamy “connectorów”(nie tylko do platform Microsoft)
  • rozszerzalność (możliwość budowania własnych connectorów bazujących na ogólnie przyjętych w IT standardach)

2. IT zna się na IT

Gdy w 2018 roku wraz z koleżanką przez prawie rok po godzinach prowadziliśmy start-up życie dało nam cenną lekcję. Mieliśmy pomysł dotyczący rozwiązania pewnego problemu branży HR, a dokładniej doradztwa zawodowego. Wydawało nam się, że mieliśmy wszystko by z tzw. side-hustle zbudować realną wartość opakowaną w skalowalny produkt:

  • Mieliśmy pomysł jaki efekt chcemy uzyskać
  • Mieliśmy technologie: ja i koleżanka pracowaliśmy w IT, programowanie i algorytmy uczenia maszynowego nie stanowiły dla nas problemu

Chcieliśmy pozyskać dofinansowanie, ale drzwi inwestorów wciąż nie chciały nas przyjąć. Gdy w końcu przyszedł czas na refleksje zrozumieliśmy czego nam brakowało. Umiejętności techniczne i docelowy efekt to nie wszystko. Trzeba jeszcze wiedzieć JAK. W naszym przypadku zabrakło specjalizacji z zakresu doradztwa zawodowego – nie mieliśmy osoby która byłaby w stanie opracować odpowiedni test psychometryczny oraz zinterpretować jego wyniki.

Podobny problem posiada wiele firm. Mają IT, które umie wdrożyć wszystko, ale nie wie co. Mają też działy nie-IT, które wiedzą co potrzebują, ale nie wiedzą jak. Wystarczy więc połączyć jednych i drugich, prawda? Dokładnie – i wtedy nagle okazuje się, że IT jest drogie (patrz poprzedni akapit).

Screen from  http://www.fressadi.com/blog/the-art-of-building/design/what-the-client-wanted/
Screen from http://www.fressadi.com/blog/the-art-of-building/design/what-the-client-wanted/

PODSUMOWANIE

Cała koncepcja platform Low-Code w wydaniu PowerApps i Microsoft Flow ma za zadanie rozwiązać kwestię wysokich kosztów projektów IT oraz niwelować problemy wynikające z wąskiej specjalizacji.

Platformy Low-Code Microsoft zmniejszają koszty generowane przez rozwiązania IT i wspierają interdyscyplinarne środowisko pracy

Dzięki PowerApps i Microsoft Flow osoby nie-IT mające jednak zdolności techniczne (warunek konieczny!) mogą w łatwy sposób pokazać, a nawet zbudować to co potrzebują. Z drugiej strony programiści i administratorzy mogą wspierać je w trudniejszych fragmentach, pomagać w integracji a nawet rozszerzać możliwości platform (poprzez Custom Connectory).

PowerApps and Microsoft Flow developers = Low-code developers = Citizen Developers
PowerApps and Microsoft Flow developers = Low-code developers = Citizen Developers

Zdziwisz się jak wiele osób spoza IT w Twojej organizacji świetnie radzi sobie z tematami technicznymi. Wystarczy tylko im pomóc zacząć.

To wszystko w tej części. W moim następnym artykule omówię kwestie związane z bezpieczeństwem rozwiązań PowerApps i Microsoft Flow.

Stay tuned!