Agile je efektivní přístup k vývoji softwaru, který pomáhá vytvářet vysoce kvalitní software, zlepšuje spolupráci a komunikaci, urychluje dodávání softwaru a zvyšuje míru spokojenosti zákazníků.
Společnosti po celém světě využívají Agile ve svých procesech projektového řízení a vývoje softwaru díky jeho výhodám.
Podle zprávy se agilita používá v 80 % IT projektů po celém světě, což zahrnuje mnoho společností z Fortune 500.
Agilní projekty také prokázaly vyšší míru úspěšnosti než tradiční projektové řízení nebo metodologie vývoje softwaru, jako je vodopád. Tyto metody zaberou značný čas, jsou méně flexibilní vůči změnám a zahrnují mnoho dalších problémů.
Agile je skvělou alternativou k těmto metodám. Dnes je k dispozici mnoho agilních metodologií a jejich výběr závisí pouze na potřebách vašeho projektu.
Tato příručka vám tedy pomůže pochopit agilní a různé metodiky, pokud jste projektový manažer.
Table of Contents
Co jsou agilní metodiky?
Agilní metodiky se týkají různých metodologií vývoje produktů v souladu s agilními principy a hodnotami. Tyto metodiky pomáhají týmům a projektovým manažerům produkovat vysoce kvalitní produkty a často poskytovat jejich funkce v menších krocích.
Umožňuje mezifunkčním týmům pravidelně vyhledávat rychlejší zpětnou vazbu od zákazníků, aby mohly neustále zlepšovat a zvyšovat spokojenost koncových uživatelů.
Pokud se nyní ptáte, co termín „Agile“ znamená, pojďme tomu rozumět tak, aby vám koncept agilní metodologie přišel přirozený.
Co je Agile?
Agile je efektivní a flexibilní přístup k řízení projektů vyvinutý tak, aby pomohl rychleji vytvářet a dodávat vysoce kvalitní produkty koncovým uživatelům. Termín „agilní“ znamená schopnost pohybovat se rychleji a s lehkostí. Pomáhá týmům lépe reagovat na potřeby zákazníků a trhu tím, že se přizpůsobí situaci.
Je to způsob myšlení zahrnující soubor principů a hodnot pro vývoj softwaru, jak je zaznamenáno v Agile Manifestu z roku 2001. V Agile Manifestu jsou čtyři základní hodnoty:
- Jednotlivci a interakce jsou ceněni více než nástroje a procesy. Nástroje a procesy jsou nepochybně nezbytné, ale projektové řízení zahrnuje lidskou činnost a konečný produkt je pro koncové uživatele. Proto tato hodnota klade důraz na komunikaci a týmovou práci.
- Funkční software je ceněn více než komplexní dokumentace. Přestože je komplexní dokumentace vysoce vynalézavá pro uživatele i vývojáře a musí být udržována, hlavním cílem by vždy mělo být vytvoření hodnotného funkčního softwarového systému.
- Spolupráce se zákazníkem by měla předcházet vyjednávání o smlouvě. Cíl musí uspokojit potřeby zákazníků a ne pouze pokrývat ukazatele ve smlouvě. Agilní týmy musí často komunikovat se zákazníky a úzce s nimi spolupracovat, aby pochopily jejich potřeby, sbíraly zpětnou vazbu a zlepšovaly software.
- Reakce na změnu se musí cvičit podle plánu. Agilní týmy musí být rychlé a flexibilní, aby se přizpůsobily změnám na základě situace v kterémkoli bodě životního cyklu vývoje softwaru.
Navíc 12 principů v Agilním manifestu je:
- Spokojenost zákazníků s nepřetržitým dodáváním hodnotného softwaru
- Přizpůsobte se měnícím se požadavkům v jakékoli fázi vývoje.
- Časté a rychlejší dodávky softwaru v týdnech namísto měsíců.
- Hladká každodenní spolupráce mezi vývojáři a obchodníky.
- Budování projektů kolem motivovaných, důvěryhodných jednotlivců
- Umožnit konverzaci tváří v tvář a považovat ji za nejlepší způsob komunikace
- Zvažování fungujícího softwaru jako hlavního měřítka pokroku projektu
- Udržování udržitelného vývoje softwaru, který zahrnuje konstantní rychlost
- Zaměření na dobrý design a technickou dokonalost
- Zachování jednoduchosti je zásadní
- Nejlepší návrhy, architektury a požadavky pocházejí od samoorganizujícího se týmu.
- Důraz na hledání způsobů, jak se týmy přizpůsobit požadavkům a stát se efektivnějšími
Agile se používá v různých procesech plánování vývoje softwaru, technických a řídících procesů. V současnosti je v praxi přes 50 agilních metodik a frameworků. To znamená, že agilní není jen jeden přístup; je to mnohem víc.
Organizace a týmy si tedy vybírají agilní metodiky na základě svých projektových potřeb. A pokud jste projektový manažer, musíte znát různé agilní metodiky, abyste si vybrali tu nejvhodnější pro svůj projekt.
Zde jsou některé z běžně používaných agilních metod, které byste měli znát.
Různé agilní metodiky
Skrumáž
Scrum je jednou z nejpoužívanějších agilních metodologií nebo rámců, které Ken Schwaber a Jeff Sutherland vytvořili. Používá se ke správě komplexních adaptivních projektů a jeho cílem je vyrábět vysoce kvalitní produkty a zároveň 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í velmi složitých problémů.
Scrum zahrnuje iterace rozdělením fází vývoje softwaru do cyklů (obvykle 2-3 týdenní cykly) nebo fází nazývaných „sprinty“. Každý sprint má časový box pro vývoj definované sady funkcí.
Zde je doba vývoje pro každý sprint vyhrazena a maximalizována, aby bylo možné pracovat na jednom sprintu najednou. Zahrnuje různé projektové role, včetně produktového vlastníka, scrum mastera a týmu.
Scrum meetingy se konají denně, aby se sledoval pokrok projektu a probíraly se aktivity ke zlepšení procesu. Více sprintů je zkombinováno do Release, kde je realizována formální dodávka produktu zákazníkovi nebo koncovým uživatelům.
Kanban
Kanban byl vyvinut pro řešení některých problémů jiných agilních metodologií, zejména Scrumu. Například 2-3 týdenní cykly se pro organizace prodloužily pro různé obchodní aspekty a týmy začaly mít potíže s plněním závazků týkajících se kvality a rozsahu.
Kanban navrhl jinou, vylepšenou metodu, která pomáhá týmům dodávat průběžně, místo aby čekali 2–3 týdny. To jim také umožňuje rychleji sbírat zpětnou vazbu od zákazníků a zlepšovat software, aby bylo dosaženo lepší míry spokojenosti.
Slovo Kanban má japonský původ a jeho význam je spojen 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 nástěnce zvané Kanban board, zobrazující pracovní postup podle plánu a skutečnou práci.
Tabule je rozdělena do různých sloupců, které představují pracovní postup. S postupem vývojových prací se data na desce mění a pro nový úkol je vytvořena nová „karta“.
Tato metoda vám pomůže identifikovat problémy ve vašem výrobním procesu a rychle je opravit, abyste zvýšili 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 operace (Ops). Jedná se o soubor kulturních filozofií, nástrojů a postupů, které pomáhají týmu rychle poskytovat vysoce kvalitní služby a aplikace.
DevOps se zaměřuje na zkrácení životního cyklu vývoje softwaru a zároveň poskytuje nepřetržité dodávání produktů. Mnoho konceptů DevOps vychází z agilních metodologií. Proto to mnozí zvažují při výběru agilního způsobu pro své projekty.
CI/CD
Nepřetržitá integrace (CI) je metodika vývoje softwaru, při které vývojáři neustále slučují každou změnu kódu do jediného úložiště před spuštěním automatizovaných sestav a testů.
CI se zaměřuje na rychlejší 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 splňují 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í nepřetržité integrace, která zahrnuje nasazení změn kódu do testování nebo výroby po dokončení fáze sestavení.
Scrumban
Jak název napovídá, Scrumban kombinuje Scrum a Kanban. Tato hybridní metodika byla vyvinuta, aby splňovala požadavky týmů, které chtějí minimalizovat dávkové práce a používat systém založený na tahu.
Scrumban nabízí strukturu Scrumu a flexibilitu a možnosti vizualizace Kanbanu. Tímto způsobem získáte všestranné a snazší řízení pracovních postupů a můžete splnit výrobní potřeby, aniž byste byli přetíženi.
Lean Software Development (LSD)
Lean je jedním z agilních frameworků používaných při vývoji softwaru. Pomáhá zefektivnit a optimalizovat proces vývoje a zároveň minimalizovat odpad.
LSD eliminuje zbytečné kroky při navrhování a vývoji softwarového systému, což výrazně šetří čas a náklady. Podporuje také spolupráci mezi členy vašeho týmu za účelem optimalizace pracovního postupu bez zmatků a konfliktů. LSD zahrnuje sedm principů, které zahrnují některé taktiky, procesy a praktiky. Tyto jsou:
- Rychlé doručení
- Kvalitní provedení
- Odstraňte odpad
- Optimalizujte pracovní postup
- Týmová práce
- Odložit závazky
- Zesílit 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, podporu zdravého pracovního prostředí a péči o učení.
V této metodě vývojáři pracují ve dvojicích, kde jeden vývojář píše program, zatímco druhý ho pozoruje. Během daného sprintu si také pravidelně vyměňují role. To umožňuje nepřetržitou zpětnou vazbu a kontrolu kvality kódu a schopností vývojáře.
XP navíc podporuje neustálou zpětnou vazbu od klienta vývojářským týmům a snadnou komunikaci mezi týmy.
Tímto způsobem se týmy mohou v případě potřeby rychle přizpůsobit změnám. Tato agilní metodika vyhovuje projektu zahrnujícím měnící se požadavky a technická rizika.
Designové myšlení
Design thinking je efektivní přístup, kdy je produkt navržen a implementován na základě potřeb a požadavků koncového uživatele nebo zákazníků. Usnadní 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 mnoho způsobů, jak vyřešit daný problém, nikoli pouze jeden. Podporuje také inovace, experimentování a pozorování.
Zde jsou týmy otevřené přijímání návrhů a nápadů a volbě nejlepšího přístupu, který může nabídnout nejlepší výsledky pro projekt k vytvoření kvalitního produktu a uspokojení očekávání zákazníků nebo uživatelů.
Krystal
Crystal je vysoce flexibilní agilní metodika, která týmu nabízí svobodu vyvíjet procesy nezávisle. Primárně se zaměřuje na jednotlivce a jejich interakce spíše než pouze na nástroje a procesy. Proto je komunikace jedním z jeho hlavních atributů.
Krystal je různých typů:
- Crystal Clear až pro 8 osob v týmu
- Crystal Yellow pro 10-20 osob
- Crystal Orange pro 20-50 osob
- Crystal Red pro 50-1000 osob
Tato agilní metodika se zaměřuje na poskytování produktů nejvyšší kvality se zaměřením na interakci, týmovou práci a symbiózu, které přinášejí vyšší efektivitu. Týmy najdou nejlepší způsob, jak přistupovat 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í kontroly, zlepšit obchodní agilitu a získat lepší finanční úspěch.
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 se procesy mohly dokončit rychleji bez zmatků.
Zde tým používá jednodušší a odlehčené procesy k rychlejšímu dosažení svých cílů. Je podobný Crystal a může zvolit hybridní přístup kombinující koncepty Scrum, Kanban a XP.
Dynamická metoda vývoje systémů (DSDM)
Metoda dynamického vývoje softwaru (DSDM) vyhovuje projektům s přísnějšími plány a rozpočty. Často se zaměřuje na dodávání produktu v cyklech, zahrnujících postupný a iterativní vývojový přístup.
DSDM vám umožňuje navrhnout plán zahrnující průběžné, včasné dodávky produktů. Také upřednostňuje shromažďování zpětné vazby od zákazníků během procesu vývoje a ověřování, zda jsou požadavky splněny podle očekávání.
Vývoj řízený funkcemi (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:
- Vypracování modelu projektu
- Vytvoření seznamu funkcí, které mají být přidány do produktu
- Plánování podle funkce
- Navrhování produktu podle vlastností
- Sestavení produktu podle funkce
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 pohybovat se stabilně a dosahovat svých cílů bez potíží. Je vhodný pro větší týmy.
Vývoj řízený chováním (BDD)
Behavior Driven Development (BDD) je agilní metodika, která je orientována na chování. Jeho koncepty podporují spolupráci mezi členy týmu s nebo bez velkých technických znalostí vývoje softwaru.
Zahrnuje psaní testovacích případů a funkcí obsahujících požadavky projektu a normy pro přijetí, jak se systém musí chovat.
Tímto způsobem můžete lépe porozumět potřebám funkčnosti a snadno začít s projektem a předvídat další kroky a výsledky. BDD pomáhá týmům přesně komunikovat jejich 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 pracovních postupů a vzorů pro implementaci agilnosti na podnikové úrovni. Je to odlehčený rámec, který umožňuje centralizované rozhodování a pomáhá zvýšit efektivitu vývoje.
Tato agilní metodika přináší sílu DevOps a Lean, která organizacím umožňuje vytvářet inovativní produkty rychleji a ve vyšší kvalitě.
Velký Scrum (LeSS)
LeSS je agilní framework, který umožňuje škálování Scrumu na 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 návodů a pravidel. Je také známý pro svou jednoduchost, ale je účinný, protože pomáhá týmům dosáhnout lepší kvality produktu a uspokojit potřeby zákazníků.
Adaptivní vývoj softwaru (ASD)
ASD místo boje proti změnám používá koncept neustálého přizpůsobování se změnám. V ASD týmy používají Speculate, Learn and Collaborate, dynamický vývojový cyklus softwaru 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 iteruje a lze jej změnit, zatímco probíhá druhý cyklus. Zaměřuje se také na rychlou výrobu vysoce kvalitních produktů s nižšími náklady na údržbu.
Agilní řízení projektů
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í řízení projektů nabízí týmům mnoho výhod, jako je zrychlení rychlosti vývoje, přizpůsobení se trendům trhu a lepší spolupráce.
Mezi další agilní metodiky patří:
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ů, abychom jmenovali alespoň některé. A existuje mnoho agilních metodik, ze kterých si můžete vybrat na základě potřeb vašeho projektu. Projděte si tedy každý a rozhodněte se, co vašemu projektu vyhovuje nejvíce.
Dále se podívejte na online kurzy projektového řízení.