Scrum

V programování scrum (česky mlýn, skrumáž) je iterativní a inkrementální způsob řízení vývoje softwaru obvykle řazený mezi takzvané agilní metodiky. Definuje flexibilní, holistickou strategii produktového vývoje, kde vývojový tým 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 disciplín v projektu.

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

Role

Scrum rozlišuje tři hlavní role a mnoho rolí pomocných. Hlavní role se týkají vzniku produktu (cíli projektu) a dohromady se označují jako scrum team. V reálných projektech jsou i další role, scrum však definuje pouze tyto:

Vlastník produktu (product owner)

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

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

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

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)

Sprint

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

Plánování sprintu

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
  • 4hodinový 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čí práci (úlohy) potřebné na dodání položek backlogu a zapíše je do sprintového backlogu

Denní scrum

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

Reference

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

Literatura

Externí odkazy

Média použitá na této stránce

Daily sprint meeting.jpg
Autor: Klean Denmark, Licence: CC BY-SA 2.0
A daily sprint meeting.
Scrum process.svg
Autor: Lakeworks, Licence: CC BY-SA 4.0
The Scrum project management method. Part of the image is based on public domain graphics from Open Clip Art Library (openclipart.org).