Odhadování

Podle Mitch Lacey.Vlastník, Mitch Lacey & Associates, Inc., konzultační společnost se specializací na zavádění účelných vylepšení a vylepšení typu scrum.

Leden 2012

Mitch Lacey popisuje problémy kolem odhadu softwarového projektu a poskytuje tipy a triky pro použití dvou metod odhadu softwaru agile při odhadu projektů.

Platí pro

Správa životního cyklu aplikací; server Team Foundation Server

Obsah

  • Úvod

  • Proč je odhad složitý

  • Techniky odhadu

  • Body příběhu jako jednotka měření

  • Plánovací poker

  • Odhad stěny

  • Odhad

  • Stanovení priority

  • Závěr

Odhad práce, která je tvůrčí a nepředvídatelná, je jednoduše těžký.Volba způsobu provedení může být stejné hodnocení.Fred Brooks to vystihl nejlépe: „Je velmi obtížné riskovat práci snahou o vášnivou a přesvědčivou obhajobu odhadu, který nevychází z žádné kvantitativné metody a ne podpořen pouze malým množstvím dat a hlavně shrbenými zády manažerů.“

Dosud jsme vyzváni k ohlášení odhadů termínů dokončení softwarových projekty předem – a přes veškeré naše úsilí připomenout vedení, že tyto odhady jsou hrubé, příliš často se všechny naše počáteční odhady stávají závazky.

V tomto článku ukážu, proč je náročné odhadnout projekty dopředu, jakou pomoc nabízí agilní software a jak odhadovat vás produktový backlog pomocí plánovacího pokeru a story bodů.

Proč je odhad složitý

Ve většině projektů jsme žádáni o předběžný odhad.Pokud chcete proč se jedná o problém, je třeba prozkoumat kužel nejistoty, který představil Barry Boehm v roce 1981 a Steve McConnell znovu představil v roce 1997 ve své knize Software Project Survival Guide (Příručka životaschopnosti softwarového projektu).

Kuželový nejistoty

Kužel ukazuje, že máme nejvíce nejistoty na začátku každého projektu (odchylka v rozsahu 4x až 0,25x).Tato odchylka znamená, že odhadujeme jednoletý rok by mohl ztratit smysluplný směr od 3 do 48 měsíců.Při spuštění každého projektu nastává čas, kdy jsme si nejméně jistí o části projektu, a také kdy jsme vyzvání k předložení odhadů, které jsou velmi přesné.

Ve společnosti Agile se snažíme se přesunout z nejistoty do jistoty v tak krátkém období, jak je to jen možné.To lze provést maximalizací včasného studia systému a způsobu, jak by měl být navržen.Provedete to vytvořením jedné cesty prostřednictvím systému, kompletního a funkčního článku.Používáme tento návrh odkrývání a požadujeme předčasné odhady, které umožňují postupovat mnohem rychleji a s mnohem větší jistotou.

Techniky odhadu

K dispozici je široká škála odhadů platných technik, včetně výpočtů, posudků (individuálních a skupinových), dekompozice, analogií, proxy odhadů, plánování pokeru a odhad stěny.Můžeme použít také nástroje, jako například Cocomo II.Všechny tyto techniky vyžadují, aby byla zvolena jednotka pro odhad – hodiny, dny, týdny, měsíce, ideální dny, velikost trička, body – nebo všechny uvedené.Pokud nechápeme jednotku, odhad nic znamená.Při zohlednění všech těchto skutečností není divu, proč jsme zápasili s odhadem.

Přestože agilní týmy směřují k určitému charakteru jednotek odhadu a technikám odhadování nevyřízených položek produktu (body textu a Planning Poker), můžete v týmu využívat libovolnou metodu, která nejlépe slouží pro vaše potřeby.Dle mé zkušenosti lze nejlepší výsledky získat při vyjádření odhadů story bodů pomocí plánovacího pokeru nebo odhadu pomocí zdi.V následujících odstavcích naleznete informace o story bodech jako jednotce měření a dvou metodách odhadu, které upřednostňuji: plánovací poker a odhad pomocí zdi.

Body příběhu jako jednotka měření

