Agilní metodiky se v současném softwarovém vývoji těší velké oblibě, a to díky své rychlosti, adaptabilitě, kontinuální zpětné vazbě a schopnosti učení.
Zásadní důraz kladou na uspokojení potřeb zákazníků, což je klíčové pro úspěch každé firmy.
V prostředí silné konkurence je nutné dodávat špičkové produkty včas a zároveň plně zohledňovat požadavky a očekávání zákazníků.
Tradiční přístupy se však zdají být méně flexibilní a pomalejší v porovnání s tímto moderním konceptem, který akcentuje rychlost a přínos hodnoty.
Proto agilní myšlení v dnešní době nabývá na významu a stává se stále populárnější.
Z průzkumů vyplývá, že 75 % společností zaznamenalo zrychlení dodávání softwaru díky přechodu na agilní přístupy, přičemž 55 % z nich se potvrdilo zvýšení produktivity.
V tomto článku se podrobněji zaměříme na agilní frameworky a pomůžeme vám s výběrem toho nejvhodnějšího pro váš tým.
Pojďme se do toho ponořit!
Co přesně znamená pojem Agile?
Agile ve vývoji softwaru představuje soubor praktik, metod a principů, které mají za cíl urychlit dodávání maximální hodnoty s minimem komplikací.
Agilní týmy postupují při plnění úkolů v menších, postupných krocích, průběžně vyhodnocují požadavky, výsledky a plány projektu. Tím umožňují rychlou reakci na změny a neustálé poskytování optimální hodnoty zákazníkům. Metodiky agilního přístupu zahrnují stálé zlepšování s cykly zpětné vazby.
Agile je především způsob myšlení, který se řídí 12 principy shrnutými v Agilním manifestu:
- Zajištění spokojenosti zákazníka skrze rychlé dodávání kvalitního softwaru
- Flexibilní reakce na změny v kterékoli fázi vývoje
- Úzká spolupráce mezi vývojáři a zainteresovanými stranami (zákazníky)
- Rychlé dodávání funkčního softwaru
- Zapojení motivovaných a důvěryhodných jedinců do agilního týmu
- Preferování přímé komunikace
- Měřítkem pokroku je dodání kvalitního a funkčního softwaru
- Udržitelné tempo rozvoje a zachování konstantní rychlosti
- Důraz na kvalitní design a technickou dokonalost
- Jednoduchost
- Samoorganizující se týmy
- Nepřetržité zlepšování prostřednictvím hodnocení výkonu
Proč je výhodné používat agilní přístup?
Agilní metodologie přináší týmům při vývoji softwaru celou řadu výhod, mezi které patří:
- Spokojenost zákazníka: Agilní týmy aktivně zapojují zákazníky do procesu vývoje, pravidelně je informují o postupu a získávají zpětnou vazbu. Tím je zajištěno, že každý úkol bude dokončen v souladu s požadavky zákazníků a výsledný produkt bude kvalitní a přizpůsobený jejich potřebám. Nejenže se zvyšuje spokojenost zákazníků, ale také loajalita.
- Vysoká kvalita produktu: Agilní metodologie využívá iterativní přístup k vývoji softwaru, což znamená, že všechny procesy a úkoly se v každé fázi a iteraci zlepšují, a tím se dosahuje vynikající kvality produktů.
- Lepší komunikace: V agilním prostředí je preferována osobní komunikace a nepřetržitá interakce, což pomáhá předcházet nejasnostem a podporuje týmovou spolupráci. Denní schůzky zajišťují, že každý člen týmu jasně chápe finální cíl a úkoly v každé fázi.
- Zefektivněný pracovní postup: Agilní týmy pracují v kratších, pevně stanovených časových úsecích a zapojují všechny členy týmu, od vývojářů a manažerů až po klienty, s naprostou transparentností. To usnadňuje přidělování zdrojů, hodnocení výkonu a předvídání nákladů. Každý úkol a projekt tak probíhá podle plánu a v rámci stanoveného času i rozpočtu.
- Větší flexibilita: Na rozdíl od tradičních metod dokážou agilní týmy rychle a bez problémů reagovat na jakékoli změny v libovolné fázi životního cyklu vývoje softwaru.
- Rychlejší uvedení produktu na trh: Díky agilním metodikám dokážou týmy urychlit vývoj a uvedení produktu na trh bez kompromisů v oblasti kvality nebo rozpočtu. Rychlejší uvedení na trh vám zajistí konkurenční výhodu.
- Snížení rizik: Stav a kvalita projektu jsou pravidelně vyhodnocovány, což poskytuje lepší přehled o projektu i všech zdrojích, od chyb až po výkon členů týmu. Tímto způsobem lze včas identifikovat a řešit problémy a minimalizovat rizika.
Nyní si pojďme objasnit, co jsou agilní frameworky a jaké jsou jejich typy.
Co si představit pod pojmem agilní framework?
Agilní framework představuje specifický přístup k vývoji softwaru, který vychází z filozofie Agilního manifestu a agilních hodnot. Zahrnuje lidi, úkoly a nástroje pro plánování, řízení, spolupráci a provádění práce s důrazem na agilitu, flexibilitu, iterativní vývoj, upřednostňování lidí před procesy a neustálou zpětnou vazbu.
Agilní frameworky jsou oproti tradičním metodám, jako je Waterfall nebo Big Bang, lehčí a kladou důraz na poskytování funkčního softwaru s minimem pravidel a dokumentace.
Existuje mnoho různých agilních frameworků, které týmy při vývoji softwaru využívají. Každý framework je jedinečný, ale všechny sdílí stejný cíl – dosáhnout spokojenosti zákazníků rychlejší produkcí a dodáváním kvalitního softwaru. Všechny také dodržují základní fáze řízení projektů a procesy pro jejich dokončení.
Původně byl agilní přístup vyvinut pouze pro vývoj softwaru, ale postupně se rozvinul tak, aby vyhovoval požadavkům různých týmů a odvětví. Proto se vyvíjejí i agilní frameworky a nyní máme k dispozici širokou škálu těchto metod.
Nejpopulárnější a nejčastěji používané agilní frameworky
Podívejme se na některé oblíbené agilní frameworky používané při vývoji softwaru – Scrum, Kanban, Extreme Programming, FDD, Crystal, DSDM a další.
Scrum
Nejpopulárnější a nejrozšířenější agilní framework – Scrum – je normativní přístup, který zahrnuje řízení projektů v malých krocích a iteracích. Podle statistik jej používá 66 % agilních týmů.
Scrum je časově omezený a zahrnuje krátké vývojové cykly, tzv. sprinty. Projekt je rozdělen do několika sprintů pro snazší plánování a realizaci. Scrum se dá využít k vývoji komplexního softwaru a umožňuje týmům dodávat produkty v nejvyšší kvalitě.
Členové scrum týmu jsou rozděleni do tří hlavních rolí:
- Scrum master, který projekt řídí a pomáhá týmu osvojit a pochopit Scrum
- Product owner, který stanovuje priority úkolů a práce
- Vývojáři, kteří tvoří produkt
Scrum týmy se každý pracovní den účastní 15minutové schůzky, na které hodnotí odvedenou práci, synchronizují aktivity, kontrolují pokrok, plánují den a případně se přizpůsobují. Dokončení projektu obvykle trvá 2–4 týdny sprintů. Poté se projekt znovu vyhodnocuje, hledají se oblasti pro zlepšení a stanovují se priority.
Scrum týmy používají Scrum Board pro seskupování úkolů podle celkového pokroku. Postup je následující:
- Product owner vytvoří seznam všech úkolů, které je třeba udělat, tzv. Product Backlog.
- Scrum tým si vybere několik položek z horní části seznamu a vytvoří plán provedení, tzv. Sprint Backlog. Tým poté pracuje na splnění těchto položek.
- Každý den probíhá denní Scrum schůzka, na které se kontroluje postup práce a synchronizace.
- Scrum Master dohlíží na zaměření týmu a jeho výkon.
- Po každém sprintu probíhá hodnocení a zpětná vazba (tzv. „sprint retrospective“), a závěry se zapracují do dalšího sprintu.
Výhody:
- Scrum je snadno škálovatelný a sledovatelný
- Umožňuje týmům včas identifikovat problémy a napravit je
- Podporuje efektivní spolupráci mezi týmy i jednotlivými členy
- Umožňuje týmům dodávat výsledky předvídatelně a rychle
- Je flexibilní a adaptabilní na měnící se potřeby
Kdy používat Scrum: Nejlepší je používat Scrum v případech, kdy je cílem projektu vytvořit konkrétní produkt, nikoliv službu. Je vhodný spíše pro menší organizace. Kromě vývoje softwaru se dá použít i v dalších oblastech, jako je design, marketing atd.
Kanban
Slovo „Kanban“ je japonský termín pro kartu nebo vizuální signál.
Kanban se rovněž zaměřuje na efektivní spolupráci týmů a neustálé dodávání kvalitních softwarových produktů. Jeho specifickým rysem je vizuální přístup k řízení tvorby produktu. Kanban funguje na šesti základních principech:
- Vizualizace pracovního postupu
- Řízení toku
- Omezení rozpracovaných úkolů
- Spolupráce a neustálé zlepšování jako celku
- Vytvoření explicitních procesních pravidel
- Implementace zpětnovazebních smyček
Základním prvkem tohoto agilního rámce je Kanban deska. Ta umožňuje vizuální zobrazení veškerého postupu a aktivit agilního týmu pomocí sloupců pro jednotlivé procesy (např. Hotovo, V procesu, Čeká).
Agilní tým vytváří pro každý projekt nebo úkol kartu s bohatými informacemi, jako je popis úkolu, jeho stav, osoby, které mají úkol na starosti, termíny, požadované výstupy, zdroje a další podrobnosti. Tým posouvá karty na desce zleva doprava a tím ukazuje stav práce.
Výhody:
- Zlepšení přehledu o úkolech a jejich stavu díky „kartám“
- Zefektivnění projektů
- Zvýšení transparentnosti a spolupráce, díky čemuž všichni mají stejné informace
- Umožňuje řídit a omezovat rozpracované úkoly (množství práce) a zároveň průběžně plnit úkoly
- Zaměření na dobu trvání cyklu, tj. čas potřebný k přesunutí úkolu od nevyřízeného po hotový stav
- Vyšší flexibilita při přidávání a upřednostňování položek, kdykoli je potřeba
- Pomáhá najít nejlepší pracovní postup pro tým pro efektivnější dosažení cíle
Kdy používat Kanban: Kanban má kořeny ve výrobě, ale hojně se využívá i ve vývoji softwaru, stejně jako v dalších projektech, jako je tvorba obsahu, HR, marketing atd. Nejvhodnější je pro agilní procesy, které procházejí drobnými změnami. Skvěle se hodí i pro týmy, které potřebují rychle reagovat na požadavky a zůstat soustředěné.
Extrémní programování (XP)
Extrémní programování (XP) je agilní framework šitý na míru programátorům. Namísto postupných kroků se zaměřuje na průběžné dodávání a rychlost. Cílem XP je najít nejjednodušší metodu, která bude fungovat při vývoji produktu, bez přílišného důrazu na dlouhodobé vize, ale s akcentem na spokojenost zákazníků.
Řídí se souborem zásad:
- Jednoduchost
- Respekt
- Zpětná vazba
- Komunikace
V tomto agilním rámci týmy úzce komunikují s klientem, aby pochopily, jak by měl finální produkt vypadat a jaké jsou jeho nejcennější vlastnosti. Tyto informace se pak používají pro plánování a implementaci při vývoji softwaru. Tým také často získává zpětnou vazbu, aby se mohl neustále zlepšovat a zajistit plnění požadavků.
Tento přístup umožňuje menším týmům produkovat funkční software v malých krocích v určitých intervalech (podobně jako Scrum). Dokončení projektu pomocí XP obvykle trvá 1–3 týdny. Změny se dají snadno začlenit, i v pozdějších fázích SDLC. Softwarový produkt je testován od nejranějších fází s důrazem na kvalitu produktu.
Mezi jeho specifické charakteristiky patří párové programování pro vyšší kvalitu, testy řízený vývoj, nepřetržitá integrace a aktivní zapojení zákazníků v každé fázi.
Výhody:
- Jednodušší psaný kód a minimum dokumentace
- Lepší přehled o procesu a vývojovém cyklu
- Rychlé výsledky díky neustálému testování
- Problémy řeší celý tým, což podporuje zapojení, komunikaci a spolupráci
- Vyšší efektivita a produktivita s menším počtem nejasností a konfliktů
Kdy používat XP: XP je nejvhodnější pro menší týmy, jejichž členové mají zkušenosti s XP, mají dobré komunikační dovednosti a dokážou neustále spolupracovat se zainteresovanými stranami i z jiných oddělení, než je IT.
Vývoj řízený funkcemi (FDD)
Feature-Driven Development je agilní framework, který začíná s komplexnějším modelem vývoje softwaru, ale s postupem projektu se stává podrobnějším. Jeho cílem je vyvíjet fungující softwarové produkty rychle a průběžně.
Využívá koncept JEDI, což znamená „Just Enough Design Initially“ (zpočátku stačí design), nikoliv JEDI ze Star Wars. Doufám, že jsem vás tím nezklamal 😊.
Fáze FDD agilního rámce jsou:
- Získání požadavků a vytvoření celkového modelu rozvoje
- Vytvoření sady funkcí pro software
- Plánování podle funkcí
- Navrhování podle funkcí
- Vývoj podle funkcí
FDD využívá přibližně dva týdny přírůstků a iterací a zároveň se zaměřuje na plánování, návrh a vývoj podle jednotlivých funkcí. Přístup zaměřený na funkce pomáhá dodávat produkty s bohatými funkcemi, které splňují požadavky klienta. Pro každou softwarovou funkci se vytváří samostatný plán návrhu a vývoje. To vyžaduje důkladnou dokumentaci.
Výhody:
- Snadno škálovatelný od menších týmů až po velké projekty
- Pomáhá týmům vytvářet funkčně bohatý software, který si koncoví uživatelé zamilují
- Rychlejší vývoj a dodávání
- Nepřetržité iterace pro zlepšení kvality produktu
Kdy používat FDD: Je vhodný pro týmy s pokročilými schopnostmi v oblasti plánování a návrhu.
Crystal
Rámec Crystal Agile je odlehčený model vývoje softwaru zaměřený na lidi, komunitu, komunikaci, dovednosti a talenty. Upřednostňuje interakce mezi členy zapojenými do projektu více než procesy a nástroje, což je jeden ze základních principů agilního přístupu.
Crystal umožňuje týmům dodávat software často a včas, vyžaduje větší zapojení uživatelů a odstraňování překážek. Je flexibilní, protože považuje každý projekt za jedinečný a umožňuje týmům rozvíjet si vlastní postupy a adaptovat se. Projekty se dělí na kategorie podle velikosti týmu, priorit a důležitosti systému. Tento rámec zahrnuje:
- Crystal Clear pro týmy do 8 členů
- Crystal Yellow pro týmy o 10–20 členech
- Crystal Red pro týmy o 20–50 členech
- Crystal Orange pro týmy o 50–100 členech
Každý typ modelu Crystal má svůj vlastní agilní framework. Jeho specifikem je důraz na komunikaci mezi každým členem projektu. Díky neustálé komunikaci a zpětné vazbě je efektivita a kvalita finálního produktu na vysoké úrovni, což zajišťuje spokojenost klienta.
Výhody:
- Zlepšení spolupráce, transparentnosti a důvěry mezi členy týmu
- Rozvoj dovedností
- Rychlé dodávání softwaru
- Snížení komplikací
Kdy používat Crystal: Je to nejlepší volba pro týmy, které pracují na různých místech a vyžadují efektivní komunikaci.
Dynamická metoda vývoje systému (DSDM)
DSDM, která vznikla v 90. letech minulého století, se zaměřuje na rychlé dodávání softwarových produktů. Od té doby se vyvinula a nabízí více možností, jako je větší zapojení uživatelů, integrované testování a intenzivnější spolupráce mezi zainteresovanými stranami s cílem naplnit obchodní hodnoty a potřeby.
Tento agilní framework se zaměřuje na všechny fáze projektu, od prvotního konceptu až po finální dodání. Zahrnuje úpravy a umožňuje zapracování změn kdekoli v SDLC. Podobně jako jiné frameworky, i DSDM využívá sprinty a dá se kombinovat s XP a Scrum.
Výhody:
- Lepší kontrola a kvalitní produkce
- Přizpůsobení obchodním potřebám
- Zlepšení spolupráce prostřednictvím jasné a průběžné interakce
- Iterativní vývoj a rychlé dodávání
Kdy používat DSDM: Pro organizace, které vyžadují rychlé dodávání softwaru a flexibilitu při zapracovávání změn i po dodání, dle požadavků klienta.
Další frameworky
Kromě výše uvedených existují další důležité agilní frameworky:
Rapid Application Development (RAD): RAD vznikl v 80. letech a několik agilních frameworků se jím inspirovalo. RAD zahrnuje prototypování namísto detailního plánování a rychlé, nepřetržité iterace, tzv. sprinty.
Adaptivní vývoj softwaru (ASD): Vychází z RAD a zaměřuje se na koncové uživatele softwaru. Podporuje transparentnost a neustálou komunikaci mezi vývojovým týmem a klientem a zahrnuje adaptivní přístup k vývoji softwaru s neustálým učením a spoluprací.
Disciplined Agile (DA): DA zahrnuje SDLC se zaměřením na učení a upřednostňování uživatelů. Je vhodný pro větší týmy a vzdálené pracovníky.
Scaled Agile Framework (SAFe): Používá prvky Scrumu, XP a Kanbanu a kombinuje je s agilními, DevOps a Lean filozofiemi. Vytváří model, který může dobře fungovat pro velké agilní týmy.
Large-Scale Scrum (LeSS): Využívá základy Scrumu a vztahuje je na různé týmy. Je užitečný pro týmy, které pracují na stejném softwarovém produktu nebo hodnotovém toku. Jedná se o odlehčenou variantu pro SAFe.
Lean Software Development (LSD): Zaměřuje se více na principy: rychlé dodávání, eliminace plýtvání, odkládání rozhodnutí, neustálé učení, posilování týmů, dosažení úplné viditelnosti a budování integrity. LSD se snadno škáluje a přizpůsobuje, a usnadňuje spolupráci zaměstnanců.
Závěrem: Jaký agilní framework si tedy vybrat?
Po seznámení s výše uvedenými agilními frameworky můžete být zmateni a nevíte, který si vybrat pro váš proces vývoje softwaru.
Protože žádný agilní framework není univerzálně nejlepší a neexistuje žádné obecně platné pravidlo, volba jednoho z nich zcela závisí na několika faktorech – velikosti vaší organizace, její agilní vyspělosti, požadavcích klientů, dostupných zdrojích a vašem produktovém portfoliu.
Vyberte si tedy agilní framework, který nejvíce vyhovuje vašim parametrům, a vyzkoušejte si agilní přístup v praxi a využijte jeho výhody v celém SDLC.
Nyní se můžete podívat na některé z nejlepších scrumových nástrojů pro malé a střední podniky.