Kužel nejistoty, který popsal Steve McConnel, ukazuje to, co ví každý zkušený softwarový profesionál. A to, že na začátku každého projektu nevíme přesně, jak dlouho bude projekt trvat.
Důvodů je mnoho. Žádné dva projekty nikdy nemají:
- stejné požadavky.
- stejné lidi.
- stejný obchodní kontext.
- stejnou technologii.
- stejné priority &omezení.
Každý je jedinečný. Každý řádek kódu je ručně vytvořený. A znalostní práce, na níž se podílejí chytří tvůrčí lidé, se nehodí k přesnosti tak jako kopání příkopů.
Přesto se žádá přesnost. Sponzoři chtějí přesně vědět, kdy bude projekt hotový a kolik bude stát.
Řešení této hádanky je téměř tak staré jako sám čas. Zde je několik způsobů, jak se týmy a firmy s touto nejistotou vypořádávají.
Setkání s kuželem
Zvýšení odhadu
Poté, co pocítíte osten podcenění, je jednou z častých reakcí zdvojnásobení nebo ztrojnásobení odhadu v příštím kole. To rozhodně snižuje počáteční riziko, ale vycpávat čísla je těžší, než se zdá.
Dáte-li příliš velké číslo, sponzoři se zarazí a projekt vám neschválí. Uveďte příliš nízké číslo a hrozí, že vám dojdou peníze. To se stává dvojnásob riskantní, když se ucházíte o zakázky s pevnou cenou, kde je ještě větší tlak na to, aby čísla byla nízká.
Většina projektů přidává ke konečným číslům nějaký druh vycpávky, aby si poskytla dostatečný prostor. Další věcí, kterou mohou týmy udělat, je porovnat tento projekt s jinými.
Rozměřte projekt relativně
Lidé jsou opravdu dobří v tom, že umí věci rozměřovat relativně. Nedokážeme přesně říct, jak velký je kámen. Ale můžeme vám říct, jak velký je ve srovnání s něčím jiným. Toho můžeme využít i při dimenzování projektů.
Buďte upřímní a poctiví
Výchozím režimem agilních operací je transparentnost a viditelnost. Nemělo by tedy být překvapením, že agilní způsob jednání s kužely je být upřímný a čestný.
Podívejte se. Nevíme, jak dlouho to bude trvat. Je to náš nejlepší odhad. Ale když nám dáte pár iterací, můžeme něco postavit, změřit, jak dlouho to trvá, a pak vám říct, že máte mnohem lepší představu o tom, jak velká ta věc je.“
Dalším přístupem, který některé agilní týmy použijí, aby pomohly komunikovat nejistotu, je prezentovat odhady jako rozpětí.
To má tu výhodu, že sponzorům viditelně ukáže nejistotu, která je s projektem spojena, a sponzoři se pak mohou rozhodnout, jak velké riziko si mohou dovolit podstoupit.
Financujte postupně
Dalším přístupem, který dává velký smysl, ale bohužel ho nevidím uplatňovat dostatečně často, je postupné financování.
Při postupném financování nežádáte celý pytel peněz předem. Pouze tolik, abyste prošpikovali dostatečnou část práce, abyste mohli nahlásit lepší číslo, jak dlouho to bude trvat.
Není to blbuvzdorné. Stále se můžete později dostat do potíží. Ale tím, že dáte týmům 30-50 tisíc dolarů, necháte je něco postavit a uvidíte, jak dlouho to bude trvat, můžete značně snížit odchylku v tomto počátečním čísle.
Více o tomto způsobu plánování a výhodách, které přináší, si můžete přečíst v knize Beyond Budgeting od Jeremyho Hopea.
Kořenová příčina
Žijeme ve světě ročních rozpočtů. A to je bohužel hnacím motorem mnoha napětí a dramat na našem pracovišti. V některých ohledech jsou roční rozpočty přirozené (žijeme a sledujeme čas v ročních cyklech), ale v jiných jsou pro plánování hrozné, protože rok je na trhu dlouhá doba.
Pokud se přistihnete, že vám kužel nejistoty podráží nohy, vzpomeňte si, že smyslem odhadu softwaru je zjistit, zda je projekt vůbec možný.
Nebo jak říká Steve McConnell:
Primárním účelem odhadu softwaru není předvídat výsledek projektu, ale určit, zda jsou cíle projektu dostatečně realistické, aby bylo možné projekt řídit tak, aby je splnil.
-Steve McConnell, Software Estimation: Demystifikace černého umění
.