Agilní vývoj software

Agilní metody vývoje se snaží definovat co nejpřímější komunikaci mezi uživateli vytvářeného software a vývojovým týmem. Agilní přístup přišel jako reakce na narůstající velikost vývojových týmů a s tím rostoucí složitost vývoje. Důsledkem kompli­kovaného procesu jsou chyby vzniklé zapojením velkého počtu „mezičlánků“ mezi uživatelem a vývojářem na straně jedné a dlouhou prodlevou mezi tím, kdy programátor dílo naprogramuje a kdy ho uživatel poprvé uvidí na straně druhé.

Programujeme agilně

Základem agilního přístupu je úzká spolupráce programátorů s cílovými uživateli systému. Dotaženo do extrému, uživatelé se na vývoji přímo podílejí, protože jako součást vývojového týmu progra­mátorům poskytují okamžitou zpětnou vazbu a spolu­pracují při všech fázích vývoje.

Druhým klíčovým prvkem agilního vývoje je dělat najednou jen takové množství práce, které se stihne za dobu 2 — 4 týdnů. Takto krátký čas zjednodušuje plánování a zajistí, že nově vytvořený kus bude možné brzy otestovat a získat zpětnou vazbu. Neméně významným přínosem by mělo být i udržení motivace všech zůčastněných (uživatelů i vývojářů), protože vidí pravidelně úspěchy a přínosy.

V rámci řízení projektu je hlavní změnou přístupu ochota kdykoli přistoupit na změnu zadání a řešení předělat, když se objeví nový nápad, jak problém řešit a jak potřeby klienta naplnit. Vše poměrně pěkně popisuje Manifest agilního programování.

Kdy využít agilního programování

Agilní metody mají jsou vhodné jen pro určitý typ projektů. Přinášejí velkou efektivitu tam, kde můžete dopřát vývojovému týmu dostatečnou svobodu. Zcela ale selhávají ve chvíli, kdy na vás tluče zákazník a chce schválit zadání a pevnou cenu před zahá­jením prací.

Agilní metody se dobře uplatňují u interních projektů. Dobré jsou i tehdy, když zákazník princip agilního řízení chápe a má o něj zájem (skutečně takoví zákazníci jsou!). Samozřejmě jsou výhodnější u menších projektů a vývoje aplikací pro jednoúčelové nasazení.

V kostce se dá říct, že pokud všichni klíčoví účastníci projektu mají zájem výhod agilního programování využít a skutečně jim výhody přináší, což lze ověřit např. tak, že souhlasí s principy zmiňovaného manifestu, je dobré agilních metod využít. Jinak je lepší hledat jinou cestou řízení projektu a vývoje.

Agilní vývoj naopak selhává při vývoji rozsáhlých produktů, které mají dlouhý životní cyklus a větší počet uživatelů, kteří nespolupracují a ani se neznají. Typickým příkladem jsou produkty prodávané jako „krabicové“ řešení.


Máme dlouholeté zkušenosti, jak řídit a jak vést softwarové týmy a rádi vám pomůžeme.