Potřebujeme nové aplikace, zn. rychle

Peter Slávik

Žijeme v době naprosto překotného technologického vývoje a změn. Pandemie popohnala všechny předpovědi digitální transformace o roky dopředu, ale to mimo jiné znamená, že na vývoj nových aplikací klasickou cestou není dostatek času.

Ale nové aplikace potřebujeme mít prakticky hned, protože všechno musí být online, potřebujeme automatizovat a samozřejmě také pracovat se stále většími objemy dat z rostoucího množství zdrojů. Požadavek na rychlý vývoj nových aplikací a funkcí jsou pochopitelně v příkrém rozporu s chronickým nedostatkem kapacit vývojářů. Jak ale takový rozpor vyřešit? Především novým pohledem na způsob definování a vývoje podnikových aplikací.

Bez ústupků to nepůjde

Možná ještě před pár lety jsme si mohli dovolit komfort detailních analýz, precizního modelování, náročného vývoje, zevrubného testování a rozsáhlé implementace na míru vyvinutých aplikací, které současně pokrývaly celou řadu potřeb našich zákazníků. Takové aplikace sice vnikají i dnes, ale současně velmi sílí tlak na rychlý vývoj jednoduchých aplikací. Ty budou mít třeba jen jedinou funkci, jeden datový vstup a jeden výstup a obejdou se bez grafického uživatelského rozhraní – ale pod podmínkou, že budou k dispozici v řádu dní, nikoli týdnů. A tak samozřejmě vznikají i platformy, které takto rychlý vývoj umožňují.

Jako praktický příklad si můžeme vzít aplikaci Microsoft Teams, se kterou se mnoho z nás během posledních dvou let velmi sblížilo. Zde máme jako základ (nebo chcete-li platformu) komunikační aplikaci, kterou lze ale velmi snadno rozšířit o aplikace nebo dílčí funkce na zpracování dat, řízení projektů, automatizaci některých firemních procesů a mnoho dalšího. Rozšíření platformy Teams o další (mini)aplikace je přitom vždy jen otázkou několika kliknutí myší a zvládne to skoro každý. Je ale možné stejným způsobem vyvíjet také podnikové aplikace?

Vývoj aplikací bez kódování

Odpověď zní jednoznačně „ano“. Slouží k tomu moderní low-code / no-code platformy, tedy prostředí, ve kterých lze s minimální mírou kódování (nebo zcela bez zásahů do zdrojového kódu) modelovat jednoduché aplikace, které budou plnit konkrétní úlohu. Nejedná se přitom o zcela převratnou novinku, ale spíše o evoluci vývoje aplikací směrem k jeho vyšší dostupnosti lidem bez vývojářských dovedností, ale s jasnou představou, co od takové jednoduché aplikace potřebují. Často si ji pak mohou i v prostředí no-code platformy sami „naklikat“, otestovat a hned začít používat.

Low-code či no-code aplikace zpravidla nemají uživatelské rozhraní, na které jsme zvyklí z klasických podnikových aplikací, ale to při daném účelu nijak nevadí. Zpravidla jde totiž například o získání dat z nějakého zdroje, jejich zpracování nastavenými algoritmy a následné odeslání výsledků do jiné aplikace či výstupního front-endu. Platformy, na kterých tyto jednoduché aplikace vznikají a následně běží, se nejčastěji nacházejí v cloudu, což dále zvyšuje jejich dostupnost a možnost čerpání dat z různých zdrojů. Samozřejmě ale nic nebrání tomu, aby byly low-code/no-code aplikace propojeny i s lokálními systémy a zdroji dat.

Nápady se jen pohrnou

Hlavní roli low-code/no-code aplikací dnes vidíme v několika oblastech. Především je to rychlá realizace aktuálních nápadů. V tomto případě oceníme především snadné vytváření nových aplikací, díky kterému lze nápady realizovat hned, zkoušet různé varianty a pak třeba dále rozpracovat tu, která se jeví jako nejlepší. To vše s minimálními náklady na vyzkoušení různých variant.
Dále se low-code/no-code platformy hodí na vytváření a provoz dočasně používaných aplikací – například během různých kampaní, vývoje nových produktů a služeb i další podobné účely. A pokud se tato jednoduchá aplikace osvědčí, můžeme se na jejím základě pustit do vývoje plnohodnotné aplikace nebo do integrování její funkce do rozsáhlejších systémů.

Jednoduché low-code/no-code aplikace mohou také představovat první krůčky převodu podnikových systémů do cloudu nebo k hybridnímu řešení infrastruktury IT. Výhodou takové kombinace je, že provozování celého e-shopu nebo obchodního systému v cloudu může být velmi nákladné, ale kombinace on-premise a cloudových aplikací může ze srovnání vycházet jako mnohem efektivnější – se zachováním výhod cloudu a příznivých nákladů. Ostatně použití low-code/no-code aplikací do značné míry připomíná model servisně orientované architektury, kdy řada jednotlivých služeb skládá celou aplikaci. V případě e-shopů mohou být takovými dílčími službami (či aplikacemi) například vyhledávání, zobrazení souvisejících produktů, hodnocení ostatních nakupujících, košík, výpočet ceny dopravy, různé způsoby plateb atd.

Architektury poskládané z menších aplikací a služeb jsou odolnější vůči výpadkům, protože havarování a restart dílčí služby příliš neovlivní fungování celku, a lze je také vyladit na vyšší výkon, reprezentovaný kratší dobou odezvy. A ověřeným faktem je, že rychlejší e-shopy mají o desítky procent lepší konverzní poměry.

Nová role dodavatelů softwaru

Asi vás napadne, jaká bude vlastně role tradičních dodavatelů softwaru v době, kdy si nějakou no-code aplikaci může vyvinout prakticky každý. To je jistě oprávněná úvaha, ale je třeba mít na paměti, že stejně jako se zatím nechystá žádný ústup klasických, robustních obchodních systémů a podnikových aplikací, musí se také někdo postarat o vývoj platforem na vytváření a provoz low-code/no-code aplikací. A pak je zde ještě otázka integrace nových aplikací a služeb se stávajícími systémy, kterou rovněž musí řešit specialisté na rozhraní a propojování systémů.

Ve Sprinxu aktivně pracujeme na řešení typu backend-as-a-service, tedy základu, který poskytuje data dalším službám a aplikacím (včetně low-code/no-code aplikací), a na kterém lze postavit kompletní obchodní systémy nebo e-shopy – buďto jako plně cloudová, nebo hybridní řešení. Primárním cílem přitom je, podporovat na naší platformě rychlý vývoj nových aplikací a funkcí, aby mohli naši klienti pružně reagovat na nové požadavky trhu.

Díky low-code/no-code vývoji aplikací lze rychle otestovat nové nápady, pružně reagovat na požadavky zákazníků nebo rozložit komplikované úlohy do dílčích služeb.