Estimarea — este o evaluare cantitativă a efortului necesar pentru a executa o sarcină, a dezvolta o funcționalitate sau a implementa un proiect în ansamblu. În dezvoltarea mobilă, estimările sunt utilizate pentru planificarea sprinturilor, determinarea costurilor și gestionarea așteptărilor clientului. Conform datelor Project Management Institute, 2024, eroarea de estimare în etapele incipiente ale proiectului poate atinge 100%, ceea ce face din estimare una dintre cele mai dificile discipline în dezvoltare.
Principalele puncte
Estimarea (din eng. estimate — evaluare) — este prognozarea cantității de timp sau efort necesare pentru a executa o sarcină. În dezvoltarea mobilă, estimările sunt exprimate în ore, zile, story point-uri sau echivalent bănesc. Scopul estimării nu este predicția exactă, ci reducerea incertitudinii pentru luarea deciziilor.
Estimarea — este o prognoză cu marjă de eroare. Angajamentul (commitment) — este promisiunea de a executa sarcina până la o anumită dată. Diferența este critică: estimarea spune „probabil 5 zile„, angajamentul — „facem în 5 zile„. Managerii confundă adesea aceste concepte, transformând estimarea într-un termen limită fără drept la eroare.
Procesul de estimare este la fel de important ca și rezultatul său. Când echipa discută evaluarea sarcinii, ies la iveală cerințe ascunse, dependențe și riscuri. Chiar dacă cifra finală este inexactă, discuția oferă tuturor participanților o înțelegere a sarcinii. De aceea, metodele colective de evaluare (Planning Poker) sunt mai eficiente decât cele individuale.
Există mai multe metode de estimare, fiecare potrivită pentru diferite etape ale proiectului și niveluri de detaliere. Alegerea metodei depinde de datele disponibile și de acuratețea necesară.
| Metoda | Tip | Acuratețe | Când se utilizează |
|---|---|---|---|
| Planning Poker | Expertă, colectivă | Ridicată (în sprint) | Evaluarea sarcinilor pentru sprint |
| T-Shirt sizing | Expertă, rapidă | Medie | Evaluarea preliminară a epicurilor |
| Estimare analogică | Pe baza istoricului | Medie | Sarcini similare în trecut |
| Three-point (PERT) | Probabilistă | Peste medie | Sarcini cu incertitudine ridicată |
| Parametrică | Formulă | Depinde de date | Sarcini omogene măsurabile |
Planning Poker — cea mai populară metodă de evaluare în Agile. Fiecare dezvoltator primește un pachet de cărți cu numere Fibonacci (1, 2, 3, 5, 8, 13, 21). După discutarea sarcinii, toți arată cartea simultan. Dacă estimările diferă — dezvoltatorii cu estimarea minimă și maximă își explică logica, apoi are loc o revotare. Metoda elimină influența autorităților și oferă o estimare mai precisă.
T-Shirt sizing — estimare grosieră după mărimea tricoului: XS, S, M, L, XL, XXL. Metoda este utilizată pentru estimarea rapidă a sarcinilor mari (epicurilor) în etapele incipiente, când detaliile nu sunt cunoscute. Ulterior, fiecare astfel de sarcină este descompusă și estimată în Planning Poker. T-Shirt sizing durează 5-10 minute per sarcină, dar oferă doar ordinul de mărime.
PERT utilizează trei estimări: optimistă (O), pesimistă (P) și cea mai probabilă (M). Estimarea finală se calculează după formula: (O + 4M + P) / 6. Metoda ia în considerare incertitudinea și oferă un rezultat mai realist decât o estimare unică. PERT este deosebit de util pentru sarcini cu riscuri ridicate sau tehnologii noi.
Acuratețea estimării depinde de etapa proiectului și de cantitatea de informații cunoscute. Cu cât evaluarea se face mai devreme, cu atât marja de eroare este mai mare — acest lucru este normal și trebuie luat în considerare în planificare.
Conul incertitudinii (Cone of Uncertainty) — model care descrie cum scade marja de eroare a estimării pe măsură ce proiectul avansează. În faza de concept, marja de eroare este de 400% (sarcina poate dura de la 1 la 4 luni). La momentul sprintului — 20% (1-1.2 luni). Conștientizarea acestui model ajută să nu ceri estimări exacte în etapele incipiente.
Evaluarea relativă (în story point-uri) este mai exactă decât cea absolută (în ore), deoarece oamenii compară mai bine sarcinile decât estimează timpul. „Această sarcină este de două ori mai complexă decât aceea„ — o judecată mai fiabilă decât „această sarcină va dura 8 ore„. Evaluările relative nu depind de dezvoltatorul specific și își păstrează acuratețea la schimbarea executantului.
Acuratețea estimării poate fi îmbunătățită printr-o abordare sistematică, discuție colectivă și analiza greșelilor trecute. Există câteva practici dovedite.
Orice sarcină estimată la mai mult de 2 zile trebuie descompusă în subsarcini. Principiu: dacă o sarcină nu poate fi estimată cu o precizie de 50%, înseamnă că este prea mare. Împarte-o în pași, fiecare fiind de înțeles și estimabil. După descompunere, estimarea totală este adesea de 1.5-2 ori mai mare decât cea inițială.
Ține istoricul estimărilor și compară cu costurile reale. De exemplu: „sarcinile estimate la 3 story point-uri durează în medie 4 zile, nu 2„. Folosește velocity echipei pentru prognozare: dacă echipa finalizează 20 de story point-uri pe sprint, nu planifica 30. Analiza acurateței estimărilor anterioare este cel mai bun antrenament pentru abilitatea de estimare.
Ancorarea — efect psihologic în care prima estimare exprimată influențează toți participanții. Pentru a evita ancorarea, în Planning Poker toți arată cărțile simultan, nu pe rând. Calibrarea — verificarea regulată a estimărilor cu realitatea: după 10-20 de sprinturi, echipa învață să estimeze mai exact datorită feedback-ului.
Fiecare sarcină conține riscuri ascunse: boala dezvoltatorului, problemă cu API, modificarea cerințelor. Adaugă în estimare un factor ajustat la risc: pentru sarcini cu risc ridicat — multiplicator 1.5-2, cu risc scăzut — 1.1-1.2. Arată transparent clientului ce riscuri sunt luate în considerare și cum influențează acestea termenele.
Greșelile la estimare se repetă în majoritatea echipelor, indiferent de maturitatea lor. Cunoașterea acestor greșeli este primul pas spre corectarea lor.
Cea mai frecventă greșeală — estimarea după scenariul optimist: „dacă totul merge perfect, facem în 3 zile„. În realitate, nimic nu merge perfect: bug-uri, întrebări despre cerințe, sarcini dependente. Soluție: estimează după scenariul cel mai probabil, nu după cel optimist. Folosește PERT pentru a lua în considerare variabilitatea.
Când managerul spune „este nevoie până vineri„, dezvoltatorul ajustează subconștient estimarea la acest termen. Estimarea sub presiune este întotdeauna subevaluată și duce la depășirea termenelor. Soluție: estimarea trebuie să precedă termenul limită, nu invers. Mai întâi echipa estimează, apoi părțile convin asupra termenelor.
Complexitatea sarcinii (cât să gândești) și timpul (cât să faci) — sunt metrici diferite. O sarcină poate fi simplă, dar de lungă durată (a codifica 10 ecrane). Sau complexă, dar rapidă (a găsi un bug în legacy). În story point-uri se estimează de obicei complexitatea, iar timpul se derivă din velocity-ul echipei.
Dezvoltatorul nu lucrează 8 ore consecutiv la o singură sarcină: întâlniri, code review, ajutor colegilor, sarcini administrative consumă 30-50% din timpul de lucru. Schimbările de context trebuie luate în considerare în estimare: în realitate, dezvoltatorul scrie cod 3-4 ore pe zi.
Întrebări frecvente
Dezvoltarea — este un proces creativ cu un nivel ridicat de incertitudine. Spre deosebire de construcții sau producție, unde fiecare pas este cunoscut, în IT fiecare sarcină este unică. Necunoscutele necunoscute (unknown unknowns) — principala cauză a inexactității. Chiar și o echipă experimentată greșește în 30-50% din estimări. Acest lucru este normal și trebuie luat în considerare în planificare.
Story point-urile sunt mai bune pentru planificarea sprinturilor, deoarece sunt relative și nu depind de executant. Orele sunt necesare pentru contracte și raportare externă, dar sunt mai puțin exacte. Combinația optimă: sarcinile sunt estimate în story point-uri, iar termenele sunt convertite prin velocity-ul echipei în zile calendaristice.
Pentru sarcinile cu tehnologii necunoscute, folosește mai întâi Spiko (cercetare pe timp limitat). După cercetare, echipa înțelege complexitatea și poate oferi o estimare realistă. Adaugă un multiplicator de 2-3 la estimarea obișnuită și include un buffer de 50% pentru dificultăți neprevăzute.
Arată descompunerea — împarte sarcina în subsarcini cu estimarea fiecăreia. Explică din ce se compune timpul: dezvoltare, testare, code review, documentație. Propune alternative: reducerea domeniului, simplificarea funcționalității sau împărțirea pe etape. Nu reduce niciodată estimarea fără a modifica cerințele.
Reevaluarea este necesară atunci când apare informație nouă despre sarcină: au ieșit la iveală cerințe suplimentare, au fost descoperite limitări tehnice sau s-a schimbat prioritatea. În cadrul sprintului, sarcinile nu se reevaluează — atenția este pe finalizare. Între sprinturi, backlog-ul este reevaluat în cadrul grooming-ului.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și