Věda, umění a magie v jednom - Metodika odhadování pracnosti
Jak (ne)snadné je odhadnout náročnost projektu?
Co si leckdo neuvědomuje, je, že součástí kvalitního projektu musí být i kvalifikovaný odhad jeho pracnosti. Někdy to může dokonce být i velmi zásadní bod zlomu, který dovede způsobit rozkol mezi zadavatelem a vykonavatelem.
• Týmové dovednosti
• Znalost oboru
• Složitost aplikace
• Historická data z podobných projektů
• Chybovost vývojového týmu
• Množství zdrojů, které lze využít
• Produktivita týmu
• Stabilita vývojového, testovacího prostředí a s tím související množství prostojů
• Zkušenosti
Samozřejmě během sestavování odhadů, nesmíme nikdy zapomenout ani na čas, který budeme potřebovat k vytvoření požadované dokumentace nebo například řešení chyb či účasti na schůzkách (viz produktivita týmu).
Ačkoliv se tato část práce v oboru testování může zdát spíše jako určitý typ magie, existuje i několik metodik, jak se dopracovat ke „kvalitnímu odhadu“.
Podle funkčních bodů
Tuto metodu uznává i samotný ISO standart. Pracuje s myšlenkou, že otestování každého funkčního bodu zabere určitý čas. Jak dlouhý je tento čas, však závisí na zkušenosti každého testera, který odhad vytváří. Funkčním bodem se myslí veškerá vstupní data, externí rozhraní, počet vstupů, počet výstupů i počet uživatelských dotazů.
Nutno říci, že tato metoda je sice velmi jednoduchá, rychlá, ale jelikož nebere v potaz typ aplikace ani druhy testů, které budeme muset vykonat, jedná se o velmi nepřesný odhad. Jestliže však máme počet funkčních bodů, jsme schopni vzorcem dospět k počtu předpokládaných Test Casů:
Tcs = (Funkční body) x 1,2
Podle seznamu Test Casů
Na začátku si musíme vytvořit základní seznam testovacích případů. Jednotlivé případy pak odhadujeme samostatně. Je vhodné vytvořit si tři typy odhadů:
• Minimální
• Optimální
• Maximální
Z těchto tří odhadů se následně udělá průměr, který použijeme k určení celkového odhadu pracnosti.
Nevýhodou této metody je fakt, že počet testovacích případů se velmi často mění a s tím samozřejmě pak i pracnost.
Podle jednotlivých úkolů
Jeden ze způsobů, jak vytvořit přesnější odhad. Předpokladem však je, že máte stabilní tým, který řeší velmi často podobné projekty. Principem je rozdělení odhadu na jednotlivé úkoly a ty odhadovat samostatně:
• Test analýza
• Příprava a správa testovacího prostředí
• Příprava a správa testovacích dat
• Smoke testy
• Regresní testy
• Test exekuce
Podle procenta z odhadu vývoje
Zde je předpokladem dostupnost statistických údajů z historie. Výsledkem odhadu může být určení přímé úměry vzhledem k pracnosti vývoje nebo času určeným procentem vývojového času. Vývojový čas se odhaduje dle počtu řádku kódu nebo například podle funkčních bodů.
PERT metoda
Statická metoda, pro kterou je potřeba každý úkol rozpadnout na jednotlivé pod-úkoly. Těm se následně přidělují tři typy odhadů, se kterými se následně pracuje:
• M - Minimální (vše jde hladce)
• O - Optimální (mohou být problémy, ale žádné zásadní)
• H - Maximální (vše co se může pokazit, se pokazí)
• D = (E-M)/6
• R = [(H-M)/6]2
• S = √∑R
◦ Odmocnina součtu rozptylů
Vzorec pro analýzu pravděpodobnosti dodržení termínu je následující:
P = [(Tp-T)/S]
0,4 – 0,6 → termín lze dodržet
> 0,6 → nadbytečné využívání zdrojů
< 0,4 → měli bychom zlepšit činnost na kritických bodech
UseCase metoda
Již samotný název nám napovídá, že je metoda založena na případech užití. Během výpočtu využíváme počet aktérů (uživatel, systémy, prostředí apod.) a počet jednotlivých UseCase
• Počet aktérů = pozitivní aktéři + negativní aktéři + výjimeční aktéři
◦ Např. Proces je přizpůsoben zejména pro telefony, nepodporujeme počítače a výjimečně se může objevit uživatel s tabletem
◦ Počet aktérů (A)
WBS metoda (členění práce)
Celou odhadovanou část rozdělíme na prvočinitele. Konkrétně tedy vezmeme projekt a vytvoříme z něj malé části. Ty následně rozdělíme na malé moduly. Moduly dále členíme na funkce a ty opět na pod-funkcionality.
Projdeme celý strom ještě jednou, abychom se ujistili, že nám nechybí žádný požadavek, který je potřeba pokrýt testy. Sečteme počet úkolů, které musíme udělat a odhadneme potřebný čas pro každý úkol.
Metoda Delphi
Využívá metodu WBS s tím rozdílem, že na odhadu se podílí 3 – 7 členů týmu. Každý z nich udělá odhad WBS a výsledným odhadem je soulad všech členů týmu. Jinak řečeno ze svých odhadů najdou kompromis, na kterém se shodnou všichni.
Procentuální metoda
Tato metoda vychází jednak ze zkušeností odhadce a zároveň z určení procentuální náročnosti na dílčí fáze projektu.
• Projektový managemenet
• Požadavky
• Grafika
• Programování
• Testování
• Dokumentace
Metoda založena na zkušenostech
Metoda, ke které je potřeba mít dostatek zkušeností s obdobným projektem. Nelze však udělat odhad pouze na zkušenostech, velmi často se při této metodě využívají i data nashromážděná v historii. Zde jde opravdu již o jistou úroveň magie.
- Filip Kadlec