¨
Agilní vývoj softwaru (Agile)
Agilní vývoj (často zkráceně označovaný jen jako Agile) není jedna konkrétní metodika, ale spíše zastřešující filozofie a soubor principů pro vývoj softwaru (a dnes i řízení projektů obecně). Vznikl jako přímá reakce na těžkopádné, pomalé a byrokratické tradiční metody (především vodopádový model – Waterfall), u kterých trvalo měsíce až roky, než zákazník uviděl první funkční verzi produktu, která v té době už často neodpovídala aktuálním potřebám trhu.
Základem agilního přístupu je iterativní a inkrementální vývoj. Práce se nerozplánuje na roky dopředu, ale rozdělí se na malé, snadno zvládnutelné úseky (iterace). Na konci každé iterace tým dodává malou, ale plně funkční a otestovanou část softwaru, kterou si může zákazník vyzkoušet a poskytnout k ní zpětnou vazbu.
[Image of Agile software development iterative cycle diagram]
Agilní manifest (Agile Manifesto)
Základy této filozofie byly definovány v roce 2001, kdy se 17 předních softwarových inženýrů sešlo v Utahu a sepsalo tzv. Manifest agilního vývoje softwaru. Tento manifest nediktuje, jak přesně máte programovat, ale definuje čtyři klíčové hodnoty, které by měly mít vždy přednost:
- Jednotlivci a interakce mají přednost před procesy a nástroji.
- Fungující software má přednost před vyčerpávající dokumentací.
- Spolupráce se zákazníkem má přednost před vyjednáváním o smlouvě.
- Reagování na změny má přednost před striktním dodržováním plánu.
Poznámka: Manifest neznamená, že procesy, dokumentace nebo plány jsou zbytečné. Znamená to, že ačkoliv mají věci na pravé straně svou hodnotu, věcí na levé straně si agilní týmy cení více.
Nejznámější agilní frameworky (Metodiky)
Jelikož je „Agile“ pouze myšlenkový směr, k jeho reálnému zavedení do firmy se používají specifické frameworky. Nejrozšířenější z nich jsou Scrum a Kanban.
1. Scrum
Absolutní standard dnešního agilního vývoje. Práce je rozdělena do časově ohraničených úseků zvaných Sprinty (typicky trvají 2 až 4 týdny). Scrum definuje tři přesné role:
- Product Owner (Vlastník produktu): Zastupuje zákazníka. Určuje „co“ se bude dělat. Udržuje a prioritizuje seznam požadavků (Product Backlog).
- Scrum Master: Zajišťuje, aby tým správně chápal a dodržoval pravidla Scrumu. Odstraňuje překážky, které týmu brání v práci.
- Vývojový tým (Developers): Samostatně organizovaná skupina lidí, která reálně vytváří produkt a určuje „jak“ se to udělá.
Součástí Scrumu jsou pravidelné rituály (Ceremonies), jako je Daily Stand-up (krátká 15minutová denní porada o postupu prací), plánování sprintu a retrospektiva (zhodnocení, co se týmu povedlo a co je třeba zlepšit).
2. Kanban
Na rozdíl od Scrumu nevyužívá pevně ohraničené sprinty, ale soustředí se na nepřetržitý tok práce (Continuous Flow). Práce je vizualizována na Kanban tabuli (typicky sloupce To Do, In Progress, Review, Done). Klíčovým pravidlem Kanbanu je WIP limit (Work In Progress) – striktní omezení počtu úkolů, na kterých lze pracovat současně, aby se zabránilo přetížení týmu a nedokončování práce.
Výhody a rizika agilního přístupu
Výhody
- Rychlá zpětná vazba (Feedback Loop): Chyby v návrhu nebo v pochopení zadání se odhalí během několika týdnů, nikoliv na konci ročního projektu.
- Flexibilita: Pokud se změní situace na trhu (např. přijde nová legislativa nebo konkurence uvede novou funkci), tým může okamžitě změnit priority a v dalším sprintu začít pracovat na novém zadání.
- Průběžné dodávání hodnoty: Zákazník může začít používat klíčové funkce produktu (tzv. MVP – Minimum Viable Product) mnohem dříve, než je dokončen celý systém.
Rizika a úskalí (Agilní antipatterny)
- Absence pevného rozpočtu a termínu: Pro mnoho tradičních korporací je velmi těžké přijmout smlouvu, kde dopředu neví přesně, co a kdy za své peníze dostanou (tzv. Time & Material kontrakty).
- Nutnost angažovaného klienta: Agilní vývoj vyžaduje, aby byl zástupce klienta (Product Owner) neustále k dispozici, odpovídal na dotazy a testoval dodanou práci. Pokud klient nemá čas, agilní proces se hroutí.
- Falešný Agile (Scrumfall): Častý problém, kdy firma formálně přejmenuje své manažery na Scrum Mastery a zavedou Daily Stand-upy, ale vnitřně stále fungují rigidně, zakazují změny a trvají na mikromanagementu.
Srovnání: Agile vs. Tradiční Waterfall
Následující tabulka ilustruje základní filozofické i procesní rozdíly mezi těmito dvěma světy.
| Parametr | Vodopádový model (Waterfall) | Agilní vývoj (Agile) |
|---|---|---|
| Základní přístup | Lineární a sekvenční (krok za krokem) | Iterativní a inkrementální (cyklický) |
| Přístup ke změnám zadání | Změny jsou nežádoucí, drahé a vyžadují změnová řízení | Změny jsou vítány a očekávány jako přirozená součást vývoje |
| Kdy klient vidí produkt? | Až na samém konci projektu (fáze nasazení/testování) | Na konci každé iterace (každé 2-4 týdny) |
| Dokumentace | Obsáhlá, detailní, vytváří se kompletně před začátkem programování | Udržována na nezbytném minimu, tvoří se průběžně s kódem |
| Vhodné pro | Projekty s jasným, neměnným zadáním a přísnou regulací (zdravotnictví, letectví) | Inovativní projekty, startupy, vývoj webových aplikací |
