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í:

  1. 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.

  2. 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.

  3. 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.

  4. 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í:

  1. Spokojenost zákazníků díky včasným a nepřetržitým dodávkám cenného softwaru.
  2. Vítáme měnící se požadavky, a to i v pozdním vývoji.
  3. Dodávejte často fungující software (spíše týdny než měsíce)
  4. Úzká, každodenní spolupráce mezi obchodníky a vývojáři
  5. Projekty jsou postaveny na motivovaných jednotlivcích, kterým je třeba důvěřovat
  6. Konverzace tváří v tvář je nejlepší formou komunikace (společné umístění)
  7. Funkční software je primárním měřítkem pokroku
  8. Udržitelný rozvoj, schopný udržet konstantní tempo
  9. Neustálá pozornost věnovaná technické dokonalosti a dobrému designu
  10. Jednoduchost – umění maximalizovat množství neudělané práce – je zásadní
  11. Nejlepší architektury, požadavky a návrhy vycházejí ze samoorganizujících se týmů
  12. 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í:

  1. Rychlejší realizace nápadů
  2. Více flexibility než vodopádový přístup
  3. Zlepšená produktivita díky řízeným iteracím
  4. Lepší produkty prostřednictvím uživatelských interakcí
  5. 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:

  1. Na začátku může být obtížné posoudit celkové náklady
  2. Potřebuje hodně zákaznických vstupů
  3. Zahrnuje spoustu neplánované práce
  4. Žádný jasně definovaný konec projektu

Kdy použít agilní metody

  1. Když nedokážete odhadnout, co software vyžaduje
  2. Máte dostatečný přístup k zákazníkům
  3. Vyvíjíte webovou aplikaci nebo snadno aktualizovatelný systém
  4. 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.

  1. 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.

  2. 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.

  3. 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í.

  4. 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řístupLineá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ěnitPož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.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke je počítačový nadšenec, který rád čte širokou škálu knih. Dává přednost Linuxu před Windows/Mac a používá ho
Ubuntu od jeho počátků. Můžete ho chytit na twitteru přes bongotrax

Články: 298

Přijímat technické věci

Technické trendy, startupové trendy, recenze, online příjem, webové nástroje a marketing jednou nebo dvakrát měsíčně