Mike Cohn nejlépe shrnuje body článku: "Story body (body příběhu) jsou jednotkou měření pro vyjádření celkové velikosti příběhu uživatele, funkce nebo jiných prací.„ Rozsah úlohy nám napovídá, jak rozsáhlá je úloha z pohledu velikosti nebo složitosti.Mike často odkazuje na „psí body“, když pomáhá týmům pochopit pojem relativní velikosti.2bodový (malý) pes bude čivava.13bodový (velký) pes bude německá doga.S těmito dvěma vodítky v mysli je vskutku jednoduché přizpůsobit velikost jiného plemena psa k čivavě nebo německé doze.Bígl, který je dvakrát větší, než čivava, může mít bodů 5.Labrador, který je větší, než bígl, ale menší, než německá doga, může mít 8 bodů.

Když se poprvé pokoušíte naučit se používat body článku, tým bude muset vytvořit vlastní pevné body porovnání.Pokud tak chcete učinit, zvolte článek rezervní položky produktu, o kterém se všichni shodnete, že je malý (buď velikostí nebo složitostí) a jeden, o kterém se shodnete, že je velký.Mám rád, když je můj malý příběh dvojbodový, protože v případě, že potřebuji něco menšího (řekněme, že objevím hračku čivavy), mohu.Pokud si omezím nejmenší příběh na jeden bod a potřebuji ještě zmenšovat, mám problém.Velikost ostatních příběhů lze změnit poměrně k těmto.

Pokud se jedná o výběr čísel představující velikosti, podle mě nejlépe funguje sekvence Fibonacci.Fibonacciho hodnota je součtem předchozích dvou čísel.Takže 1 a 2, další je 3.3 a 2, další je 5.5 a 3, další je 8 a tak dále.Dávám přednost Fibonacciho číslu před, řekněme, velikostmi triček nebo exponenciálním růstem (4/8/16/32/64/128/256, atd.), protože my lidé zvládáme dobře počítat s desítkou.Když se dostaneme mimo tento rozsah, i když podle něj postupujeme, řekněme s, xs, s, m, l, xl – ztrácíme přehled.Fibonacciho hodnoty jsou jednoduché, snadno srozumitelné a poskytují dostatek přesnosti, abychom dosáhli cíle – poskytují relativní odhady.Můžete zvolit jinou sadu čísel, ale nezapomeňte, že je důležité být konzistentní.

Body příběhu jsou relativní hodnoty, nikoli pevné.Neexistuje žádný přímý vzájemný vztah mezi hodinami a body.Například, s vůbec žádnou jistotou nemůžeme říct, že dvojbodový příběh znamená 12,2 hodin, protože příběhy v rozsahu dva body se budou výrazně lišit v tom, kolik hodin skutečně trvá jejich dokončení.Podobně nelze s žádnou jistotou porovnat body úkolů jednoho týmu s body týmu jiného.Body příběhu jsou vytvářeny týmem a jsou specifické pro tým, který je odhadl. Pravděpodobně bude obsahovat stupeň složitosti, kterému rozumí pouze tým a není absolutní.

Plánovací poker

Po zvolení měrné jednotky a stanovení měřítka je čas provést odhad.Většina týmů Agile používá plánovací poker k odhadu relativní velikosti příběhů.Je populární u agilních týmů, protože představuje objektivní měřítko, které zahrnuje několik technik subjektivního odhadu, včetně analogie a odborného posudku.Klíčem k plánování pokeru je účast.Všichni členové týmu se musí účastnit – ano, všichni.Funkční testeři odhadnou vývojové úkoly a naopak.Funkční vedoucí projektů mohou také odhadovat vývojové úkoly.Tím zajistíte, že vaše objektivní čísla zahrnují maximální množství subjektivního odhadu.

Spusťte sadu plánování pokerových karet.Plánovací pokerové karty lze snadno vyrobit z kartotéčních lístků, z běžných hracích karet, nebo je zakoupit. Vyrábí je dokonce i Visual Studio.Každá karta má jedno z čísel ve zvoleném rozsahu bodů článku (1, 2, 5, 8, 13 atd.).Každému účastníkovi je rozdán „list“ obsahující celý rozsah dostupných bodů článku.

Příklad plánování poker karty

Po rozdání karet hra začíná.

  1. Vedoucí Scrumu představuje hlavní položku v rezervních položkách produktu týmu.

  2. Tým diskutuje o tom, co je příběh.

  3. Vlastník produktu objasňuje otázky, předpoklady, neznámé – a kritéria přijetí.

  4. Každý člen týmu soukromě rozhodne, jak velký je článek vzhledem k referenčnímu článku, řadě referenčních článků nebo všem článkům v nevyřízených položkách produktu.

  5. Na číslo tři všichni současně zobrazí své zvolené karty.

