Základní řešení a vlastnosti uživatelského rozhraní LISSA
Chtěli jsme uživatelské rozhraní, které nás posune mezi elitu.
Když jsme se zamýšleli, jakým způsobem napsat frontendovou aplikaci, tak jsme si kladli spoustu požadavků na to, co všechno by měla umět. Vybírali jsme, jaký framework použít, zdůvodňovali si jeho volbu a zvažovali, zda naše nároky na aplikaci splňuje. Jaké vlastně byly naše požadavky? Vycházely jak z hlediska technického (a od plánovaných technických prostředků se odvíjelo, jaké vývojáře budeme potřebovat), tak obchodního – aplikační rámec měl být flexibilní, rychlý a zaměřený na rychlou dodávku požadavků ke klientovi a produktu samotnému.
Definovali jsme si požadavky na frontendovou aplikaci:
- Framework musí být stabilní z pohledu rozvoje a udržovatelnosti kódu, mít silnou komunitu a vývojáře na českém trhu.
- Aplikace postavená na vybraném frameworku bude mít naši architekturu, ve které aplikace píšeme.
- Kód bude jednoduše šiřitelný a snadno udržovatelný.
- Procesy jako vytváření nových verzí aplikace, pluginů a widgetů, nasazování či testování budou maximálně automatizovány – potrpíme si totiž na chytrá a automatická řešení.
- Modularita bude klíčovou vlastností aplikace. Modularita je ve světě aplikací často skloňovaným a líbivým pojmem, málokdy je však dosaženo jejího funkčního zrealizování. My si myslíme, že jsme ho zvládli skvěle.
- Kvalitní „release management“ našeho produktu umožní reagovat na požadavky klientů a zajistí z naší strany součinnost po celou dobu trvání podpory jednotlivých verzí aplikace, pluginů nebo widgetů (je třeba počítat s tím, že se při vývoji a vylepšování produktu budeme muset posunout a již nebudeme moci některé starší verze aplikace dále podporovat). Každopádně naší snahou bude klientům poskytovat vždy ty nejnovější verze aplikace, pluginů a widgetů.
Minimalizuje se čas na opětovné testování a nasazování nových verzí. O našem přístupu k řešení tohoto požadavku se nyní detailněji rozepíšeme.
Bolesti korporátního světa a jaké nabízíme řešení
Představte si situaci (možná ani nemusíte, protože se s takovou situací setkáváte denně) - dodavatel s velkou slávou dokončí aplikaci, popřípadě udělá potřebné úpravy anebo vyřeší nějakou chybu, která uživatele trápí. A teď nastává klasický problém, jak tuto aplikaci nasadit do produkce. Co se vlastně v tuto chvíli děje? Musíme aplikaci nasadit na testovací prostředí, k tomu vyplnit spoustu formulářů pro schválení a alokovat lidi. Hodně zjednodušeně – pokud jde vše dobře, za 14 dní máte aplikaci nasazenou, ovšem „jen” v testovacím prostředí. Uživatelé mohou konečně začít testovat. Najdou se nějaké chyby, popřípadě nějaká nepochopení mezi zadavatelem a dodavatelem – to je úplně normální, takový je standardní cyklus vývoje aplikace. Uživatelé zadají chyby nebo změnové požadavky a kolečko může začít znova. Dodavatel implementuje nové požadavky, opraví chyby, aplikace je připravena na nové kolo testovaní, a zase začíná boj s časem ohledně nasazení do testu. Tento proces se opakuje několikrát. Když zákazník konečně akceptuje řešení, je možné nasadit aplikaci do produkce. Zase začíná naše známé kolečko – kam, kdo, kdy atd. bude nasazovat. Časový horizont finálního nasazení se již počítá v týdnech. (Zjednodušujeme to, a ano, můžou běžet paralelní procesy, které v rámci testování na testovacím prostředí připravují produkční prostředí.) Když je konečně aplikace nasazena v produkci a uživatelé ji mohou začít používat, často se stává, že se vlastně reálné používání aplikace stane testováním na produkci (ruku na srdce, dokud aplikace není v produkci, tak testovaní není takové jako v reálném nasazení). Co pravděpodobně nastane? Najdou se chyby, vydefinují se změnové požadavky, načež následuje spousta schůzek, kde si dodavatel se zadavatelem budou ujasňovat, kde došlo k chybě a proč něco nefunguje podle požadavků. Připraví se nová verze aplikace, nasadí se na test a po schválení do produkce, pořád dokola, a to vše stojí čas.
A proč to tu popisujeme?
Protože máme řešení, naše uživatelské rozhraní LISSA. Představte si, že to, co jsme popsali v předchozím odstavci, byste museli absolvovat jen jednou, při prvním nasazení. Jasně, musíme aplikaci nasadit na testovací prostředí a následně na produkční prostředí, ale jakékoliv další úpravy se provádějí vytvořením nové verze, kterou si můžete přes aplikaci sami aktualizovat, v případě modulu nebo widgetu nahrát (pro úplnost, bavíme se o webové aplikaci). Tím se ušetří množství času a minimalizuje se tzv. Time To Market. Naše řešení je unikátní v tom, že nejenom ušetříme spoustu času při nasazování nové verze aplikace, ale i nových modulů.
Co když budeme chtít novou funkcionalitu?
Uživatelské rozhraní LISSA má i toto vyřešené. Představte si, že chcete funkcionalitu, která umí v reálném čase překládat rozhovor vedený v cizím jazyce, zaznamenat jeho přepis, popřípadě ho vytisknout v dokumentu. Po obdržení takového požadavku připravíme nový modul, který umístíme do našeho marketplace a vy si ho můžete stáhnout a začít používat. Každý modul je samozřejmě verzovaný, je možné vracet se ke starším verzím. I když je před vydáním nové verze modulu provedeno náročné a přísné testování, může se stát, že nová verze bude přece jen vyžadovat opravy. Vy ale máte možnost vrátit se k předchozí verzi a pokračovat v práci do opravení nové verze. Tím odpadá v praxi častý problém, jak vrátit původní verzi, pokud je v nové nalezena na produkci chyba.
Pár slov na závěr
Technologický vývoj se v dnešním světě řítí strašným tempem, je dost problematické s ním udržet krok. V našem řešení uživatelského rozhraní LISSA jsme identifikovali největší problémy, které zákazníky u softwarových řešení aplikací trápí, a snažili jsme se je technologicky vyřešit. Je načase podělit se o obecné technické parametry našeho řešení. Jejich detaily anebo důvody, proč jsme se pro ně rozhodli, rozebereme do detailů v dalších článcích.
Naše řešení uživatelského rozhraní LISSA je postaveno na:
- vývojové platformě Angular,
- monorepositáři Nx,
- architektuře Micro frontends,
- marketplace postavenému nad Github Packages nebo hostovanému u zákazníka,
- přizpůsobivém designu, pro každého zákazníka na míru (vč. layout, branding).
Celé řešení je založeno na modulech (např. modul Dashboard, modul User management) a widgetech (pro představu – widget s časovou osou, chatbot s umělou inteligencí). Vše je uloženo na našem marketplace, odkud si můžete požadované komponenty sami stáhnout a aktualizovat.
Popsané řešení uvažujeme časem vydat jako Open Source a poskytnout jej každému, kdo by ho chtěl používat a sám si ho rozšiřovat.