Story pointy — jsou relativní jednotky měření složitosti úkolů v agilních metodologiích vývoje. Na rozdíl od hodin, story pointy zohledňují nejen čas, ale také složitost, rizika a nejistotu úkolu. Podle údajů Scrum.org, 2023 týmy používající relativní hodnocení ve story pointech o 25% méně často zmeškají sprintové termíny ve srovnání s týmy hodnotícími v hodinách.
Hlavní body
Story pointy — jsou metriky složitosti úkolu používané v Scrumu a dalších agilních metodologiích. Tým hodnotí každý úkol ne v hodinách, ale v relativních jednotkách: „tento úkol je dvakrát složitější než referenční“. Tento přístup neutralizuje rozdíl v rychlosti různých vývojářů a zaměřuje se na složitost.
Pojem story point vznikl na začátku 21. století s popularizací Scrumu. Jedním z prvních, kdo metodu popsal, byl Ron Jeffries v rámci Extreme Programming (XP). Myšlenkou bylo odklonit se od hodnocení v „člověkohodinách“, které je vždy nepřesné, k relativní složitosti, kterou tým určuje kolektivně. Dnes jsou story pointy průmyslovým standardem pro agilní týmy.
Při hodnocení ve story pointech tým zohledňuje tři faktory: objem práce (množství kódu, obrazovek, logiky), složitost (technické výzvy, nové technologie) a nejistotu (nejasné požadavky, rizika). Jeden story point může znamenat „jednoduchý úkol bez rizik“ a 8 — „složitý úkol s vysokou nejistotou“.
Výběr stupnice story pointů ovlivňuje přesnost hodnocení a pohodlí plánování. Nejoblíbenější stupnicí je Fibonacciho posloupnost, ale existují i alternativy.
| Stupnice | Hodnoty | Výhody | Nevýhody |
|---|---|---|---|
| Fibonacci | 1, 2, 3, 5, 8, 13, 21 | Přirozené zvýšení rozptylu u velkých úkolů | Složitá pro nové týmy |
| Lineární | 1, 2, 3, 4, 5 | Jednoduchá a srozumitelná | Žádný rozptyl pro velké úkoly |
| Mocninná | 1, 2, 4, 8, 16, 32 | Maximální rozptyl pro velké úkoly | Velké úkoly těžko odlišitelné |
| T-Shirt | S, M, L, XL | Rychlé hrubé hodnocení | Nepřesná, vyžaduje konverzi |
Fibonacciho posloupnost nebyla vybrána náhodně. Rozdíl mezi 1 a 2 je minimální (50%), ale mezi 13 a 21 — významný (62%). To odráží realitu: malé úkoly jsou hodnoceny přesněji, velké — s větším rozptylem. Když je úkol hodnocen na 21 story pointů, tým chápe: „nevíme, jak dlouho to potrvá, ale určitě déle než 13“. Fibonacciho stupnice zabraňuje falešné přesnosti.
Aby stupnice fungovala, tým se dohodne na referenci: „úkol X — 1 story point“. Obvykle se jako reference volí jednoduchý, dobře známý úkol: „přidat textové pole na obrazovku“ nebo „opravit bug typu překlep“. Všechny ostatní úkoly jsou hodnoceny relativně k referenci. Bez reference story pointy ztrácejí smysl — každý chápe jednotku jinak.
Velocity (rychlost týmu) — průměrný počet story pointů, které tým dokončí za jeden sprint. Toto je klíčová metrika pro predikci termínů projektu.
Velocity se počítá na základě dokončených úkolů: sečtou se story pointy všech úkolů, které tým stihl dokončit (definition of done splněno). Nedokončené úkoly se nezohledňují. Pro přesnost se bere průměr posledních 3-5 sprintů. Například, pokud tým dokončil 20, 22, 18 a 24 story pointů za poslední 4 sprinty, velocity = 21 sp.
Se znalostí velocity a celkového objemu backlogu ve story pointech lze predikovat počet sprintů do vydání. Například, pokud je v backlogu 210 story pointů a velocity = 21, je potřeba 10 sprintů. Toto je hrubá predikce, která se během práce zpřesňuje. Důležité: velocity je průměr, ne závazek. Plánujte podle dolní hranice (18 sp), ne podle průměru.
Velocity nelze zvýšit příkazem — je to symptom zdraví procesů. Udržitelný růst velocity se dosahuje: snižováním technického dluhu, zlepšováním procesů code review, snižováním přepínání kontextu, automatizací testování a CI/CD. Důležité: velocity různých týmů nelze srovnávat — každý tým definuje story pointy po svém.
Story pointy a hodiny mají různé cíle a volba mezi nimi závisí na kontextu. Zkušené týmy používají oba přístupy pro různé úkoly.
Story pointy jsou nepostradatelné pro plánování sprintů: nezávisí na tom, kdo úkol provádí. Junior může udělat 2 sp denně, senior — 4 sp, ale hodnocení úkolu zůstává 2 sp pro oba. Story pointy umožňují sledovat týmovou produktivitu bez srovnávání vývojářů. To snižuje politický tlak a zlepšuje atmosféru v týmu.
Hodiny jsou potřebné pro externí závazky: smlouvy, rozpočty, zprávy pro klienta. Klient chce vědět ne „8 story pointů“, ale „3 týdny“. Pro konverzi story pointů na hodiny se používá historical conversion rate: tým ví, že 1 sp = přibližně 4 hodiny práce. Konverze musí být transparentní a založená na datech, ne na domněnkách.
Mnoho týmů používá kombinovaný přístup: úkoly jsou hodnoceny ve story pointech pro plánování sprintu, poté je manažer převádí na hodiny/dny pro externí reporting. Je důležité nemíchat dva systémy v jednom procesu: buď hodnotíte ve story pointech a odvozujete čas z velocity, nebo hodnotíte přímo v hodinách.
Zavádění story pointů je často provázeno chybami, které ruší výhody relativního hodnocení. Zde jsou ty nejčastější.
Nejčastější chyba — tým se dohodne: „1 sp = 4 hodiny“. V tomto případě story pointy ztrácejí smysl a mění se v hodiny pod jiným názvem. Story pointy musí být relativní, nezávislé na čase. Pokud je úkol A dvakrát složitější než úkol B, dostává 2 sp, bez ohledu na to, kolik hodin zabere.
Když je úkol hodnocen po jeho provedení — to není hodnocení, ale konstatování. Story pointy musí být přiděleny před zahájením práce, v okamžiku maximální nejistoty. Post-factum hodnocení zkresluje velocity a nepřináší užitek pro plánování. Navíc vytváří falešný pocit přesnosti.
Srovnávání velocity týmu A a týmu B — nesmyslné cvičení. Každý tým definuje referenci a stupnici po svém. Pro jeden tým je 1 sp jednoduchý úkol na hodinu, pro druhý — na den. Lze srovnávat pouze velocity stejného týmu v dynamice: roste nebo klesá.
Když různé úkoly se stejnou složitostí dostávají různé story pointy a složitější — méně, stupnice se rozbíjí. Tým musí pravidelně kalibrovat stupnici: každých 3-6 sprintů retrospektivně kontrolovat, jak hodnocení odpovídala skutečné složitosti. To zlepšuje konzistenci hodnocení.
Často kladené otázky
Story pointy nemají pevný ekvivalent v hodinách. Je to relativní jednotka: 1 sp = složitost referenčního úkolu. Pro konverzi na hodiny použijte historical conversion rate vašeho týmu: vydělte průměrný počet odpracovaných hodin za sprint velocity. Obvykle 1 sp = 4-8 hodin, ale to je individuální pro každý tým.
Ano, story pointy lze používat v Kanbanu, ale s výhradami. V Kanbanu nejsou pevné sprinty, proto se velocity počítá ne za sprint, ale za týden nebo měsíc. Kanbanové týmy často místo story pointů používají Cycle Time — dobu průchodu úkolu od začátku do konce. Volba závisí na specifiku týmu.
Pokud se hodnocení rozcházejí (jeden dává 3 sp, druhý — 13), je to signál, že úkol není dobře pochopen. Rozložte úkol na menší části. Diskutujte rizika a nejistoty, které vidí různí vývojáři. Pokud je úkol velký — ohodnoťte jej jako Spike (průzkum na 2-4 dny) místo story pointů.
Přechod trvá 3-6 sprintů. Začněte výběrem stupnice (Fibonacci — safest choice) a určením referenčního úkolu. Proveďte 2-3 Planning Poker sezení. Po každém sprintu počítejte velocity. Nepřevádějte story pointy na hodiny — nechte tým zvyknout si na nový systém. Po 3 sprintech uvidíte, o kolik se plánování zlepšilo.
Ne, hodnocení se nemění. Story pointy jsou předběžné hodnocení složitosti provedené před zahájením práce. Po provedení úkolu zůstává hodnocení stejné, i když skutečné úsilí bylo jiné. Změna hodnocení post-factum zkresluje statistiky a zbavuje predikci smyslu. Analyzujte odchylky na retrospektivách, ale neměňte hodnocení zpětně.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také