Pokud všichni zahrají stejné karty, může tým zaznamenat odhad a přesunout se na následující příběh.

Pokud se vyskytne širší rozptyl (například rozsah zobrazených čísel je od 1 do 8), tým stráví čas diskusí o příběhu.Abyste se zaměřili na diskusi, nechte uchazeče s nízkým a vysokým odhadem vysvětlit důvody pro své odhady.Konverzace je zde cenná míst čísla, protože se jedná o místo, kde dochází k učení a odkrytí všech předpokladů.Po krátké 30sekundové až minutové diskusi tým opakuje kroky 4 a 5.Toto pokračuje, dokud tým souhlasí s odhadem pro daný příběh.

To se zdá poměrně jednoduché, ale je důležité pochopit některá základní pravidla.Za prvé, jestliže celý tým nedospěje k určitému druhu dohody, neměli byste pokračovat.Například, řekněme, že v týmu je osoba, která zahraje osmičku, ale ostatní vyberou pětku.Pokud vedoucí schůzky říká „Dostatečně blízko.Na tomto jednom postupujeme s pěti; pokračujte,“ co udělá osoba, která měla osm?Na základě vlastní zkušenosti se tato osoba smíří se vším, o čem tým rozhodne, ale přestane se plně účastnit.Plánování tak může probíhat rychleji, ale ztrácíte něco cenného.Nejenže tato osoba nepochopí danou práci, ale tým ztratí vstup a pohled jednoho ze členů.Navíc je v pořádku nesouhlasit.Důležité principy pochází z diskusí, proč jedna osoba zvolila vyšší číslo než všechny ostatní.Jestliže se ocitnete v bezvýchodné situaci, zkuste techniku souhlasu podle počtu prstů.Je zázrakem, pokud schůzky budou probíhat bez toho, aby se někteří účastníci rozzlobili.

Protože plánovací poker vyjadřuje odhady v bodech, hodí se ideálně pro odhadování nevyřízených položek produktu.Rezervní položky sprintu by ale měly být odhadovány v hodinách.Z výše uvedeného vyplývá, že plánovací poker může a byl úspěšně použit k odhadu rezervních položek sprintu; na kartě, čísla však budou označovat spíše body než hodiny.Ano, jednoduché pravidlo –

  • Odhady pro rezervní položky produktu jsou uvedeny v bodech.

  • Odhady rezervních položek Sprintu jsou v hodinách.

Poker plánování můžete použít na začátku kteréhokoli projektu. Sám odhalí během svého životního cyklu nové informace, změnu priorit a srozumitelnosti povrchů.

Odhad stěny

Plánovací poker je fantastický nástroj pro odhad úkolů uživatele, ale trvalo by s plánovacím pokerem neúměrné množství času postupně jeden po druhém odhadnout stovky úkolů.Pokud vaše nevyřízené položky čítají stovky příběhů, které nebyly odhadnuty nebo rozděleny podle priority, budete potřebovat rychlejší způsob odhadu.

Odhad stěny je navržen, aby týmům umožnil eliminovat diskuse dva proti třem a pět proti osmi a místo skupiny věcí čistě relativní způsobem podél prvovýroby, alespoň zpočátku.Také umožňuje zúčastněným stranám přidělit obecnou prioritu velké skupině příběhů bez váhání, zda je některý příběh o něco důležitější než jiný.

Abyste mohli provést odhad zdi, musíte nejprve vytisknout své příběhy uživatele na kartách.Poté shromážděte tým a zúčastněné strany v místnosti s velkou prázdnou stěnou (asi 4 metry dlouhé a 2-3 metry vysoké); O stěně je důležité vědět dvě věci:

  • Výška určuje prioritu.Příběhy nahoře jsou vyšší; články dole jsou nižší.Prioritu úlohy lze vyvodit z návratnosti investic, obchodní hodnoty nebo něčeho tak jednoduchého, jako je přístup „prostě je to důležité a nevím ani proč“.

  • Šířka je vyhrazena pro velikost.Příběhy vlevo straně jsou menší; články vpravo straně jsou větší.(Toto je možné obrátit a pohybovat se zprava doleva, pokud jste např. v Japonsku a je to logičtější.) Důležité je, aby jedna řada šla vodorovně a jedna svisle.Členové týmu a zúčastněné strany by se měli ptát sami sebe, kam tento příběh zapadne, vzhledem k ostatním příběhům.

