Story pointurile — sunt unități relative de măsurare a complexității sarcinilor în metodologiile agile de dezvoltare. Spre deosebire de ore, story pointurile iau în considerare nu doar timpul, ci și complexitatea, riscurile și incertitudinea sarcinii. Conform datelor Scrum.org, 2023, echipele care utilizează evaluarea relativă în story pointuri ratează termenele sprinturilor cu 25% mai rar comparativ cu echipele care evaluează în ore.
Principalele puncte
Story pointurile — sunt o metrică a complexității sarcinii utilizată în Scrum și alte metodologii Agile. Echipa evaluează fiecare sarcină nu în ore, ci în unități relative: „această sarcină este de două ori mai complexă decât cea de referință”. Această abordare neutralizează diferența de viteză între diferiți developeri și se concentrează pe complexitate.
Conceptul de story point a apărut la începutul anilor 2000 odată cu popularizarea Scrum. Unul dintre primii care a descris metoda a fost Ron Jeffries în cadrul Extreme Programming (XP). Ideea era să se treacă de la evaluarea în „ore-om”, care este întotdeauna inexactă, la complexitatea relativă pe care echipa o stabilește colectiv. Acum story pointurile sunt standardul industriei pentru echipele Agile.
La evaluarea în story pointuri, echipa ia în considerare trei factori: volumul de muncă (cantitatea de cod, ecrane, logică), complexitatea (provocări tehnice, tehnologii noi) și incertitudinea (cerințe neclare, riscuri). Un story point poate însemna „sarcină simplă fără riscuri”, iar 8 — „sarcină complexă cu incertitudine ridicată”.
Alegerea scalei story pointurilor influențează acuratețea evaluării și confortul planificării. Cea mai populară scară este șirul lui Fibonacci, dar există și alternative.
| Scară | Valori | Avantaje | Dezavantaje |
|---|---|---|---|
| Fibonacci | 1, 2, 3, 5, 8, 13, 21 | Creștere naturală a dispersiei pentru sarcini mari | Complexă pentru echipele noi |
| Liniară | 1, 2, 3, 4, 5 | Simplă și intuitivă | Fără dispersie pentru sarcini mari |
| Exponențială | 1, 2, 4, 8, 16, 32 | Dispersie maximă pentru sarcini mari | Sarcinile mari sunt greu de diferențiat |
| T-Shirt | S, M, L, XL | Evaluare rapidă aproximativă | Imprecisă, necesită conversie |
Șirul lui Fibonacci nu a fost ales întâmplător. Diferența dintre 1 și 2 este minimă (50%), iar între 13 și 21 — semnificativă (62%). Aceasta reflectă realitatea: sarcinile mici sunt evaluate mai precis, cele mari — cu o dispersie mai mare. Când o sarcină este evaluată la 21 de story pointuri, echipa înțelege: „nu știm cât va dura, dar cu siguranță mai mult de 13”. Scara Fibonacci previne acuratețea falsă.
Pentru ca scara să funcționeze, echipa stabilește un referință: „sarcina X — 1 story point”. De obicei, referința este o sarcină simplă, bine cunoscută: „adaugă un câmp text pe ecran” sau „repară un bug de tip greșeală de scriere”. Toate celelalte sarcini sunt evaluate în raport cu referința. Fără referință, story pointurile își pierd sensul — fiecare înțelege unitatea diferit.
Velocity (viteza echipei) — numărul mediu de story pointuri pe care echipa le finalizează într-un sprint. Aceasta este metrica cheie pentru prognozarea termenelor proiectului.
Velocity se calculează pe baza sarcinilor finalizate: se însumează story pointurile tuturor sarcinilor pe care echipa a reușit să le finalizeze (definition of done îndeplinit). Sarcinile nefinalizate nu sunt luate în considerare. Pentru acuratețe, se ia media ultimelor 3-5 sprinturi. De exemplu, dacă echipa a finalizat 20, 22, 18 și 24 de story pointuri în ultimele 4 sprinturi, velocity = 21 sp.
Cunoscând velocity și volumul total al backlogului în story pointuri, se poate prognoza numărul de sprinturi până la lansare. De exemplu, dacă în backlog sunt 210 story pointuri, iar velocity = 21, sunt necesare 10 sprinturi. Aceasta este o prognoză aproximativă care se rafinează pe parcurs. Important: velocity este o medie, nu o obligație. Planificați după limita inferioară (18 sp), nu după medie.
Velocity nu poate fi crescută prin comandă — este un simptom al sănătății proceselor. Creșterea durabilă a velocity se obține prin: reducerea datoriei tehnice, îmbunătățirea proceselor de code review, reducerea comutărilor de context, automatizarea testării și CI/CD. Important: velocity diferitelor echipe nu poate fi comparată — fiecare echipă definește story pointurile diferit.
Story pointurile și orele au scopuri diferite, iar alegerea între ele depinde de context. Echipele experimentate folosesc ambele abordări pentru sarcini diferite.
Story pointurile sunt de neînlocuit pentru planificarea sprinturilor: nu depind de cine va executa sarcina. Un junior poate face 2 sp pe zi, un senior — 4 sp, dar evaluarea sarcinii rămâne 2 sp pentru ambii. Story pointurile permit urmărirea productivității echipei fără a compara dezvoltatorii. Aceasta reduce presiunea politică și îmbunătățește atmosfera în echipă.
Orele sunt necesare pentru obligațiile externe: contracte, devize, rapoarte pentru client. Clientul vrea să știe nu „8 story pointuri”, ci „3 săptămâni”. Pentru conversia story pointurilor în ore se folosește historical conversion rate: echipa știe că 1 sp = aproximativ 4 ore de muncă. Conversia trebuie să fie transparentă și bazată pe date, nu pe presupuneri.
Multe echipe folosesc abordarea combinată: sarcinile sunt evaluate în story pointuri pentru planificarea sprintului, apoi managerul le convertește în ore/zile pentru raportarea externă. Este important să nu amestecați două sisteme într-un singur proces: fie evaluați în story pointuri și deduceți timpul din velocity, fie evaluați direct în ore.
Implementarea story pointurilor este adesea însoțită de greșeli care anulează avantajele evaluării relative. Iată cele mai frecvente dintre ele.
Cea mai frecventă greșeală — echipa stabilește: „1 sp = 4 ore”. În acest caz, story pointurile își pierd sensul și se transformă în ore sub alt nume. Story pointurile trebuie să fie relative, nelegate de timp. Dacă sarcina A este de două ori mai complexă decât sarcina B, primește 2 sp, indiferent de câte ore va dura.
Când o sarcină este evaluată după finalizarea ei — aceasta nu este o evaluare, ci o constatare. Story pointurile trebuie atribuite înainte de începerea lucrului, în momentul de maximă incertitudine. Evaluarea post-factum distorsionează velocity și nu aduce beneficii pentru planificare. Mai mult, creează o falsă senzație de acuratețe.
Compararea velocity echipei A cu echipa B — un exercițiu fără sens. Fiecare echipă definește referința și scala diferit. Pentru o echipă, 1 sp este o sarcină simplă de o oră, pentru alta — de o zi. Se poate compara doar velocity aceleiași echipe în dinamică: crește sau scade.
Când sarcini diferite cu aceeași complexitate primesc story pointuri diferite, iar cele mai complexe — mai puține, scala se strică. Echipa trebuie să calibreze periodic scala: la fiecare 3-6 sprinturi să verifice retrospectiv cât de bine au corespuns evaluările cu complexitatea reală. Aceasta îmbunătățește consistența evaluărilor.
Întrebări frecvente
Story pointurile nu au un echivalent fix în ore. Este o unitate relativă: 1 sp = complexitatea sarcinii de referință. Pentru conversia în ore, folosiți historical conversion rate a echipei voastre: împărțiți numărul mediu de ore lucrate într-un sprint la velocity. De obicei, 1 sp = 4-8 ore, dar aceasta este individual pentru fiecare echipă.
Da, story pointurile pot fi utilizate în Kanban, dar cu rezerve. În Kanban nu există sprinturi fixe, prin urmare velocity se calculează nu pe sprint, ci pe săptămână sau lună. Echipele Kanban folosesc adesea în locul story pointurilor Cycle Time — timpul de parcurgere a sarcinii de la început până la sfârșit. Alegerea depinde de specificul echipei.
Dacă evaluările diferă (unul dă 3 sp, altul — 13), acesta este un semnal că sarcina nu este bine înțeleasă. Descompuneți sarcina în părți mai mici. Discutați riscurile și incertitudinile pe care le văd diferiții developeri. Dacă sarcina este mare — evaluați-o ca Spike (cercetare de 2-4 zile) în loc de story pointuri.
Tranziția durează 3-6 sprinturi. Începeți cu alegerea scalei (Fibonacci — safest choice) și stabilirea sarcinii de referință. Organizați 2-3 sesiuni de Planning Poker. După fiecare sprint, calculați velocity. Nu convertiți story pointurile în ore — lăsați echipa să se obișnuiască cu noul sistem. După 3 sprinturi veți vedea cât de mult s-a îmbunătățit planificarea.
Nu, evaluarea nu se schimbă. Story pointurile sunt o evaluare preliminară a complexității, făcută înainte de începerea lucrului. După finalizarea sarcinii, evaluarea rămâne aceeași, chiar dacă efortul real a fost diferit. Modificarea evaluării post-factum distorsionează statisticile și face prognozarea lipsită de sens. Analizați discrepanțele la retrospective, dar nu schimbați evaluarea după fapt.
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