Agile vs. Waterfall: Kterou metodu vývoje aplikace vybrat?
Když vytváříte projekt, téměř pokaždé si pokládáte tyto otázky: jak ho realizovat? Jak organizovat tým? Na metodologii, pomocí které je startup spuštěn, závisí jak kvalita výrobku, tak časový harmonogram realizace.
Metoda vývoje software strukturuje mysl, tým a vytváří jasný obraz. Vidíte, v jaké fázi se projekt nachází a jaký krok se má podniknout dál. Zbývá pouze vybrat, kterou metodu zvolit.
Jak jsme již uvedli v názvu, budeme porovnávat Agile a Waterfall. Hned na začátku uvádíme, že neexistuje žádná jasná odpověď – výběr závisí na projektu.
Obě metodiky vývoje jsme probrali v článcích „Metody vývoje aplikací: Waterfall… Agile…".
Vodopádový model
Vodopádový model jasně strukturuje vývoj projektu. Máme plán, který se skládá z jednotlivých etap, jehož výsledkem je konečný produkt.
Nápad
Startup začíná nápadem. Je třeba jasně pochopit, jaký message vysíláte cílovému publiku a jaké cíle si stavíte. Pomůže vám to organizovat projekt a vytvářet vizi konečného výsledku.
Dalším krokem je shromáždit tým, stanovit technické úkoly, termíny a pracovní povinnosti. Toto vše lze dělat na papíře nebo přes speciální program (ERP).
Specifikace požadavků (Analýza)
Důležitou etapou je hledání nejlepších prostředků k realizaci nápadu, průzkum trhu a konkurence. Tím také zjistíme, kdo je naše cílová skupina.
Díky této analýze se myšlenka přemění, zbytečné prvky zmizí a na jejich místo přicházejí nové funkce nezbytné pro implementaci.
Návrh
Ve vodopádovém modelu je tento proces na zvláštní pozici. I přes to, že obsah softwaru (backend) není jasný, vyvíjí se celý návrh včetně uživatelského rozhraní (front-end).
Implementace
V této fázi píšeme kód. Vývojáři se přizpůsobí rozhraní, které bylo graficky navrženo, a doplní je potřebnými funkcemi.
Integrace
Jednotlivé části systému jsou spojeny do funkčního celku a ověřena jejich vzájemná kompatibilita.
Testování
Provádíme důkladné testování automatizovanými nástroji i precizními testery. Zbavujeme se chyb, abychom dodali dokonalý produkt zákazníkům.
Nasazení aplikace
Přivádíme produkt na trh a zahajujeme marketing, aby cílové publikum vědělo o produktu.
Provoz
V průběhu provozu systému se má zákazník vždy na koho obrátit a konzultovat jak běžné operativní věci, tak složitější otázky úprav a rozvoje systému.
Struktura metodiky Waterfall je velmi jednoduchá. Všechny kroky na sebe navazují, takže přesně víme, který krok bude následovat.
Agilní vývoj
Agile je flexibilní metodika vývoje software. Tým nemá přesně stanovené oddělené etapy, všechny jsou mezi sebou propojené a opakují se. Projekt je rozdělen do iterací – cyklů. Každý z nich obsahuje plánování, analýzu, návrh, vývoj a testování.
Iterace jsou rozděleny na sprinty – 1 nebo 2 týdny, během kterých každý člen týmu má své úkoly. Každý den se tým setkává na briefingu, stanoví si denní cíle a sdělí zprávy o úspěších za předchozí den.
Grafici neustále komunikují s vývojáři a testery, aktualizují rozhraní pro maximální kvalitu a použitelnost. Analýza probíhá průběžně se stejnými cíli.
Celý proces je maximálně flexibilní. Po každé iteraci tým získává potenciálně fungující produkt, který analyzuje a může zlepšit.
Bez ohledu na to, že pečlivé plánování je velkým plusem metodiky Waterfall (provádí se hodnocení, koncepce, rozpočet, rizika jsou nastudovaná), pro hodně projektů je to zároveň mínusem. První fáze zabírá spoustu času a zdrojů. Všechny prvky plánování lze provést přímo v samotném procesu.
Kvůli tomu, že všechny etapy jsou od sebe oddělené, není možné nic měnit v návrhu a designu. Programátoři jsou nuceni se přizpůsobit již existujícímu rozhraní. Zákazník nezná svůj projekt až do fáze testování, když už je na změny pozdě.
Na rozdíl od vodopádu jsou všechny procesy v Agile neoddělitelné. Všechny chyby, které tester zjistí, programátor okamžitě opraví. I rozhraní se může měnit. V metodice Agile je kladen velký důraz na kvalitu výrobků, která se zlepšuje a přizpůsobuje v průběhu práce.
Jedna z výhod Agile je to, že klient je ponořen do projektu. Může kdykoli zkontrolovat proces vývoje, účastnit se jednání s týmem na konci sprintu a navrhnout změny.
Během práce na Agile byste měli pamatovat na výzvy a vědět, jak se s nimi vyrovnat:
- Musíte se plně zapojit do všech procesů, abyste byli v obraze a neudělali chybu, protože všechny procesy probíhají současně. V honbě za vylepšením nezapomeňte na počáteční požadavky klienta.
- Nezadávejte příliš mnoho úkolů na jeden sprint, zhoršuje to kvalitu práce. Rozdělte jeden velký úkol do několika malých.
Při výběru metody dodržujte zásady, které jsou pro projekt důležité. Zvolte Waterfall, pokud máte pevný seznam požadavků a jasnou představu konečného produktu. Agile se hodí pro odvětví, kde se neustále mění standardy a objevují se nové technologie – s nimi se lze vyrovnat přímo během procesu.
V iQuestu si dáváme záležet na potřebách našich zákazníků a vyvíjíme aplikace s použitím obou metod, Agile i Waterfall.