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.

Můžeme si ovšem říci o výhodách a nevýhodách.

Obě metodiky vývoje jsme probrali v článkach “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, který se Vám rozsvítí nad hlavou jako žárovka. Je třeba jasně pochopit, jaký message vysíláte cílovému publiku, a jaké cíle si stavíte před sebou. 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 můžete 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, které jsou nezbytné pro implementaci.

Návrh
Ve vodopádovém modelu je tento proces na zvláštní pozici. I přes to, že obsah sotfwaru (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í k tomu rozhraní, které bylo graficky navržené a doplní je potřebnými funkcemi.

Integrace

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, zahajujeme marketing, aby celý svět věděl o produktu! (alespoň cílové publikum)

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é 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, sdělí si 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 pro budoucí zákazníky. Analýza probíhá neustále se stejnými cíli.

Celý proces je maximálně flexibilní, po každé iteraci tým získává potenciálně pracující produkt, který analyzuje a může se zlepšit.

Podívejme se na výhody a nevýhody obou metodik.

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 ale mínusem. První fáze zabírá spoustu času a zdrojů. Všechny prvky plánování lze provést 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 pozdě pro změny.

Na rozdíl od vodopádu jsou všechny procesy v Agile neoddělitelné. Všechny chyby, které tester zjistí, tak 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 se 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 se dějí 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 zaměřuje na odvětví, kde se neustále mění standardy, objevují se nové technologie. U Agile se s nimi můžete 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 a Waterfall.

Komentáře

Populární příspěvky z tohoto blogu

Jak vybrat dokonalého vývojáře mobilních aplikací?

3 základní druhy mobilních aplikací: webová, nativní či hybridní mobilní aplikace?