Agilní přístup k vývoji softwaru se ukazuje jako velmi efektivní. Pomáhá vytvářet kvalitnější produkty, posiluje týmovou spolupráci a komunikaci, urychluje proces dodávání a zvyšuje spokojenost klientů.
Mnoho firem po celém světě si osvojilo agilní metody v projektovém řízení a vývoji softwaru, a to díky jejich nesporným výhodám.
Podle statistik je agilní přístup využíván v 80 % IT projektů globálně, včetně mnoha společností z žebříčku Fortune 500.
Agilní projekty prokazují vyšší míru úspěšnosti v porovnání s tradičními metodami projektového řízení nebo vývoje softwaru, jako je například vodopád. Tyto tradiční metody jsou často časově náročné, méně flexibilní vůči změnám a náchylné k různým komplikacím.
Agile představuje vhodnou alternativu k těmto konvenčním metodám. V současné době existuje celá řada agilních metodologií a volba té správné závisí na specifických požadavcích vašeho projektu.
Tento průvodce vám pomůže lépe porozumět agilnímu přístupu a jeho různým metodikám, a to zejména pokud jste projektový manažer.
Co jsou to agilní metodiky?
Agilní metodiky představují různé přístupy k vývoji produktů, které jsou v souladu s agilními principy a hodnotami. Umožňují týmům a projektovým manažerům vytvářet vysoce kvalitní produkty, často s funkcemi dodávanými v menších, postupných krocích.
Díky tomu mohou mezifunkční týmy pravidelně získávat rychlou zpětnou vazbu od zákazníků, což jim umožňuje neustále se zlepšovat a zvyšovat spokojenost koncových uživatelů.
Pokud se ptáte, co přesně termín „Agile“ znamená, pokusíme se to vysvětlit tak, aby vám koncept agilních metodologií dával smysl.
Co je to Agile?
Agile je efektivní a adaptabilní přístup k řízení projektů, který byl vyvinut s cílem rychleji vytvářet a dodávat kvalitní produkty koncovým uživatelům. Samotný termín „agilní“ vyjadřuje schopnost rychle a snadno se pohybovat. Pomáhá týmům lépe reagovat na požadavky zákazníků a trhu tím, že se přizpůsobuje aktuální situaci.
Jde o způsob myšlení, který zahrnuje soubor principů a hodnot pro vývoj softwaru, jak jsou shrnuty v Agilním manifestu z roku 2001. Agilní manifest se opírá o čtyři základní hodnoty:
- Důraz na jednotlivce a interakce před procesy a nástroji. Nástroje a procesy jsou samozřejmě nezbytné, ale projektové řízení je především o lidech a konečný produkt je určen pro koncové uživatele. Proto je v této hodnotě kladen důraz na komunikaci a týmovou spolupráci.
- Funkční software má přednost před obsáhlou dokumentací. Ačkoli je podrobná dokumentace důležitá pro uživatele i vývojáře a je třeba ji udržovat, hlavním cílem by vždy mělo být vytváření hodnotného, funkčního softwarového systému.
- Spolupráce se zákazníkem je důležitější než vyjednávání o smlouvě. Cílem je uspokojit potřeby zákazníků, nikoli pouze splnit body ve smlouvě. Agilní týmy by měly pravidelně komunikovat se zákazníky a úzce s nimi spolupracovat, aby pochopily jejich požadavky, získávaly zpětnou vazbu a zlepšovaly software.
- Reakce na změny je důležitější než dodržování plánu. Agilní týmy musí být rychlé a flexibilní, aby se dokázaly přizpůsobit změnám na základě situace v kterékoli fázi životního cyklu vývoje softwaru.
Kromě toho Agilní manifest obsahuje 12 základních principů:
- Spokojenost zákazníků prostřednictvím kontinuálního dodávání hodnotného softwaru.
- Přizpůsobování se měnícím se požadavkům v jakékoli fázi vývoje.
- Časté a rychlé dodávky softwaru v řádu týdnů, nikoli měsíců.
- Hladká každodenní spolupráce mezi vývojáři a obchodníky.
- Budování projektů na motivovaných a důvěryhodných jednotlivcích.
- Osobní komunikace považována za nejefektivnější způsob komunikace.
- Funkční software jako hlavní ukazatel pokroku projektu.
- Udržování stabilního tempa vývoje softwaru.
- Důraz na kvalitní design a technickou dokonalost.
- Jednoduchost je klíčová.
- Nejlepší návrhy, architektury a požadavky pocházejí od samoorganizujícího se týmu.
- Snaha o neustálé zlepšování procesů a efektivitu týmů.
Agile se využívá v mnoha procesech plánování, vývoje, technických a řídicích procesech. V současnosti existuje více než 50 agilních metodik a rámců. Z toho je patrné, že Agile není jen jeden přístup, ale je to spíše komplexní sada postupů a principů.
Organizace a týmy si vybírají agilní metodiky na základě specifických požadavků jejich projektů. Pokud jste projektový manažer, je důležité se seznámit s různými agilními metodikami, abyste mohli vybrat tu nejvhodnější pro váš projekt.
Zde jsou některé z nejčastěji používaných agilních metod, které byste měli znát.
Různé agilní metodiky
Scrum
Scrum je jednou z nejpoužívanějších agilních metodologií nebo rámců, vytvořených Kenem Schwaberem a Jeffem Sutherlandem. Používá se pro řízení komplexních projektů a jeho cílem je vytvářet vysoce kvalitní produkty a současně maximalizovat kreativitu a produktivitu týmu.
Tento lehký rámec pomáhá organizacím, týmům a jednotlivcům pracujícím na projektech vytvářet hodnotu tím, že umožňuje adaptivní řešení složitých problémů.
Scrum využívá iterace, kde jsou fáze vývoje softwaru rozděleny do krátkých cyklů (obvykle 2–3 týdenní cykly) nebo fází, které se nazývají „sprinty“. Každý sprint má pevně stanovený časový rámec pro vývoj definované sady funkcí.
Doba vývoje pro každý sprint je omezena a maximalizována tak, aby bylo možné se soustředit na jeden sprint v daném čase. Scrum zahrnuje různé projektové role, včetně vlastníka produktu, scrum mastera a vývojového týmu.
Scrum meetingy se konají denně s cílem sledovat postup projektu a diskutovat o aktivitách pro zlepšení procesu. Několik sprintů se kombinuje do vydání (Release), kde dochází k oficiálnímu předání produktu zákazníkovi nebo koncovým uživatelům.
Kanban
Kanban byl vyvinut jako reakce na některé problémy jiných agilních metodologií, zejména Scrumu. Například 2–3 týdenní sprinty se pro organizace staly časem delším pro různé obchodní aspekty a týmy začaly mít potíže s plněním závazků ohledně kvality a rozsahu.
Kanban přišel s odlišnou, vylepšenou metodou, která týmům umožňuje dodávat průběžně, místo aby čekaly 2–3 týdny. To jim také umožňuje rychleji získávat zpětnou vazbu od zákazníků a vylepšovat software, což vede k vyšší spokojenosti.
Slovo Kanban má japonský původ a jeho význam souvisí s výrobním procesem „just in time“ (JIT). Kanban je vizuální systém pro správu práce, kde jsou data organizována v tabulce nebo na nástěnce nazývané Kanban board, zobrazující pracovní postup podle plánu i skutečnou práci.
Tabule je rozdělena do různých sloupců, které reprezentují pracovní postup. S postupem vývoje se data na tabuli mění a pro nový úkol se vytváří nová „karta“.
Tato metoda vám pomůže identifikovat problémy ve vašem výrobním procesu a rychle je řešit, čímž zvýšíte efektivitu. Je široce používán v obchodních odděleních, jako je marketing, HR atd.
Podívejte se na podrobný rozdíl mezi Kanban a Scrum.
DevOps
DevOps je přístup, který spojuje vývoj softwaru (Dev) a provoz (Ops). Jedná se o soubor kulturních filozofií, nástrojů a postupů, které pomáhají týmu rychle poskytovat kvalitní služby a aplikace.
DevOps se zaměřuje na zkrácení životního cyklu vývoje softwaru a současně zajišťuje kontinuální dodávání produktů. Mnoho konceptů DevOps vychází z agilních metodologií. Proto ho mnoho firem zvažuje při volbě agilního přístupu pro své projekty.
CI/CD
Kontinuální integrace (CI) je metodika vývoje softwaru, kde vývojáři neustále slučují každou změnu kódu do centrálního úložiště před spuštěním automatizovaných sestav a testů.
CI se zaměřuje na rychlé nalezení a opravu chyb a problémů s cílem zlepšit kvalitu softwaru a zkrátit dobu ověřování. Umožňuje také rychle vydávat nové aktualizace softwaru, které řeší více problémů a uspokojují požadavky zákazníků.
Continuous delivery (CD) je také metoda vývoje softwaru, kde se tým snaží automaticky vytvářet, testovat a připravovat změny kódu pro vydání. Je to pokračování kontinuální integrace, které zahrnuje nasazení změn kódu do testovacího nebo produkčního prostředí po dokončení fáze sestavení.
Scrumban
Jak název napovídá, Scrumban kombinuje Scrum a Kanban. Tato hybridní metodika vznikla s cílem vyhovět potřebám týmů, které chtějí minimalizovat dávkovou práci a používat systém založený na tahu.
Scrumban nabízí strukturu Scrumu a flexibilitu a možnosti vizualizace Kanbanu. Díky tomu získáváte všestrannější a snadnější řízení pracovních postupů a můžete lépe plnit výrobní potřeby bez přetěžování.
Lean Software Development (LSD)
Lean je jedním z agilních rámců používaných při vývoji softwaru. Pomáhá zefektivnit a optimalizovat proces vývoje a současně minimalizovat plýtvání.
LSD eliminuje zbytečné kroky při návrhu a vývoji softwarového systému, což výrazně šetří čas i náklady. Podporuje také spolupráci mezi členy vašeho týmu za účelem optimalizace pracovního postupu bez nejasností a konfliktů. LSD zahrnuje sedm principů, které obsahují určité taktiky, procesy a postupy. Jsou to:
- Rychlé dodávání.
- Kvalitní provedení.
- Eliminace plýtvání.
- Optimalizace pracovního postupu.
- Týmová práce.
- Odkládání závazků.
- Posilování učení.
Tato metoda je vhodná pro projekty jakékoli velikosti, protože je vysoce přizpůsobivá a škálovatelná.
Extrémní programování (XP)
Extrémní programování (XP) vyvinuté na počátku 90. let se zaměřuje na zlepšení týmové práce, vytváření zdravého pracovního prostředí a podporu učení.
V této metodě vývojáři pracují ve dvojicích, kde jeden vývojář píše program, zatímco druhý ho sleduje. Během sprintu si pravidelně vyměňují role. To umožňuje nepřetržitou zpětnou vazbu a kontrolu kvality kódu i schopností vývojáře.
XP také podporuje neustálou zpětnou vazbu od klienta pro vývojářské týmy a usnadňuje komunikaci mezi nimi.
Díky tomu se týmy mohou rychle přizpůsobit změnám v případě potřeby. Tato agilní metodika je vhodná pro projekty s měnícími se požadavky a technickými riziky.
Designové myšlení
Designové myšlení je efektivní přístup, kde je produkt navržen a implementován na základě potřeb a požadavků koncových uživatelů nebo zákazníků. Usnadňuje vám také přizpůsobení se měnícím se technologickým a průmyslovým změnám.
Tento proces je iterativní a uznává, že existuje více způsobů, jak řešit daný problém, nejen jeden. Podporuje inovace, experimentování a pozorování.
Týmy jsou otevřené návrhům a nápadům a volí nejlepší přístup, který může přinést nejlepší výsledky pro projekt s cílem vytvořit kvalitní produkt a uspokojit očekávání zákazníků nebo uživatelů.
Crystal
Crystal je vysoce flexibilní agilní metodika, která umožňuje týmu svobodně vyvíjet své vlastní procesy. Klade důraz na jednotlivce a jejich interakce, nikoli pouze na nástroje a procesy. Proto je komunikace jedním z jejích hlavních atributů.
Crystal má různé varianty:
- Crystal Clear pro týmy do 8 osob.
- Crystal Yellow pro týmy o 10–20 osobách.
- Crystal Orange pro týmy o 20–50 osobách.
- Crystal Red pro týmy o 50–1000 osobách.
Tato agilní metodika se zaměřuje na poskytování produktů nejvyšší kvality s důrazem na interakci, týmovou práci a vzájemnou spolupráci, které vedou k vyšší efektivitě. Týmy si hledají nejlepší přístup k projektu na základě výzev a jedinečných požadavků.
Disciplined Agile (DA)
Disciplined Agile (DA) je agilní metodika, která pomáhá týmům zefektivnit organizační kontrolu, zlepšit agilitu firmy a dosáhnout většího finančního úspěchu.
DA vám umožňuje najít nejlepší způsob, jak se přizpůsobit požadavkům projektu a pracovnímu stylu vašeho týmu, aby bylo možné procesy dokončit rychleji bez nejasností.
Tým používá jednodušší a zjednodušené procesy k rychlejšímu dosažení svých cílů. DA se podobá metodice Crystal a může používat hybridní přístup, který kombinuje koncepty Scrumu, Kanbanu a XP.
Dynamic Systems Development Method (DSDM)
Metoda dynamického vývoje systémů (DSDM) je vhodná pro projekty s přísnějšími harmonogramy a rozpočty. Často se zaměřuje na dodávání produktu v cyklech, zahrnující postupný a iterativní přístup k vývoji.
DSDM vám umožňuje navrhnout plán, který zahrnuje průběžné a včasné dodávky produktů. Také klade důraz na získávání zpětné vazby od zákazníků během procesu vývoje a ověřování, zda jsou požadavky splněny dle očekávání.
Feature Driven Development (FDD)
Feature Driven Development (FDD) je inkrementální, na zákazníka zaměřená a iterativní agilní metodika. Zaměřuje se na vytváření fungujícího softwaru konzistentně a často. Zahrnuje fáze:
- Vytvoření modelu projektu.
- Sestavení seznamu funkcí, které se mají do produktu přidat.
- Plánování podle funkcí.
- Návrh produktu podle funkcí.
- Sestavení produktu podle funkcí.
Jak název napovídá, tato metoda je řízena hodnotnými funkcemi, které činí produkt jedinečným na trhu a užitečným pro koncové uživatele. Výše uvedené kroky pomáhají týmům postupovat stabilně a dosahovat cílů bez obtíží. Je vhodná pro větší týmy.
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) je agilní metodika, která je orientována na chování. Její koncepty podporují spolupráci mezi členy týmu s nebo bez velkých technických znalostí v oblasti vývoje softwaru.
Zahrnuje psaní testovacích případů a funkcí, které obsahují požadavky projektu a kritéria pro přijetí, která definují, jak se systém musí chovat.
Tímto způsobem lépe pochopíte potřeby a funkčnost a můžete snadněji zahájit projekt a předvídat další kroky a výsledky. BDD pomáhá týmům přesně komunikovat své potřeby, včas rozpoznat problémy a vytvořit robustní softwarový systém.
Scaled Agile Framework (SAFe)
Scaled Agile Framework (SAFe) zahrnuje sadu organizačních postupů a vzorů pro implementaci agilního přístupu na podnikové úrovni. Je to lehký rámec, který umožňuje centralizované rozhodování a pomáhá zvýšit efektivitu vývoje.
Tato agilní metodika využívá sílu DevOps a Lean, což organizacím umožňuje vytvářet inovativní produkty rychleji a ve vyšší kvalitě.
Large-Scale Scrum (LeSS)
LeSS je agilní rámec, který umožňuje škálování Scrumu pro různé týmy pracující na produktu. Jeho cílem je eliminovat plýtvání a snížit složitost procesu vývoje.
Tato metoda aplikuje myšlenky a principy Scrumu v rozsáhlém obchodním kontextu prostřednictvím definovaných pokynů a pravidel. Je známá svou jednoduchostí, ale je účinná, protože pomáhá týmům dosáhnout lepší kvality produktu a uspokojit potřeby zákazníků.
Adaptive Software Development (ASD)
ASD se namísto snahy o boj se změnami zaměřuje na neustálé přizpůsobování se změnám. V ASD týmy používají dynamický vývojový cyklus softwaru založený na principech Speculate, Learn and Collaborate, který je určen pro větší spolupráci mezi zákazníky a týmy a neustálé učení.
ASD se řídí nelineárním iterativním životním cyklem vývoje softwaru, kde se každý cyklus opakuje a lze ho měnit, zatímco probíhá další cyklus. Zaměřuje se také na rychlou produkci vysoce kvalitních produktů s nižšími náklady na údržbu.
Agilní projektové řízení
Agilní projektové řízení je efektivní a iterativní agilní přístup. Zaměřuje se na řízení vývojových projektů s průběžnými verzemi. Kromě toho týmy používající tuto metodu shromažďují a využívají zpětnou vazbu od zákazníků v každé iteraci.
Agilní projektové řízení nabízí týmům mnoho výhod, jako je zrychlení tempa vývoje, přizpůsobování se trendům trhu a lepší spolupráce.
Mezi další agilní metodiky patří:
- PRINCE2 Agile
- Evidence-Based Portfolio Management (EB PfM)
- Management of Portfolios (MoP)
- PMI-Agile Certified Professional (PMI-ACP)
- Nexus
- Projekt Half Double
- Scrum@Scale
- AgileSHIFT
A mnoho dalších.
Závěr
Agile nabízí týmům spoustu výhod, pokud jde o produktivitu, kvalitu produktů a spokojenost zákazníků. A existuje mnoho agilních metodik, ze kterých si můžete vybrat na základě potřeb vašeho projektu. Důkladně si je projděte a rozhodněte se, co vašemu projektu vyhovuje nejvíce.
Dále se podívejte na online kurzy projektového řízení.