Při tvorbě aplikace pro podnikové účely je důležité mít na paměti, že nový software by měl být navržen tak, aby se mohl rychle a efektivně přizpůsobit změnám v podnikových požadavcích. Měl by být také bezpečný pro firemní data, dílčí procesy by měly být automatizované a tak dále a tak dále. Pojďme se tedy společně podívat, na jaká témata byste jako klienti vývojářské společnosti neměli zapomenout – ať už na společných přípravných schůzkách, nebo během samotného plánování a vývoje. Pojistíte si tak, že na konci dodávky budete disponovat škálovatelnou softwarovou architekturou, díky čemuž vám vyvíjená aplikace poslouží jako základ firemní digitalizace na dlouhé roky dopředu.

Poznámka: Tento článek je určen především pro firmy, které se chystají na první spolupráci s IT společností ohledně dodávky software na míru. Pokud potřebujete odbornou konzultaci a analýzu vaší nabídky, neváhejte se nám ozvat.

Vyberte vhodnou architekturu

Při výběru software architektury se můžete v rámci návrhu setkat s různými typy, jako monolitická, třívrstvá, microservices, serverless… Každá z architektur má své výhody a nevýhody a je úkolem IT dodavatele v rámci odborné analýzy správně identifikovat právě tu, která bude nejlépe vyhovovat podnikovým požadavkům. Je nespornou výhodou mít v týmu na straně klienta kompetentní osobu, která bude problematice alespoň rámcově rozumět.

Ať už máte nebo nemáte kompetence o architektuře sami alespoň částečně rozhodovat, určitě pomůže si vyžádat ze strany dodavatele IT řešení komentovanou vizualizaci zvolené architektury. Právě díky správně zpracované a lidsky komentované vizualizaci je možné obeznámit se zvoleným řešením i neodborníky a sbírat tak zpětnou vazbu i od širší reprezentace firmy klienta.

Softwarová architektura

Co je ale naprosto stěžejní, je vylíčit dodavateli předem co možná nejpodrobněji vaši vizi a celkové požadavky, které budete klást na hotový software. Z uceleného “use-case” se při rozhodování o typu architektury vychází totiž nejlépe. Nebojte se také říci, že si nejste jisti. Nechat si poradit od zkušených developerů je často lepší, než trvat na svém a měnit rozhodnutí během vývoje, nebo si tak zavřít cestu k jednoduchému rozšiřování aplikace.

Oddělte služby

Právě oddělení jednotlivých služeb (en. services) může být často velmi výhodné pro zajištění škálovatelnosti vaší softwarové architektury. Každá služba by pak měla zastřešovat konkrétní funkcionalitu, kterou od vaší aplikace na míru očekáváte. Rozdělení aplikace na menší služby umožňuje pak každé službě růst nezávisle na ostatních, což dále pomáhá rychlejšímu a efektivnějšímu rozšiřování software, a to nejen v budoucnu, po dokončení dodávky, ale i agilně během vývoje.

Využijte cloudové řešení

Použití cloudového řešení je dalším z efektivních způsobů, jak zajistit škálovatelnost vaší softwarové architektury. Cloudové řešení vám umožní pružně reagovat na vaše interní potřeby a z hlediska nákladů na údržbu v drtivé většině případů vychází pro menší a středně velké podniky nejlevněji. Můžete si vybrat z různých cloudových řešení, jako je například AWS, Azure nebo Google Cloud. S doporučením vhodného a v poměru cena / výkon výhodného cloudového řešení by vám měl vždy pomoci dodavatel IT řešení.

Používejte správné nástroje

Použitím správných nástrojů pro automatizované nasazování, efektivní řízení a monitorování vašeho softwarového řešení, zasadíte pevný základ pro další vývoj i bezproblémový chod aplikace. Existuje řada užitečných nástrojů, jako je Kubernetes, Docker, Prometheus, Grafana a mnoho dalších, které vám umožní jednoduše monitorovat a řídit vaše aplikace, poskytnou vám cenné informace o tom, jak zlepšit celkový výkon interních systémů nebo vám poskytnou možnost automaticky nasazovat nové verze bez dalších nároků na čas developerů. Zeptejte se, jestli váš dodavatel počítá s použitím systémů pro automatické nasazování nebo monitoring. Řada z nich je open-source, takže jejich zapojení nutně nezvyšuje pořizovací cenu na straně licencí.

