středa 8. března 2023

Agilní versus projektový přístup k vytváření software

Pojďme se podívat na porovnání projektového a agilního přístupu k vývoji software:

Projektový přístup

Projektový přístup je založen na tom, že chceme dodat určitou funkcionalitu, kterou je zákazník schopen (s pomocí analytika) předem specifikovat. Máme tedy jasně definovaný cíl, kterého chceme dosáhnout. Začneme vytvořením plánu z hlediska času, zdrojů a závislostí mezi jednotlivými úkoly. 

Následně projekt spustíme a průběžně vyhodnocujeme z hlediska času a spotřeby zdrojů. Případné změny v průběhu projektu jsou obvykle nežádoucí, protože boří předem připravený plán. Výhodou (teoretickou) je, že pokud vše půjde podle plánu, víme na začátku projektu co, kdy a za kolik dostaneme. Jednotlivé fáze projektu - analýza, vývoj, testování - jdou sekvenčně za sebou.

Agilní přístup

Agilní přístup vychází z agilního manifestu, který lze shrnout ve 4 větách:
  • Jednotlivci a interakce před procesy a nástroji.
  • Fungující software před vyčerpávající dokumentací.
  • Spolupráce se zákazníkem před vyjednáváním o smlouvě.
  • Reagování na změny před dodržováním plánu.
Při agilním přístupu tedy zkusíme vytvořit část systému a získat zpětnou vazbu uživatelů. Během vývoje počítáme se změnami, takže nakonec se můžeme dostat jinam, než jsme předpokládali na začátku. Agilní přístup znamená rychlou reakci na změnu. Jelikož tyto změny dopředu neznáme, není jasné co a kdy dostaneme jako finální výstup. Práce probíhá postupně, iterativně - analýza, vývoj, testování - se opakují v rámci sprintu. Zkusíme vyvinout životaschopnou část systému v rámci pevně dané doby - sprintu -  a pak pokračujeme dalším sprintem. Náplň sprintu se určí až při zahájení sprintu, není daná dopředu.