Becslés — egy feladat elvégzéséhez, funkció fejlesztéséhez vagy egy projekt egészének megvalósításához szükséges munkaerő-ráfordítás mennyiségi értékelése. Mobilfejlesztésben a becsléseket sprinttervezéshez, költségmeghatározáshoz és az ügyfél elvárásainak kezeléséhez használják. A Project Management Institute, 2024 adatai szerint a becslési hiba a projekt korai szakaszában elérheti a 100%-ot, ami a becslést a fejlesztés egyik legnehezebb tudományágává teszi.
Főbb pontok
Becslés (az angol estimate szóból) — egy feladat elvégzéséhez szükséges idő vagy erőfeszítés mennyiségének előrejelzése. Mobilfejlesztésben a becsléseket órákban, napokban, story pontokban vagy pénzbeli egyenértékben fejezik ki. A becslés célja nem a pontos előrejelzés, hanem a bizonytalanság csökkentése a döntéshozatalhoz.
Becslés — előrejelzés hibahatárral. Kötelezettségvállalás (commitment) — ígéret a feladat adott dátumig történő elvégzésére. A különbség kritikus: a becslés azt mondja „valószínűleg 5 nap„, a kötelezettségvállalás — „megcsináljuk 5 nap alatt„. A menedzserek gyakran összekeverik ezeket a fogalmakat, a becslést hibalehetőség nélküli határidővé változtatva.
A becslési folyamat nem kevésbé fontos, mint annak eredménye. Amikor a csapat megvitatja egy feladat értékelését, rejtett követelmények, függőségek és kockázatok kerülnek felszínre. Még ha a végső szám pontatlan is, a megbeszélés minden résztvevő számára megértést ad a feladatról. Ezért a kollektív értékelési módszerek (Planning Poker) hatékonyabbak, mint az egyéniek.
Több becslési módszer létezik, mindegyik a projekt különböző szakaszaihoz és részletességi szintjeihez igazodik. A módszer kiválasztása a rendelkezésre álló adatoktól és a szükséges pontosságtól függ.
| Módszer | Típus | Pontosság | Mikor használjuk |
|---|---|---|---|
| Planning Poker | Szakértői, kollektív | Magas (sprintben) | Sprint feladatainak értékelése |
| T-Shirt sizing | Szakértői, gyors | Közepes | Epik előzetes értékelése |
| Analóg becslés | Történeti alapú | Közepes | Hasonló feladatok a múltban |
| Three-point (PERT) | Valószínűségi | Átlag feletti | Magas bizonytalanságú feladatok |
| Parametrikus | Képlet alapú | Adatoktól függ | Homogén mérhető feladatok |
Planning Poker — a legnépszerűbb értékelési módszer az Agile-ben. Minden fejlesztő kap egy pakli kártyát Fibonacci-számokkal (1, 2, 3, 5, 8, 13, 21). A feladat megvitatása után mindenki egyszerre mutatja fel a kártyáját. Ha a becslések eltérnek — a legalacsonyabb és legmagasabb becslést adó fejlesztők elmagyarázzák a logikájukat, majd újabb szavazás következik. A módszer kiküszöböli a tekintélyek befolyását és pontosabb becslést ad.
T-Shirt sizing — durva becslés pólóméret alapján: XS, S, M, L, XL, XXL. A módszert nagy feladatok (epikek) gyors becslésére használják korai szakaszban, amikor a részletek még nem ismertek. Később minden ilyen feladatot dekomponálnak és Planning Poker-ben értékelnek. A T-Shirt sizing feladatonként 5-10 percet vesz igénybe, de csak nagyságrendet ad.
PERT három becslést használ: optimista (O), pesszimista (P) és legvalószínűbb (M). A végső becslés a képlet alapján számítható: (O + 4M + P) / 6. A módszer figyelembe veszi a bizonytalanságot és reálisabb eredményt ad, mint az egyetlen becslés. A PERT különösen hasznos magas kockázatú vagy új technológiás feladatoknál.
A becslés pontossága a projekt szakaszától és az ismert információ mennyiségétől függ. Minél korábban történik az értékelés, annál nagyobb a hibahatár — ez normális, és a tervezésben figyelembe kell venni.
Bizonytalansági kúp (Cone of Uncertainty) — egy modell, amely leírja, hogyan csökken a becslés hibahatára a projekt előrehaladtával. A koncepció szakaszban a hibahatár 400% (a feladat 1-4 hónapig tarthat). A sprint időpontjában — 20% (1-1.2 hónap). Ennek a modellnek a tudatosítása segít, hogy a korai szakaszban ne követeljünk pontos becsléseket.
Relatív becslés (story pontokban) pontosabb, mint az abszolút (órákban), mert az emberek jobban tudják összehasonlítani a feladatokat, mint megbecsülni az időt. „Ez a feladat kétszer olyan összetett, mint az„ — megbízhatóbb ítélet, mint „ez a feladat 8 órát vesz igénybe„. A relatív becslések nem függnek az adott fejlesztőtől, és megőrzik pontosságukat a végrehajtó személyének változásakor.
A becslés pontossága szisztematikus megközelítéssel, kollektív megbeszéléssel és a múltbeli hibák elemzésével javítható. Számos bevált gyakorlat létezik.
Minden 2 napnál többre becsült feladatot dekomponálni kell alterületekre. Elv: ha egy feladat nem becsülhető 50%-os pontossággal, akkor túl nagy. Oszd fel érthető és becsülhető lépésekre. A dekompozíció után a teljes becslés gyakran 1.5-2-szer nagyobb, mint az eredeti.
Vezess becslési előzményeket és hasonlítsd össze a tényleges költségekkel. Például: „a 3 story pontra becsült feladatok átlagosan 4 napig tartanak, nem 2„. Használd a csapat velocity-jét az előrejelzéshez: ha a csapat sprintenként 20 story pontot zár le, ne tervezz 30-at. A korábbi becslések pontosságának elemzése a legjobb gyakorlat a becslési készség fejlesztéséhez.
Horgonyzás — pszichológiai hatás, amikor az első hangoztatott becslés befolyásolja az összes résztvevőt. A horgonyzás elkerülése érdekében a Planning Poker-ben mindenki egyszerre mutatja a kártyákat, nem sorban. Kalibráció — a becslések rendszeres egyeztetése a valósággal: 10-20 sprint után a csapat a visszajelzések révén pontosabban becsül.
Minden feladat rejtett kockázatokat tartalmaz: fejlesztő megbetegedése, probléma az API-val, követelmények változása. Adj a becsléshez kockázati tényezőt: magas kockázatú feladatoknál — 1.5-2-szeres szorzó, alacsony kockázatúnál — 1.1-1.2. Mutasd meg átláthatóan az ügyfélnek, milyen kockázatokat vettél figyelembe, és azok hogyan befolyásolják a határidőket.
A becslési hibák a legtöbb csapatban ismétlődnek, függetlenül azok érettségétől. E hibák ismerete az első lépés a kijavításuk felé.
A leggyakoribb hiba — a legjobb forgatókönyv szerinti becslés: „ha minden tökéletesen megy, 3 nap alatt megcsináljuk„. A valóságban semmi sem megy tökéletesen: hibák, kérdések a követelményekkel kapcsolatban, függő feladatok. Megoldás: a legvalószínűbb forgatókönyv szerint becsülj, ne az optimista szerint. Használd a PERT-et a változékonyság figyelembevételéhez.
Amikor a menedzser azt mondja „péntekig kell„, a fejlesztő tudat alatt hozzáigazítja a becslést ehhez a határidőhöz. Becslés nyomás alatt mindig alulbecsült, és határidő-túllépéshez vezet. Megoldás: a becslésnek meg kell előznie a határidőt, nem fordítva. Először a csapat becsül, aztán a felek egyeztetnek a határidőkről.
A feladat komplexitása (mennyit gondolkodni) és idő (mennyit csinálni) — különböző mérőszámok. Egy feladat lehet egyszerű, de időigényes (10 képernyő kódolása). Vagy összetett, de gyors (hiba megtalálása legacy kódban). Story pontokban általában a komplexitást becsülik, az időt pedig a csapat velocity-jéből vezetik le.
A fejlesztő nem dolgozik 8 órát megszakítás nélkül egy feladaton: megbeszélések, kódellenőrzés, kollégák segítése, adminisztratív feladatok a munkaidő 30-50%-át veszik el. Kontextusváltásokat figyelembe kell venni a becslésben: a valóságban a fejlesztő napi 3-4 órát kódol.
Gyakran Ismételt Kérdések
A fejlesztés — kreatív folyamat magas bizonytalansággal. Ellentétben az építőiparral vagy a gyártással, ahol minden lépés ismert, az IT-ban minden feladat egyedi. Az ismeretlen ismeretlenek (unknown unknowns) — a pontatlanság fő oka. Még egy tapasztalt csapat is hibázik a becslések 30-50%-ában. Ez normális, és a tervezésben figyelembe kell venni.
Story pontok jobbak a sprinttervezéshez, mert relatívak és nem függenek a végrehajtótól. Órák a szerződésekhez és a külső jelentéstételhez szükségesek, de kevésbé pontosak. Optimális kombináció: a feladatokat story pontokban becsülik, a határidőket pedig a csapat velocity-jén keresztül számítják át naptári napokra.
Ismeretlen technológiás feladatoknál először használj Spiko-t (időkorlátos kutatás). A kutatás után a csapat megérti a komplexitást, és reális becslést adhat. Adj 2-3-szoros szorzót a szokásos becsléshez, és tegyél be 50% puffert az előre nem látható nehézségekre.
Mutasd meg a dekompozíciót — bontsd fel a feladatot részfeladatokra mindegyik becslésével. Magyarázd el, miből áll az idő: fejlesztés, tesztelés, kódellenőrzés, dokumentáció. Ajánlj alternatívákat: a terjedelem csökkentése, a funkcionalitás egyszerűsítése vagy szakaszokra bontás. Soha ne csökkentsd a becslést a követelmények megváltoztatása nélkül.
Újrabecslés akkor szükséges, amikor új információ jelenik meg a feladatról: további követelmények derültek ki, technikai korlátokat fedeztek fel, vagy megváltozott a prioritás. A sprinten belül a feladatokat nem becsülik újra — a fókusz a befejezésen van. A sprintek között a backlog-ot a grooming keretében becsülik újra.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is