• Nebyly nalezeny žádné výsledky

2.1 Metodika

2.1.3 Scrum

Jedná se o nejpopulárnější agilní metodiku, která se skládá ze sady událostí (neboli ceremonií), rolí, artefaktů a nejlepších praktik pro vývoj a organizaci projektu. Scrum je poměrně jednoduchý framework, který zajišťuje optimální spolupráci při budování softwaru, ale v mnoha případech je ohýbán různými směry podle potřeb jednotlivých projektů.

Obrázek 2: Princip metody Scrum (SCRUM.ORG, 2020)

Role

Metodika Scrum se skládá z několika rolí, které mají specifický účel během budování projektu. Důležitou vlastností všech zúčastněných rolí je sebeorganizace a schopnost pracovat v rámci projektu bez zásahu vnějších zdrojů. Scrum definuje tři základní role.

Vlastník produktu (Product Owner)

Nejdůležitější rolí z pohledu zákazníka je takzvaný „vlastník produktu“. Jedná se o roli, která zastupuje zákazníka. V některých případech je tato role zastoupena členem společnosti, která produkt vyvíjí. Vlastník produktu má na starosti zejména přípravu požadavků, které je zapotřebí vykonat. Dále akceptační kritéria, která definují body pro splnění požadavku a jeho uzavření. V neposlední řadě je vlastník produktu i povinen zodpovědět případné otázky ostatních rolí. Ve výjimečných případech, pokud je vlastník produktu technicky schopný, pomáhá i vybírat technologie, které by měly být implementovány.

Tým (Development Team)

Vývojový tým se skládá ze všech rolí nutných pro vývoj produktu. To znamená, že sem patří vývojáři, analytici, testeři a další, kteří technicky přispívají do budování projektu. Podstatou schopností vývojového týmu je jeho sebeorganizace. Budování produktu by mělo probíhat bez nutnosti zásahu externích rolí. Je samozřejmé, že netechnické otázky je nutné směřovat na vlastníka produktu nebo Scrum Mastera.

Scrum Master

Každý tým musí mít svého lídra, který zajišťuje, aby chod projektu byl hladký. V metodice Scrum tuto roli obstarává Scrum Master. Jeho hlavní povinností je správa nástroje pro agilní vývoj jako je například „JIRA“ a moderování všech událostí, které jsou obsaženy v této metodice. V některých případech obstarává roli Scrum Mastera projektový manažer. Toto běžně platí pro velké organizace, které používají agilní vývoj na části svých projektů.

Důležitou součástí práce Scrum Mastera je i komunikace s vlastníkem produktu o organizaci a správě.

Události

V agilní metodice Scrum se repetitivně koná několik událostí, které tvoří dohromady průběh celého procesu vývoje produktu. Každá z událostí má svou specifickou roli a váhu. Mnoho společností některé z událostí vynechávají anebo modifikují pro potřeby projektu v daném prostředí nebo kontextu.

Stand-up (Daily Scrum)

Jedná se o každodenní událost, kde jednotliví členové projektu probírají aktuální situaci.

Každý člen zmíní, jaké činnosti dělal předchozí den, které bude dělat dnes a zda ho v řešení blokují některé závislosti. Toto setkání trvá zhruba 10-15 minut, ale velmi záleží na rozsahu

projektu, ale jen po dohodě všech členů. Stand-up je moderován Scrum Masterem, který by měl mít přehled o situaci na projektu.

Sprint

Hlavní událostí každého projektu, který využívá metodiku Scrum je takzvaný Sprint. Jedná se o iteraci v rámci celého průběhu vývoje produktu. Tato iterace probíhá v rozmezí 2-4 týdnů. Součástí iterace je přírůstek funkcionality pro výsledný produkt. Podstatnou informací je, že na konci každé iterace by měl být funkční celek produktu, což znamená, že vybrané úkoly by měly tvořit propojení částí produktu. V některých případech je délka iterace proměnlivá. To se stává zejména v situaci, kdy se objeví nečekaná událost na projektu, jako je kritický výpadek nebo zásadní strukturální změny.

