Arta de a estima un proiect IT fără să pierzi bani și clienți
N

Author

Negiba Radu MAxim

Published

Arta de a estima un proiect IT fără să pierzi bani și clienți

IT project estimation software estimation technique technical complexity

Peste 66% din proiectele software depășesc bugetul estimat. Descifrăm metodele PERT, WBS și bottom-up estimation care transformă ghicirea în știință exactă și te protejează de surprize costisitoare.

Estimarea unui proiect software este o artă și o știință în același timp. Studiile internaționale arată că peste 66 la sută din proiectele software depășesc bugetul estimat, iar aproximativ o treime depășesc termenele planificate. Aceste statistici nu sunt doar cifre abstracte. Reprezintă nopți nedormite, relații distruse cu clienții, bani pierduți și stres uriaș pentru toți cei implicați.

Secretul unei estimări bune stă în descompunere și realism. Înainte să dai un preț, trebuie să împarți proiectul în componente mici și gestionabile. Estimarea profesionistă folosind metodologii dovedite precum Work Breakdown Structure, tehnica PERT și estimarea bottom-up nu este complicată sau academică. Este fundamentul oricărui proiect de succes.

Descompunerea proiectului: Work Breakdown Structure

Pentru o aplicație web tipică, începi cu faza de descoperire și planificare care de obicei consumă între opt și zece la sută din totalul orelor. Aici intră analiza cerințelor, studiul competitorilor, proiectarea arhitecturii tehnice și scrierea specificațiilor funcționale. Este fundamentul pe care se construiește totul, și economisirea timpului aici te va costa de zece ori mai mult mai târziu.

Urmează design-ul, care ia între zece și cincisprezece la sută din proiect. Aici vorbim despre wireframe-uri, design vizual, prototipuri interactive și crearea unui sistem de design consistent. Mulți developeri ignoră această fază sau o subestimează dramatic, apoi se trezesc că trebuie să refacă jumătate din interfață pentru că nu corespunde așteptărilor clientului.

Backend-ul este partea cea mai substanțială, consumând de obicei între treizeci și patruzeci la sută din timp. Include baza de date, API-urile, logica de business, integrările cu servicii externe și implementarea măsurilor de securitate. Aici complexitatea poate exploda rapid dacă nu ai o arhitectură clară de la început.

Frontend-ul ia alte douăzeci și cinci până la treizeci și cinci la sută, acoperind arhitectura aplicației, implementarea componentelor vizuale, gestionarea stării aplicației, integrarea cu API-urile și adaptarea pentru diferite dimensiuni de ecran. Este faza unde "detaliile" ascunse pot dubla timpul estimat: animații, micro-interacțiuni, edge cases în interfață, compatibilitate cross-browser.

Testing-ul și quality assurance merită între zece și cincisprezece la sută din timp, iar deployment-ul și documentația încă cinci până la zece la sută. Mulți developeri tratează testarea ca pe o activitate opțională sau o comprimă la final când termenele presează. Rezultatul: bug-uri în producție care costă de zece ori mai mult să le repari decât dacă le-ai fi prins în faza de testare.

Tehnica celor trei puncte: PERT

Metoda Trei Puncte este utilă în special pentru task-uri incerte sau proiecte complexe, ajutând echipele să ia în considerare scenariile optime și pesimiste. Pentru fiecare task îți imaginezi trei scenarii: cel optimist, când totul merge perfect; cel realist, când lucrurile decurg normal; și cel pesimist, când apar probleme. Formula matematică îți spune să iei scenariul optimist plus de patru ori scenariul realist plus scenariul pesimist, totul împărțit la șase. Rezultatul este o estimare mult mai realistă decât simpla ghicire.

Să luăm un exemplu concret. Trebuie să implementezi un sistem de autentificare. Optimist, dacă totul merge perfect, îți ia opt ore. Realist, cu complexitate normală, îți ia șaisprezece ore. Pesimist, dacă apar probleme neașteptate cu OAuth sau testarea pe diferite browsere, poate ajunge la treizeci și două de ore. Aplici formula și obții aproximativ șaptesprezece ore. Dar pentru siguranță, rotunjești la douăzeci de ore, adăugând un buffer pentru eventuale surprize.

Această metodă funcționează pentru că forțează dezvoltatorul să gândească critic despre ce poate merge prost. Când estimezi optimist, creierul tău ignoră automat toate problemele potențiale. PERT te forțează să le iei în considerare și să creezi o estimare care reflectă realitatea, nu speranța.

Estimarea bottom-up: construiești de jos în sus

Această metodă implică estimarea fiecărui task individual și agregarea acestora pentru un total. Este cea mai precisă metodă, dar și cea mai consumatoare de timp. Pentru un feature "User Dashboard", de exemplu, descompui complet tot ce înseamnă acel dashboard.

La backend trebuie să proiectezi schema de bază de date, să creezi endpoint-urile API pentru fiecare funcționalitate, să implementezi un layer de caching pentru performanță, să scrii unit tests și să treci prin code review. Fiecare din aceste activități are propriul timp estimat: patru ore pentru schema, cincisprezece ore pentru cinci endpoint-uri la trei ore fiecare, șase ore pentru caching, opt ore pentru teste, patru ore pentru review și refinement. Subtotal backend: treizeci și șapte de ore.

