Jednoduchý [But Comprehensive] Průvodce

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.