Kdo je softwarový architekt a proč ho potřebujete
Vývoj mobilních aplikací je v posledních letech velmi populární a nic nenasvědčuje tomu, že by se na tom mělo v blízké budoucnosti něco měnit. Zároveň je to ale velmi mladý obor, který se extrémně rychle vyvíjí a to i ve srovnání s překotným vývojem v jiných oblastech IT.
Tímto textem začínáme sérii článků, která se bude zabývat vývojem softwaru v současnosti. Dnes se zaměříme na softwarovou architekturu a hlavně na toho, kdo ji navrhuje.
Jako softwarový architekt a analytik musím neustále sledovat novinky ve svém oboru, abych dokázal vybrat nejlepší možná řešení pro naše zákazníky a dokázal jim zodpovědět všechny jejich otázky. Možná byste neuhádli, čím se musí takový SW architekt každý den zabývat. Paradoxně se jeho povinnosti zas tak výrazně neliší od klasického architekta, který navrhuje budovy. Posuďte sami:
- Musí se seznámit se všemi požadavky daného projektu
- Musí mít stále na paměti všechny okolnosti projektu
- Na základě toho vybírá materiály pro stavbu
- Musí se vyznat i v příbuzných oborech
- Dle všech těchto požadavků potom navrhne budovu
- (Někdy) musí dohlížet na kvalitu v průběhu výstavby, aby se neodchýlila od původních plánů
No a SW architekti dělají v podstatě to samé. Jediný rozdíl je ve výsledku – místo budov tvoří aplikace, které se uživatelům musí dobře používat. Pojďme si teď rozebrat každý bod detailněji.
Seznámení se s požadavky
Architekt (a zároveň analytik v jedné osobě) nejdříve zjišťuje všechny požadavky na novou aplikaci: jaké má mít funkce, na jakých má běžet platformách apod. Dále musí předvídat, jakým směrem se projekt bude dále vyvíjet a podle toho určovat následující kroky. Jsou totiž pouze dvě možnosti: buď se projekt podaří proměnit v něco funkčního nebo je odsouzený k záhubě.
Být obeznámen se všemi okolnostmi
Podobně jako u navrhování budovy i zde je architekt omezen několika faktory. Nejčastějším je rozpočet. Může se to zdát samozřejmé, ale i tak se někdy najdou zákazníci, kteří si to nechtějí přiznat. Pokud má architekt k dispozici velký rozpočet, může si dovolit stavět z drahých a kvalitních materiálů, což platí stejně u staveb i u softwaru. Pokud je ale rozpočet omezený, musí najít takové řešení, které sice není ideální, ale zároveň má nejméně nedostatků.
Dalším faktorem je prostředí: klient již vlastní určitou infrastrukturu, na kterou je nutné projekt navázat nebo spolupracuje s třetími stranami. Někdy také architekti naráží na otázky bezpečnosti a ochrany soukromí. Optimální řešení pak musí splňovat nejen funkční požadavky, ale i bezpečnostní nároky.
Výběr materiálů
SW architekt vybírá technologie, služby, platformy i programovací jazyk.
Nutná znalost příbuzných oborů
Aby mohl architekt dělat správná rozhodnutí, musí mít přehled a musí se vyznat v mnoha oborech, např. v mobilních i webových aplikacích, backendech nebo v infrastrutkuře. S ohledem na to, jak rychle se technologie a příslušné postupy vyvíjí, obsáhnout tohle všechno v jednom člověku je nadlidský úkol, který zabírá spoustu času a úsilí. Pokud nastane nějaký složitější problém, měl by mít každý architekt svůj tým expertů, se kterým ho může konzultovat.
Návrh budovy podle předchozích požadavků
Poté co architekt vybere pro projekt ty správné “materiály”, naplánuje, jak bude software strukturovaný, jak spolu budou jednotlivé komponenty komunikovat a jak by měl být z technického hlediska finální produkt vyroben.
Kontrola kvality během celého procesu tvorby
Architekti musí čas od času zkontrolovat vývoj produktu, aby se ujistili, že programátoři postupují podle plánu.
Jak můžeme vidět, práce softwarového architekta zahrnuje různé činnosti z mnoha oblastí IT. Celý projekt vyvíjí softwarový tým na základě rozhodnutí jednoho architekta. Jedno špatné rozhodnutí tak může celý projekt odsoudit k neúspěchu. Je proto zásadní, aby se váš softwarový architekt vyznal ve všech trendech a technologiích – může vám tím ušetřit spoustu času a peněz.
Pokud to tedy se svým podnikáním či startupem myslíte vážně, dobrý softwarový architekt by měl být jedním z hlavních kritérií při hledání té správné firmy pro vývoj vaší aplikace, webu nebo jiného softwaru.
A když už byla řeč o trendech, v příštím díle se můžete těšit na PaaS a SaaS, což jsou přístupy, které hýbou světem (nejen) vývoje mobilních aplikací.