Plánování sprintu (Sprint Planning)

Další z událostí je plánování sprintu. Členové týmu se sejdou a domlouvají, které požadavky a úkoly provedou další iteraci. Klíčovou roli zde hraje vlastník produktu, který je zodpovědný za výběr nejprioritnějších úkolů. Součástí bývá i oprava chyb z předchozí iterace a další možná vylepšení technických prvků produktu. Poté, co jsou všechny vybrané požadavky odsouhlaseny, začíná další iterace.

Demo (Sprint Review)

Jedná se o ukázku vytvořené části produktu za předchozí iteraci. Vývojový tým předvádí hotovou práci, kterou vlastník produktu schvaluje a případně komentuje vylepšení, která je zapotřebí vykonat. Zákazníkovi je dodán takzvaný „inkrement“, neboli přírůstek, který by měl být plně funkční a měl by splňovat akceptační kritéria vedená v seznamu požadavků.

Retrospektiva (Sprint Retrospective)

Méně častou událostí je i retrospektiva. Během setkání členové týmu diskutují, jaké věci by bylo potřeba změnit. Každý z členů si připraví seznam věcí, které chce do projektu přidat (Start), zachovat (Continue) nebo zrušit či přerušit (Stop). Jednotlivé seznamy se poté kontrolují a porovnávají s předchozí retrospektivou, kde se hledají rozdíly a možná vylepšení. Tato událost by měla probíhat jednou za iteraci, avšak velmi častým úkazem je, že týmy organizují retrospektivu v delších intervalech, například jednou za tři sprinty. Je to z toho důvodu, že pokud není rozsáhlý tým, tak se uvedené seznamy vylepšení nemění.

Artefakty

Definují jednotlivé „nástroje“, které jsou potřeba k vedení metodiky Scrum. Úkolem je zejména transparentnost a souhrnné porozumění pro všechny členy projektu. Agilní metodika Scrum obsahuje tři artefakty, které zpravidla spravuje Scrum Master. Ačkoliv častou variantou správce je i vlastník produktu nebo lídr vývojového týmu.

Produktový seznam (Product Backlog)

Takzvaný „backlog“ je místo, kde jsou uchovány všechny úkoly, požadavky a uživatelské příběhy („user stories“). K úspěšnému dokončení projektu je potřeba splnit všechny uvedené úkoly, které jsou zpravidla zadávány vlastníkem produktu, včetně akceptačních kritérií. Vlastník produktu by měl úkoly seřadit podle jeho priority. Pozdější správu má na starosti Scrum Master, který dohlíží, aby vývojový tým a vlastník produktu splnili všechny potřebné akce k dokončení.

Nástěnka iterace (Sprint Board)

„Sprint board“ je část úkolů vybraná realizačním týmem pro aktuální iteraci vývoje produktu. Jednotliví členové týmu si postupně rozebírají úkoly a jejich cílem je dokončit všechny požadavky v termínu iterace. Nástěnka je rozdělena do několika sloupců, mezi kterými lze jednotlivé úkoly přesouvat. V základní definici jsou sloupce rozděleny na:

Připravené (ToDo), Ve vývoji (In Progress) a Dokončené (Done). V praxi se ovšem přidávají i další sloupce pro rychlou orientaci, v jaké fázi se úkol nachází. Příkladem může být testování nebo kontrola kódu (Code Review).

Inkrement

Jedná s o přírůstek všech dokončených úkolů během iterace. Tyto úkoly dávají dohromady celek, který ve spojení s aktuálním produktem tvoří funkční řešení. Často se zde přidávají i opravy chyb v produktu a technická vylepšení, která jsou potřeba pro hladký průběh a zvýšení kvality výsledného produktu.

Zdroje: (SCRUM.ORG, 2020), (SCHWABER, 2004), (KNIBERG, 2015)