Tým použije k určení velikosti příběhů stěnu.Zainteresované osoby používají ke zvýšení priorit příběhu stěnu.Stejně jako u plánovacího pokeru používáme relativní velikosti, ale namísto použití dvou referenčních článků pro porovnání se ze zdi stane konstanta.Malý úkol?Přesuňte se doleva.Velký článek?Přesuňte se doprava.Důležitý příběh?Umístěte je vysoko.Úloha, bez které se nyní obejdeme?Umístěte je nízko.

Přestože se účastníci nemusí účastnit hodnocení článků, tým musí být při stanovení priorit článků přítomen.Vedoucí Scrumu a vlastník produktu se musí podílet na odhadu stanovení priorit činností.

Nyní, pokud již máte odhadované rezervní položky, stačí pouze dokončit část s určením priority v tomto cvičení.Pokud vám vlastníci produktu a zúčastněné strany již předložily nevyřízené položky s přidělenou prioritou, můžete provést pouze odhadovou část tohoto cvičení.(Vlastník produktu bude pravděpodobně chtít znovu ověřit prioritu po dokončení odhadu.Náklady ostatně mají velký dopad na prioritu.) Pojďme se detailně podívat, jak by to fungovalo počínaje rolí týmu.

Odhad

Poskytněte týmu hrubé nevyřízené položky produktu a začněte s odhad.Dejte týmu pokyny, že na levé straně zdi by měly být co nejmenší možné příběhy a vpravo na konci by měly být největší možné příběhy, bez ohledu na čísla.Tým umístí příběhy někam na stěnu v závislosti na těchto dvou pólech.Výhodou tohoto způsobu je, že neexistuje žádná předpojatá definice toho, co jsou dva nebo tři body příběhu; je skutečně relativní, podle toho, jak velká je zeď, což je důvodem, proč je skutečně velká zeď užitečná.

Pokud má váš tým s danou akcí potíže, můžete dát stěně více struktury, a to poskytnutím dalších referenčních článků v rozsahu od 1 do 8 bodů.Nedělejte si starosti s vytváření většího referenčního článku; všechny větší prvky jsou obvykle rozčleněny, když jejich priorita roste.Jakmile tým určil pět článků, umístěte je na zeď na místo, které koreluje s jejich velikostí (znovu přesunutím zleva doprava).Ponechte nějaký prostor na pravé straně zdi pro příběhy větší než osm bodů.Tyto úkoly umístěte na zeď a dejte pokyn týmu, aby zbývající úkoly umístit na zeď vzhledem k těmto referenčním úkolům s tím, že je třeba pamatovat, že menší úkoly patří doleva a větší doprava.

Články na zdi umožňují týmu identifikaci logických přestávky mezi rozměry příběhu.Svislé čáry mezi skupinami příběhu ilustrují tyto konce pásku.Brzy budete mít zeď, která vypadá podobně jako zeď, která je zobrazena zde.Vše v první skupině může být 2, vše v druhé 3, vše ve třetí skupině 5 a vše v poslední skupině 8.Čísla nemají takový vliv na to, že všechny příběhy jsou nyní odhadovány se vzájemnou relativitou.

Příklad stěna odhad - relativní řazení

Nyní, když jste odhadli své příběhy, budete muset zapojit zúčastněné osoby, abyste mohli článkům přiřadit prioritu.

Stanovení priority

Ačkoli zákazníci a zúčastněné strany budou chtít vědět, jak náročné je pomoci určit prioritu, budou se mnohem více zaměřovat na hledání úloh, které se na ně vztahují, a ujistit se, že tyto úlohy budou provedeny.Očekávejte, že účastníci nebudou s prioritou souhlasit – váš vlastník produktu použije tyto informace, aby napomohl k rozhodnutí o hlavní prioritě.

Vysvětlete zeď účastníkům.Sdělte jim, že karty na zdi odrážejí všechny funkce, které chtějí vidět v konečném produktu.Vysvětlete, že tým již odhadl každý článek a že můžete určit bodový odhad článku na základě toho, ve kterém sloupci na zdi se článek nachází.Připomeňte všem, že členové týmu nejsou aktivními účastníky při určování priorit.Jsou tam, aby mohli pozorovat, dělat si poznámky o chování, interakcích a důvodech, proč některé příběhy zaznamenávají růst nebo ztrátu riority.Také můžete podle potřeby zodpovědět všechny otázky zúčastněných.Pokud tým nemohl s jistotou vzít více než jeden příběh, protože je třeba odpověď o konkrétní zúčastněné strany, může tým klást otázky i o těchto příbězích, jak čas dovolí.

