Процена — kvantitativna procena radnog napora potrebnog za izvršenje zadatka, razvoj funkcionalnosti ili realizaciju projekta u celini. U mobilnom razvoju, procene se koriste za planiranje sprintova, određivanje troškova i upravljanje očekivanjima klijenta. Prema podacima Project Management Institute, 2024, greška procene u ranim fazama projekta može dostići 100%, što čini procenu jednom od najtežih disciplina u razvoju.
Glavno
Procena (od eng. estimate — procena) — predviđanje količine vremena ili truda potrebnog za izvršenje zadatka. U mobilnom razvoju, procene se izražavaju u satima, danima, story point-ovima ili novčanom ekvivalentu. Cilj procene nije tačno predviđanje, već smanjenje neizvesnosti radi donošenja odluka.
Procena — predviđanje sa marginom greške. Obaveza (commitment) — obećanje da će se zadatak izvršiti do određenog datuma. Razlika je kritična: procena kaže „verovatno 5 dana„, obaveza — „uradićemo za 5 dana„. Menadžeri često mešaju ove pojmove, pretvarajući procenu u rok bez prava na grešku.
Proces procenjivanja nije manje važan od njegovog rezultata. Kada tim diskutuje o oceni zadatka, otkrivaju se skriveni zahtevi, zavisnosti i rizici. Čak i ako je konačna cifra netačna, diskusija daje svim učesnicima razumevanje zadatka. Zato su kolektivne metode procene (Planning Poker) efikasnije od individualnih.
Postoji nekoliko metoda procene, svaka pogodna za različite faze projekta i nivoe detaljnosti. Izbor metode zavisi od dostupnih podataka i potrebne tačnosti.
| Metoda | Tip | Tačnost | Kada koristiti |
|---|---|---|---|
| Planning Poker | Stručna, kolektivna | Visoka (u sprintu) | Procena zadataka za sprint |
| T-Shirt sizing | Stručna, brza | Srednja | Preliminarna procena epika |
| Analogna procena | Na osnovu istorije | Srednja | Slični zadaci u prošlosti |
| Three-point (PERT) | Verovatnosna | Iznad proseka | Zadaci sa visokom neizvesnošću |
| Parametarska | Formulna | Zavisi od podataka | Homogeni merljivi zadaci |
Planning Poker — najpopularnija metoda procene u Agile-u. Svaki programer dobija špil karata sa Fibonačijevim brojevima (1, 2, 3, 5, 8, 13, 21). Nakon diskusije o zadatku, svi istovremeno pokazuju kartu. Ako se procene razlikuju — programeri sa minimalnom i maksimalnom procenom objašnjavaju svoju logiku, zatim sledi ponovno glasanje. Metoda eliminiše uticaj autoriteta i daje tačniju procenu.
T-Shirt sizing — gruba procena po veličini majice: XS, S, M, L, XL, XXL. Metoda se koristi za brzu procenu velikih zadataka (epika) u ranim fazama, kada detalji nisu poznati. Kasnije se svaki takav zadatak dekomponuje i procenjuje u Planning Poker-u. T-Shirt sizing traje 5-10 minuta po zadatku, ali daje samo red veličine.
PERT koristi tri procene: optimističnu (O), pesimističnu (P) i najverovatniju (M). Konačna procena se računa po formuli: (O + 4M + P) / 6. Metoda uzima u obzir neizvesnost i daje realističniji rezultat od pojedinačne procene. PERT je posebno koristan za zadatke sa visokim rizicima ili novim tehnologijama.
Tačnost procene zavisi od faze projekta i količine poznatih informacija. Što se procena radi ranije, veća je margina greške — to je normalno i treba uzeti u obzir u planiranju.
Konus neizvesnosti (Cone of Uncertainty) — model koji opisuje kako se margina greške procene smanjuje kako projekat napreduje. U fazi koncepta, margina greške iznosi 400% (zadatak može trajati od 1 do 4 meseca). U trenutku sprint-a — 20% (1-1.2 meseca). Svest o ovom modelu pomaže da se ne zahtevaju tačne procene u ranim fazama.
Relativna procena (u story point-ovima) tačnija je od apsolutne (u satima), jer ljudi bolje porede zadatke nego što procenjuju vreme. „Ovaj zadatak je dva puta složeniji od onog„ — pouzdaniji sud nego „ovaj zadatak će trajati 8 sati„. Relativne procene ne zavise od konkretnog programera i zadržavaju tačnost pri promeni izvršioca.
Tačnost procene se može povećati sistematskim pristupom, kolektivnom diskusijom i analizom prošlih grešaka. Postoji nekoliko dokazanih praksi.
Svaki zadatak procenjen na više od 2 dana treba dekomponovati na podzadatke. Princip: ako se zadatak ne može proceniti sa tačnošću od 50%, znači da je prevelik. Podeli ga na korake koji su razumljivi i merljivi. Nakon dekompozicije, ukupna procena je često 1.5-2 puta veća od početne.
Vodi istoriju procena i upoređuj sa stvarnim troškovima. Na primer: „zadaci procenjeni na 3 story point-a u proseku traju 4 dana, a ne 2„. Koristi velocity tima za predviđanje: ako tim zatvori 20 story point-ova po sprintu, ne planiraj 30. Analiza tačnosti prethodnih procena je najbolji trening za veštinu procenjivanja.
Sidrenje — psihološki efekat gde prva izrečena procena utiče na sve učesnike. Da bi se izbeglo sidrenje, u Planning Poker-u svi pokazuju karte istovremeno, a ne redom. Kalibracija — redovno proveravanje procena sa činjenicama: nakon 10-20 sprint-ova, tim uči da procenjuje tačnije zahvaljujući povratnim informacijama.
Svaki zadatak sadrži skrivene rizike: bolest programera, problem sa API-jem, promena zahteva. Dodaj u procenu faktor prilagođen riziku: za zadatke sa visokim rizikom — množitelj 1.5-2, sa niskim — 1.1-1.2. Transparentno pokaži klijentu koji rizici su uzeti u obzir i kako utiču na rokove.
Greške pri proceni se ponavljaju u većini timova, nezavisno od njihove zrelosti. Poznavanje ovih grešaka je prvi korak ka njihovom ispravljanju.
Najčešća greška — procena po najboljem scenariju: „ako sve bude idealno, uradićemo za 3 dana„. U stvarnosti, ništa ne ide idealno: bagovi, pitanja o zahtevima, zavisni zadaci. Rešenje: procenjivati po najverovatnijem scenariju, a ne po optimističnom. Koristi PERT za uzimanje u obzir varijabilnosti.
Kada menadžer kaže „potrebno je do petka„, programer podsvesno prilagođava procenu tom roku. Procena pod pritiskom je uvek potcenjena i dovodi do kašnjenja. Rešenje: procena treba da prethodi roku, a ne obrnuto. Prvo tim procenjuje, zatim strane dogovaraju rokove.
Složenost zadatka (koliko razmišljati) i vreme (koliko raditi) — različite metrike. Zadatak može biti jednostavan, ali dugotrajan (kodirati 10 ekrana). Ili složen, ali brz (pronaći bag u legacy-ju). U story point-ovima se obično procenjuje složenost, a vreme se izvodi iz velocity-ja tima.
Programer ne radi 8 sati neprekidno na jednom zadatku: sastanci, code review, pomoć kolegama, administrativni poslovi oduzimaju 30-50% radnog vremena. Promene konteksta treba uzeti u obzir u proceni: realno, programer piše kod 3-4 sata dnevno.
Često postavljana pitanja
Razvoj — kreativan proces sa visokim stepenom neizvesnosti. Za razliku od gradjevine ili proizvodnje, gde je svaki korak poznat, u IT je svaki zadatak jedinstven. Nepoznate nepoznanice (unknown unknowns) — glavni uzrok netačnosti. Čak i iskusan tim greši u 30-50% procena. To je normalno i treba uzeti u obzir u planiranju.
Story point-ovi su bolji za planiranje sprintova jer su relativni i ne zavise od izvršioca. Sati su potrebni za ugovore i eksterno izveštavanje, ali su manje tačni. Optimalna kombinacija: zadaci se procenjuju u story point-ovima, a rokovi se konvertuju kroz velocity tima u kalendarske dane.
Za zadatke sa nepoznatim tehnologijama, prvo koristi Spiko (istraživanje na ograničeno vreme). Nakon istraživanja, tim razume složenost i može dati realističnu procenu. Dodaj množitelj 2-3 na uobičajenu procenu i uključi 50% bafera za nepredviđene poteškoće.
Pokaži dekompoziciju — podeli zadatak na podzadatke sa procenom svakog. Objasni od čega se sastoji vreme: razvoj, testiranje, code review, dokumentacija. Predloži alternative: smanjenje obima, pojednostavljenje funkcionalnosti ili podela na faze. Nikad ne snižavaj procenu bez promene zahteva.
Preprocenjivanje je potrebno kada se pojave nove informacije o zadatku: otkriveni su dodatni zahtevi, otkrivena tehnička ograničenja ili se promenio prioritet. Unutar sprint-a se zadaci ne preprocenjuju — fokus je na završetku. Između sprint-ova, backlog se preprocenjuje u okviru grooming-a.
Zaključak
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође