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 

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 

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

Literatura 
 "The Scrum Papers: Nut, Bolts, and Origins of an Agile Framework" (Jeff Sutherland, www.Scruminc.com, April 2, 2012): https://web.archive.org/web/20150814201800/http://jeffsutherland.com/ScrumPapers.pdf
 "Story Points: Why are they better than hours?" (Jeff Sutherland, www.Scruminc.com, September 30, 2012) http://scrum.jeffsutherland.com/2010/04/story-points-why-are-they-better-than.html

Externí odkazy 
 
 Agile Alliance's Scrum library
 A Scrum Process Description by the Eclipse Process Framework (EPF) Project

Agilní metodiky vývoje softwaru
Management
Výroba
Řízení projektů
Softwarové inženýrství