Požádejte zúčastněné subjekty, aby pomohly určit relativní prioritu všechny těchto článků, přesunutím nahoru nebo dolů ve označených sloupcích.Připomeňte jim, že čím výše je úkol na stěně, tím vyšší má pro obchod důležitost.Nastavte následující pravidla:

  • Pokud umístíte příběh nahoru, buďte připraveni si toto umístění obhájit.

  • Můžete ostatní o zdůvodnění, proč je jeden článek důležitější než jiný.Nebojte se navzájem zeptat: „Kdo přesunul tuto položku dolů (nebo nahoru)?“, nebo vyslovit nahlas: „Myslím, že toto se musí přesunout.Kdo chce nesouhlasit?“ To umožňuje konverzaci mezi zúčastněnými stranami bez usnadnění.

  • Pokud přesunete příběh na zdi na nižší místo než někdo jiný, označte ho barevnou tečkou a upozorněte tak na tuto změnu.

Největší výhody pro stanovení priorit jako skupina je lepší pochopení priorit různých příběhů všemi zúčastněnými stranami.Pokud diskusi ubíhá příliš dlouho bez řešení, vlastník produktu by měl sebrat kartu, určit dva účastníky, kteří se nemohou dohodnout, a poznamenat si, že se s nimi chce sejít soukromě později.

Cvičení může trvat 2-6 hodin, v závislosti na počtu příběhů a počtu zúčastněných stran.Po dokončení bude zeď vypadat podobně jako na obrázku níže.

Příklad stěna odhad - Priorita řazení

Vaše zeď bude rozdělena přibližně do čtyř kvadrantů.Příběhy vlevo nahoře mají vysokou prioritu a jsou malé, takže dosahují vrcholu rezervních položek produktu.Články vpravo nahoře mají vysokou prioritu, ale jsou také velké.Tyto příběhy by měly být rozepsány brzy, takže mohou být začleněny v nadcházejících sprintech.

Stěna odhad - čtyř kvadrantů

Levý dolní kvadrant tvoří malé příběhy, které mají nižší prioritu.Budou pravděpodobně spadat do spodní části rezervních položek.Pravá dolní čtvrtinou je vyplněna rozsáhlými příběhy, které mají také nižší prioritu.Tyto příběhy jsou vašimi příběhy nebo motivy.Nakonec je eventuálně budete potřebovat rozdělit do menších, lépe spravovatelných příběhů, ale ne před růstem jejich priority.

Věnujte se skupinou chvíli pohledu na zeď jako celek.Pokud je článek v nesprávném kvadrantu, přesuňte ho.Pokud musí být příběh s vysokou prioritou rozdělen a čas to umožňuje, je třeba tak učinit, dokud jsou všichni v místnosti.

Na konci odhadu zdi budete mít zahájení plánu vydání.Pokud víte, jakou měl tým rychlost v minulosti, můžete zadat i hrubý rozsah, v němž budou dokončeny příběhy v levém horním kvadrantu.

Odhad je obtížný, protože na začátku projektu existuje velké množství nejistoty.Vlastníci produktu a agilní vedoucí projektu se pokouší maximalizovat hodnotu včasného studia tak, že vedou konverzaci s vlastníky produktu a zúčastněnými stranami. Při tom vytváří funkční software a integrují reakce na něj tak, aby vznikla jeho stabilní podoba.Ale i agilní projekty musí poskytnout určitý odhad doby, kdy bude sada funkcí připravena k vydání.

Dva odhady technik, které doporučuji, jsou plánování pokeru (vhodné pro menší sady článků) nebo odhad stěn (dobré pro správu velkých surový rezervních produktů).Obě možnosti poskytnou data, která potřebujete k zahájení tvorby plánu, který je konečným cílem odhadu.

Viz také

Koncepty

Spolupráce [přesměrováno]

Spolupráce (podrobnější informace) [přesměrováno]

Vytvoření backlogu

Správa a odhadování nevyřízených položek

  1. Mike Cohn, Agile Estimating and Planning, strana 36

  2. Rozhodování o konsensu: ruční signály (Wikipedia)