Scrum

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

V programování scrum (česky mlýn, skrumáž) je iterativní a inkrementální metodologie agilního vývoje softwaru používaná na řízení produktového vývoje. Definuje flexibilní, holistickou strategii produktového vývoje, kde vývojový team pracuje jako jednotka na dosažení společného cíle, zpochybňuje předpoklady "tradičního, sekvenčního přístupu" k vývoji produktu, a umožňuje týmům se samoorganizovat podpořením fyzické kolokace nebo blízké online spolupráce všech členů týmu, stejně jako denní ústní komunikaci všech členů týmu a disciplin v projektu.

Klíčový princip scrumu je jeho pochopení, že během projektu mohou zákazníci změnit názor o tom, co chtějí a potřebují (často zvané "souhrn požadavků") a že nepředvídané úkoly nelze jednoduše řešit tradičním předvídáním a plánováním. Scrum používá empirický přístup, podle kterého problém nelze zcela pochopit nebo definovat a proto se soustředí na maximální schopnost týmu rychle dodat a reagovat na nové požadavky.

Role[editovat | editovat zdroj]

Jsou 3 hlavní role a mnoho pomocných. Hlavní role se věnují produkci produktu (cílu projektu). Reprezentují scrum team. I když je jiné role možno objevit v reálných projektech, scrum nedefinuje jiné týmové role než ty, které jsou definované dále.

Vlastník produktu (product owner)[editovat | editovat zdroj]

Vlastník produktu reprezentuje zainteresované subjekty a je hlasem zákazníka. Je odpovědný za ujištění, že team do byznysu přidá hodnotu. Vlastník produktu píše články pro zákazníky (typicky zkušenosti uživatelů), hodnotí a přirazuje jim priority, a přidává je do produktového backlogu. Scrum týmy mají mít jednoho vlastníka produktu, tato role se nemá spojit se scrum masterem. Product owner má být na obchodní straně projektu, a nikdy nemá interagovat s členy týmu o technických aspektech vývoje. Tato role je stejná jako role customer representative (reprezentant klientů) v jiných agilních frameworcích.

Role product ownera v definici a komunikování o požadavcích produktu[editovat | editovat zdroj]

Komunikace je hlavní funkce product ownera. Schopnost vyjádřit priority a chápat členy týmu a stakeholdery jsou vitální pro řízení projektu správným směrem. Product owner propojuje komunikační mezeru mezi týmem a zainteresovanými subjekty.

Jako zástupce týmu, product owner má následující komunikační úkoly pro zainteresované subjekty:

  • demonstrovat řešeni pro klíčové stakeholdery, kteří nebyli na iteračním demu
  • ohlašovat uvedení nových verzí
  • komunikovat stav týmu
  • organizovat milníkové přehledy
  • vzdělávat v procesu vývoje
  • dohadovat priority, rozsah, financování a rozvrh
  • ujistit se, že produktové testy jsou viditelné, transparentní a jasné

Vývojový team[editovat | editovat zdroj]

Je odpovědný za dodání potenciálně použitelných inkrementů (potentially shippable increments - PSIs) produktu na konci každého sprintu (cíl sprintu). Team je složen z 3-9 jednotlivců, kteří dělají aktuální práci (analýza, design, vývoj, test, technická komunikace, dokument, atd.). Vývojové týmy jsou vícefunkční, se všemi dovednostmi vytvořit produktový inkrement. Vývojový team v skrumu je sebeorganizující, i když tady může být nějaký stupeň interakce s projektovým managementem (project management offices - PMOs).

Scrum master[editovat | editovat zdroj]

Scrum je usnadněný scrum masterem (mistrem), který je odpovědný za odstranění překážek teamu na dodání produktových cílů. Scrum master není tradiční team leader nebo projektový manažer, ale koná jako prostředník mezi teamem a jakýmikoli negativními vlivy. Scrum master zajišťuje, že scrum proces je použit tak, jak bylo naplánováno a členové týmu dodržují dohodnuté procesy. Často organizuje schůzky a povzbuzuje tým k zlepšení. Tato role se někdy označuje jako "team facilitator" na zdůraznění duální funkce.

Eventy (události)[editovat | editovat zdroj]

Sprint[editovat | editovat zdroj]

The scrum process

Sprint (nebo iterace) je základní jednotka vývoje ve scrumu. Sprint je časově omezená snaha, tedy je omezen na specifický čas. Doba je určena dopředu pro každý sprint a obvykle je to jeden týden až jeden měsíc, nejčastěji 2 týdny.

Každý sprint začíná eventem plánování sprintu, cílem kterého je definovat úkoly sprintu, kde je definována práce sprintu a odhadnut závazek pro cíl sprintu. Každý sprint končí recenzí sprintu (sprint review) a retrospektivou, kde je reportován progres pro stakeholdery a definují se úlohy na zlepšení pro další sprinty.

Scrum zdůrazňuje zpracovaný produkt na konci sprintu, který je opravdu hotový, v případě software to může znamenat, že software byl integrován, kompletně testován, zdokumentován a potenciálně může být dodán.

Události[editovat | editovat zdroj]

Plánování sprintu[editovat | editovat zdroj]

Na začátku sprintu, tým organizuje sprint planning event - plánovací událost:

  • vybrat jaká práce se udělá
  • připravit úkoly sprintu, které určí čas na úkoly pro celý tým
  • definovat a diskutovat kolik práce je třeba udělat během sprintu
  • 4-hodinový limit pro 2-týdenní sprint, poměrně pro jinou délku
    • v první půli se celý tým (vývojový tým, scrum master a product owner) dohodnou, které produktové položky ze zásobníku (backlog) budou v daném sprintu realizovat
    • v druhé půli vývojový tým urči práci (úlohy) potřebné na dodání položek backlogu a zapíše je do sprintového backlogu

Denní scrum[editovat | editovat zdroj]

Denní scrum v počítačové místnosti. Toto centralizované místo pomůže teamu začít včas.

Každý den během sprintu team organizuje denní scrum (nebo stand-up) se specifickými zásadami:

  • Všichni členové softwarového týmu přijdou připraveni.
  • Denní scrum začne přesně načas i když někteří členové chybí.
  • Denní scrum má proběhnout každý den na stejném místě a ve stejný čas.
  • Délka denního scrumu je omezena na 15 minut.
  • Každý je vítán, i když obvykle mluví jen teamové role scrumu.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Scrum (software development) na anglické Wikipedii.

Literatura[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]