Agilní metodologie: Význam, výhody, nevýhody a další
Vždy jste chtěli vědět, co je agilní metodika vývoje softwaru? Podívejte se sem blíže, abyste získali podrobnosti.

Agilní metodologie je filozofie vývoje softwaru, jejímž cílem je poskytovat zákazníkům lepší hodnotu pomocí kratších vývojových cyklů při současném zahrnutí neustálých revizí.
Vývoj softwaru vyrostl z oblasti matematiky a přírodních věd. Původně tedy zahrnoval vědecké metody z těchto oblastí.
Tyto metody se v 1970. letech rozvinuly do vodopádového přístupu, aby vyhovovaly dnešním požadavkům. Počítače a jejich software v té době byly velké, složité a navržené tak, aby vydržely desítky let. Vodopádová metoda se tedy hodila.
Na konci 1990. let však internet dramaticky změnil svět a stal se nezbytným nový přístup. Tak ožila agilní metodika.
Následuje bližší pohled na toto hnutí vývoje softwaru a na to, jak může pomoci vám a vašemu týmu.
Historie agilní vývojové metody
Agilní vývoj softwaru vyrostl z internetu a jeho neukojitelné potřeby aplikací během let rozmachu 1990. let a počátku 2000. století.
Bylo to také období, kdy mnoho vývojářů bez vzdělání v oblasti výpočetní techniky přešlo na vývoj webových aplikací kvůli masivní potřebě webových stránek pro různé skupiny a odvětví.
Většina startupů byla přirozeně malá. Většina vývoje se tedy odehrávala v malých týmech, přičemž konečným cílem často bylo rychlé uvedení na trh. Zpoždění znamenalo ztrátu podílu na trhu.
Aby čelili omezením, která vodopádový model představoval pro co nejrychlejší uvedení produktů na trh, přišli různí vývojáři v průběhu 1990. let s různými metodami. Patří mezi ně Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban a další.
Pak, někdy v roce 2001, se v Utahu v USA sešlo 17 vývojářů, kteří praktikovali jednu nebo druhou formu raného agilního vývoje. Poté zakončili své setkání zveřejněním Manifestu pro agilní vývoj softwaru.
Tento manifest je založen na 4 hodnotách a 12 principech.
4 hodnoty a 12 principů agilního vývoje
Na základě zkušeností, které během svého setkání spojili, 17 vývojářů dosáhlo dohody o souboru hodnot pro efektivnější tvorbu softwaru.
Tyto čtyři hodnoty jsou následující:
- Jednotlivci a interakce nad procesy a nástroje. To znamená, že vývoj softwaru s nástroji při sledování konkrétního procesu je důležitý. Ale důležitější je, aby kompetentní lidé spolupracovali efektivněji.
- Funkční software přes komplexní dokumentaci. Tento útok útočí na vodopádovou metodu prvního návrhu softwaru a psaní dokumentace k němu před samotným procesem vývoje softwaru.
- Spolupráce se zákazníkem nad vyjednáváním smlouvy. Pouze díky úzké spolupráci se zákazníkem nebo uživatelem se můžete naučit a rozvíjet přesně to, co zákazník potřebuje. To vytváří větší hodnotu.
- Reakce na změnu nad dodržováním plánu. Je důležité dodržovat plán projektu. Plán ale nesmí být příliš rigidní. Musí se přizpůsobit změnám, aby splnila očekávání zúčastněných stran.
Výše uvedené hodnoty Agile Manifesto jsou založeny na 12 principech a jsou následující:
- Spokojenost zákazníků díky včasným a nepřetržitým dodávkám cenného softwaru.
- Vítáme měnící se požadavky, a to i v pozdním vývoji.
- Dodávejte často fungující software (spíše týdny než měsíce)
- Úzká, každodenní spolupráce mezi obchodníky a vývojáři
- Projekty jsou postaveny na motivovaných jednotlivcích, kterým je třeba důvěřovat
- Konverzace tváří v tvář je nejlepší formou komunikace (společné umístění)
- Funkční software je primárním měřítkem pokroku
- Udržitelný rozvoj, schopný udržet konstantní tempo
- Neustálá pozornost věnovaná technické dokonalosti a dobrému designu
- Jednoduchost – umění maximalizovat množství neudělané práce – je zásadní
- Nejlepší architektury, požadavky a návrhy vycházejí ze samoorganizujících se týmů
- Tým pravidelně přemýšlí o tom, jak být efektivnější, a podle toho se přizpůsobuje
Iterace nebo sprinty
Iterace nebo sprinty v agilním vývoji softwaru jsou krátká období obvykle 1 až 4 týdnů, do kterých je vývojová práce rozdělena. To usnadňuje správu věcí, protože to vyžaduje méně plánování.
Každý tým se také obvykle skládá z členů s různými funkcemi, které mohou zahrnovat plánování, analýzu, návrh, kódování a testování.
Tým pracuje na softwaru při každé iteraci nebo sprintu společně. A na konci produkují fungující produkt. Tento funkční kus softwaru je podle Agile Manifesto měřítkem skutečného pokroku.
V závislosti na produktu a na potřebách zákazníka může být produkt iterace uvolněn na trh nebo ne. Takže to často vyžaduje mnoho iterací pro jedno vydání.
Výhody agilního vývoje
Jak si dokážete představit, agilní metodika přináší mnoho výhod. Jsou následující:
- Rychlejší realizace nápadů
- Více flexibility než vodopádový přístup
- Zlepšená produktivita díky řízeným iteracím
- Lepší produkty prostřednictvím uživatelských interakcí
- Chyby jsou rychle identifikovány a odstraněny
Nevýhody agilní metodiky
Práce s agilní vývojovou metodou má také některé nevýhody. A mohou zahrnovat:
- Na začátku může být obtížné posoudit celkové náklady
- Potřebuje hodně zákaznických vstupů
- Zahrnuje spoustu neplánované práce
- Žádný jasně definovaný konec projektu
Kdy použít agilní metody
- Když nedokážete odhadnout, co software vyžaduje
- Máte dostatečný přístup k zákazníkům
- Vyvíjíte webovou aplikaci nebo snadno aktualizovatelný systém
- Potřebujete rychle získat podíl na trhu s předčasným vydáním
Populární agilní vývojové rámce
Existuje mnoho populárních agilních vývojových rámců. Některé začaly daleko před Agile Manifesto z roku 2001, zatímco jiné přišly později.
Cílem rámce je jednoduše definovat pravidla metody. Takže zatímco nejoblíbenější rámce jsou uvedeny níže pro vaši referenci, existuje mnoho dalších. Můžete si také vytvořit svůj vlastní nebo upravit existující rámec tak, aby vyhovoval vašemu týmu.
- Skrumáž: Tento rámec je navržen pro týmy s 10 nebo méně členy. Práce je rozdělena do sprintů po 2-4 týdnech s každodenními 15minutovými schůzkami.
- Kanban: Kanban, původem z Toyoty, je japonské slovo, které znamená billboard a je velmi užitečné pro týmy, které oceňují vizuální pomůcky. Úkoly se přesouvají z jedné fáze do druhé pomocí vizuálních reprezentací, jako jsou rychlé poznámky nebo aplikace.
- Rychlý vývoj aplikací RAD: Tato fráze může odkazovat na agilní vývoj softwaru obecně nebo na metodu Jamese Martina. RAD se zaměřuje na požadavky uživatelského rozhraní a silně se spoléhá na prototypování.
- Lean Startup: Tento rámec je pro ty, kteří potřebují vyvinout produkt nebo službu, ale nejprve musí určit jejich životaschopnost na trhu. Zahrnuje použití experimentů, abyste zjistili, co funguje a co ne.
Mezi další pozoruhodné rámce patří Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method a Scaled Agile Framework.
Agilní vs vodopádové metodiky
Zde je pohled vedle sebe na agilní a vodopádové metody vývoje softwaru. Může pomoci vědět, jak se jednotlivé metody staví proti sobě. Můžete si tak snadno vybrat ty nejlepší nástroje pro vaši práci.
| Agilní | Vodopád |
|---|---|
| Inkrementální a iterativní přístup | Lineární a sekvenční model životního cyklu |
| Flexibilní ke změně | Pevné implementace |
| Testy a recenze probíhají | Po dokončení zbývá pouze jedna testovací fáze |
| Požadavky se mohou změnit | Požadavky jsou stanoveny po plánování |
| Soubor mnoha menších projektů | Jeden jediný projekt |
| Větší zapojení zákazníků | Menší zapojení zákazníků |
Adaptivní vs prediktivní vývoj
Cílem agilního vývoje softwaru je přizpůsobit se změnám v reálném světě. A ty jsou často výsledkem potřeb zákazníka nebo uživatele. Adaptace je v ostrém kontrastu s prediktivní povahou vodopádového modelu.
Při vývoji systémů má pak smysl používat agilní metody, u kterých si nejste tak jisti, jak věci dopadnou. Nebo když v odvětví dochází k neustálým změnám a vývoji. Velkým příkladem je internet.
Jinak, pokud vyvíjíte pro systém nebo trh, o kterém víte vše a který se téměř nemění nebo je vůči změnám imunní. Pak by vám mohla pomoci prediktivní povaha vodopádové filozofie.
Softwarové řemeslo
Software Craftsmanship je další filozofií, která staví na principech agilního vývoje a zaměřuje se na zdůraznění dovedností softwarových vývojářů zapojených do projektu.
Hnutí Software Craftsmanship má také manifest a uvádí:
Jako začínající softwaroví řemeslníci zvedáme laťku profesionálního vývoje softwaru tím, že jej praktikujeme a pomáháme ostatním naučit se toto řemeslo. Díky této práci jsme dosáhli hodnoty: · Nejen fungující software, ale také dobře vytvořený software · Nejen reagovat na změny, ale také neustále přidávat hodnotu · Nejen jednotlivci a interakce, ale také komunita profesionálů · Nejen spolupráce se zákazníky, ale také produktivní partnerství To znamená, že při hledání položek nalevo jsme zjistili, že položky napravo jsou nepostradatelné. © 2009, níže podepsaný. Toto prohlášení může být volně kopírováno v jakékoli formě, ale pouze jako celek prostřednictvím tohoto oznámení
Závěr
Když se blížíme ke konci našeho pohledu na agilní metodologii a vývoj softwaru, můžete vidět, že existuje tolik možností.
Každý tým je jiný. A stejně jako různé týmy vyvinuly své různé metody, jak se přizpůsobit měnící se době. I vy se budete muset přizpůsobit tím, že použijete již zavedený rámec, nebo jej přizpůsobíte tak, aby vyhovoval vašemu týmu.