La frontend trebuie să creezi arhitectura componentelor, să construiești layout-ul dashboard-ului, să implementezi vizualizările de date, să conectezi totul la API, să asiguri responsive design, să scrii teste și să faci testing cross-browser. Subtotalul ajunge la patruzeci și trei de ore. Mai adaugi integrare, testare și bug fixing și ajungi la peste o sută de ore doar pentru un singur feature complex.

Avantajul acestei metode este că, atunci când clientul îți spune că bugetul este prea mare, poți arăta exact unde merg orele și ce componente ar putea fi eliminate sau simplificate pentru a reduce costul. Transparența completă elimină percepția că "arunci un număr din burtă."

Factorii care complică estimarea

Complexitatea tehnică poate schimba dramatic estimarea. Un proiect CRUD simplu, cu interfață standard și tehnologii pe care le cunoști bine, va lua exact cât estimezi. Dar unul cu logică de business moderată, integrări multiple cu API-uri externe și sistem de autentificare complex poate lua cu treizeci până la cincizeci la sută mai mult. Proiectele cu arhitectură microservices, funcționalități real-time sau procesare de plăți pot dubla sau tripla timpul estimat. Iar dacă intri în zone precum inteligență artificială, procesare de big data sau blockchain, poți înmulți estimarea inițială cu trei sau chiar patru.

Experiența echipei contează enorm. Un developer senior poate finaliza în douăzeci de ore ceea ce unui junior îi ia șaizeci. La prima vedere, pare că juniorii sunt o afacere proastă. Dar să facem calculul: juniorii la douăzeci de euro pe oră înseamnă 1.200 de euro pentru task-ul respectiv. Seniorul la cincizeci de euro pe oră înseamnă 1.000 de euro. Nu doar că seniorii sunt mai ieftini, dar și calitatea codului este superioară, cu mai puține bug-uri și o arhitectură mai bună.

Problema scope creep

Problema care poate distruge orice estimare este schimbarea constantă a cerințelor. Clientul începe cu o idee clară: vreau un website cu cinci pagini și un formular de contact. După două săptămâni vine cu un nou gând: ar fi bine să adăugăm și un blog. Apoi vrea integrare cu newsletter. Apoi își dă seama că are nevoie de un portal pentru clienți. Fiecare schimbare pare mică, dar împreună pot transforma un proiect de douăzeci de ore într-unul de o sută.

De aceea, procesul formal de change request este esențial. La început, scrii negru pe alb ce include proiectul și ce nu include. Orice adăugare la acest scope trebuie să treacă printr-o procedură clară: clientul face cererea în scris, tu estimezi timpul și costul suplimentar, el aprobă sau nu. Simplu, clar, fără ambiguități. În contract specifici că orice modificare la scope-ul inițial se facturează separat, de obicei cu un tarif orar cu douăzeci până la treizeci la sută mai mare decât tariful de bază pentru a compensa pentru întreruperea workflow-ului.

Overhead-ul invizibil

Și mai este un factor pe care mulți îl ignoră: timpul non-billable. Din cele patruzeci de ore pe săptămână, doar douăzeci și patru până la douăzeci și opt sunt cheltuite efectiv pe dezvoltare. Restul se duc pe meeting-uri cu clientul, code review-uri, documentație, debugging pentru probleme de environment, emailuri, comunicare și administrare de proiect. Acest overhead trebuie inclus fie în tariful orar, fie facturat separat, altfel lucrezi gratis jumătate din timp.

Developerii care reușesc să fie profitabili pe termen lung sunt cei care înțeleg că fiecare minut petrecut pe proiect trebuie să fie facturat cumva. Dacă petreceți patru ore pe săptămână în meeting-uri cu clientul, fie includeți aceste ore în estimare, fie le facturați separat, fie vă creșteți tariful orar pentru a le acoperi. Nu există varianta "le fac cadou" - asta duce la burnout și faliment.

Buffer-ul salvator

Estimarea costurilor și timpului pentru dezvoltare software se bazează pe cunoștințe incomplete și presupuneri despre viitor, deci toate conțin incertitudine. Buffer-ul recomandat variază în funcție de complexitate: pentru proiecte simple cu tehnologii cunoscute, adaugă cincisprezece până la douăzeci la sută. Pentru proiecte medii cu unele tehnologii noi, douăzeci până la treizeci la sută. Pentru proiecte complexe cu multe necunoscute, treizeci până la cincizeci la sută.

Nu este pesimism sau lipsă de încredere în propriile abilități. Este realism bazat pe experiență. Întotdeauna vor apărea surprize: API-uri care nu funcționează cum spune documentația, dependențe care au bug-uri, cerințe care erau ambigue și trebuie clarificate, testare care descoperă probleme arhitecturale. Buffer-ul te protejează de aceste surprize inevitabile și îți permite să livrezi la timp fără să intri în panică sau să lucrezi nopți întregi.



Share this article

blog.recent_posts

You might also like

blog.view_all
Comunitatea antreprenorilor români

Comunitatea antreprenorilor români

Grupul Freelancer Office este locul unde oamenii de afaceri, startup-urile și profesioniștii se întâlnesc pentru a face schimb de idei, oportunități și colaborări. Fie că ești antreprenor la început de drum, investitor sa