Najděte správné nástroje
Zvolte pro vaši aplikaci na míru vhodné nástroje a nenechte se zaskočit.

V případě větších projektů nezapomínejte ani na přehledné ticketovací nástroje, pro asynchronní a bleskovou komunikaci mezi klientem a vývojovým týmem doporučujeme také zapojit některý z nástrojů pro projektové řízení – opět lze nalézt i bezplatné alternativy. Tato řešení by měla být plně kompatibilní s interními procesy klienta i dodavatele software.

Testujte a optimalizujte

Testování a optimalizace jsou nezbytné pro zajištění neustálého a bezproblémového fungování vašeho softwarového řešení. Je bezpodmínečně potřeba testovat každou část vaší aplikace a optimalizovat ji pro maximální výkon a efektivitu. To vám pomůže minimalizovat počet chyb a problémů v běžném provozu a udržet aplikaci svižnou pro každodenní použití. Pokud v rámci nacenění dodávky neuvidíte položku zahrnující testování a optimalizace, určitě se dodavatele zeptejte, kolik procent nákladů plánuje v rámci vývoje uvolnit právě pro tyto účely.

Nezapomeňte se také zeptat, zda-li je možné využívat automatizovaných testů např. pro testování uživatelského rozhraní (en. UI – user interface).

Zvažte použití automatizací, optimalizujte a digitalizujte

Tím se hezkým můstkem dostáváme k samotným automatizacím. Automatizace je totiž dalším klíčovým prvkem pro vytvoření škálovatelného software. Už jsme zmiňovali automatizace pro rutinní úkoly v rámci vývoje, jako je například nasazování nových verzí aplikace, které v důsledku vývojářům umožňují zaměřit se bez vyrušování na inovace a vývoj nových funkcí.

Vyplatí se práce automatizovat?
Na levé ose najděte, jak dlouho vám task obvykle trvá, na horní, jak často ho opakujete. Dostanete se tak k času, který se vyplatí do automatizace investovat s předpokladem pětiletého horizontu návratu časové investice.

Myslete ale i na automatizace ve vašich interních procesech! Je po uzavření každé smlouvy potřeba odeslat potvrzovací e-mail? Vidíte v budoucnu potřebu přenášet data mezi právě vyvíjenou aplikací a například vaším skladovým systémem? Nebo potřebujete propojit nový systém s vámi používaným účetním software? Sjednejte si v rámci analýzy schůzku, na které co nejblíže popíšete vaše interní procesy, a zamyslete se společně s dodavatelem nad možností jejich automatizací, optimalizací a digitalizací. Nebojte se případně zapojit do debaty i odborníka na digitalizaci podniku.

Nezapomeňte na bezpečnost

Posledním, ale ne méně důležitým faktorem při vývoji software je zabezpečení. V dnešní době je třeba se zaměřit na to, aby vaše aplikace na míru byla bezpečná a chráněná před neoprávněným přístupem a útoky. Použití správných bezpečnostních nástrojů a postupů je nezbytné pro ochranu vaší softwarové architektury.

Pamatujte na tři B. Bezpečnost, bezpečnost, bezpečnost!

Zeptejte se při společné schůzce dodavatele na to, jaké konkrétní kroky povedou k zabezpečení vašich dat. Pokud necítíte důvěru v nabízená řešení, konzultujte návrh se specialistou v oblasti kybernetické bezpečnosti, obzvlášť pokud bude aplikace zastřešovat kritickou infrastrukturu vaší společnosti. Vyvarujete se tak v budoucnu mnohým nepříjemnostem.

Jak jste se mohli dočíst, vytvoření škálovatelného softwarového řešení není nutně snadný úkol. S důrazem na výše zmíněné a používáním správných nástrojů můžete ale dospět k řešení, které pomůže s optimalizací vašich interních procesů, položí základ digitalizace vaší společnosti, umožní vám rychle reagovat na změny v podnikových požadavcích a posune vaše podnikání na zcela novou úroveň.