Sunteți pe pagina 1din 4

Agile project management

Pentru a înțelege principiul metodologiei Agile trebuie să ne îndreptăm atenția asupra modalității
anterioare de gestionare a unui proiect de dezvoltare software. Avem astfel Waterfall, o metodologie
tradițională de dezvoltare software, care urmează un flux liniar și secvențial, începând cu cerințele și
planificarea, și finalizând cu testarea și implementarea.
Printre caracteristicile generale întâlnim:

- Scopul întregului proiect și cerințele aferente sunt definite în avans;


- Fiecare fază a proiectului trebuie completată și închisă înainte ca următoarea fază să înceapă;
- Se așteaptă doar schimbări minore în timpul proiectului;
- Estimarea efortului este consistentă;
- Procesul este de durată și poate fi împărțit în faze;
- Succesul se măsoară în atingerea obiectivelor din punct de vedere al timpului, costurilor și
scopului.

Metodologia Agile, pe de altă parte, este o metodologie iterativă și incrementală, care se concentrează
pe oferirea unui produs valoros și funcțional în mod continuu. Ca și diferențe față de Waterfall, amintim:

- Scopul proiectului și cerințele nu sunt definite foarte clar în avans;


- Procesul este iterativ, iar fiecare ciclu de dezvoltare depinde de rezultatele și experiența
dobândită în ciclul anterior;
- Schimbarea cerințelor este posibilă;
- Efortul și durata implementării sunt greu de estimat;
- Părțile procesului au beneficii directe și pot fi utilizate direct de utilizatorul final;
- Succesul este măsurat prin satisfacția clientului.

Ajungem astfel la definiția generală. Astfel că Agile este o metodologie de management a proiectelor ce
încearcă să micșoreze riscurile de dezvoltare și timpul de execuție prin implementarea proiectelor în
formă flexibilă și interactivă.

Caracteristicile metodologiei Agile includ:

- Iterații: În metodologia Agile, funcționalitățile sunt dezvoltate în cicluri de dezvoltare, numite


iterații. Aceste iterații sunt perioade scurte de timp, între 1 și 4 săptămâni, în care se adaugă și
se testează noi funcționalități.
- Flexibilitate: Metodologia Agile este foarte flexibilă și adaptabilă la schimbări. Practicienii Agile
sunt deschiși la schimbări în funcție de feedback-ul constant al utilizatorilor și de evoluția pieței.
- Echipa multifuncțională: Metodologia Agile presupune formarea unei echipe multifuncționale,
care să poată lucra împreună pentru a produce rezultate valoroase și funcționale.
- Comunicare constantă: Comunicarea constantă între toate părțile implicate în dezvoltarea
produsului este crucială în metodologia Agile. Aceasta ajută la eliminarea confuziei și la
asigurarea că toată lumea are același nivel de înțelegere.
- Livrare intermediară: La finalul fiecărei iterații va exista un rezultat care poate fi prezentat
clientului și utilizatorului final. Fiecare iterație va implementa complet toate activitățile cuprinse
în acea iterație.

Tipurile de metodologii Agile includ Scrum, Kanban, Lean, XP (Extreme Programming) și Crystal. Acestea
sunt abordări diferite ale metodologiei Agile, dar au ca scop comun livrarea unui produs de calitate în
mod continuu și adaptarea la schimbările necesare în timpul procesului de dezvoltare.

În ceea ce privește diferențele, acestea pot varia de la o metodologie la alta, dar există câteva
caracteristici care diferențiază tipurile de metodologii Agile. Iată câteva exemple:

- Scrum este cea mai populară metodologie Agile și se concentrează pe planificarea cu ajutorul
sprinturilor, în care se adaugă și se testează noi funcționalități într-un interval fix de timp.
Implică, de asemenea, stand-up-uri zilnice și o întâlnire de revizuire a sprint-ului, pentru a evalua
progresul și pentru a lua decizii.
- Kanban se concentrează pe limitarea lucrărilor în curs și pe maximizarea fluxului. Utilizează
tablouri Kanban, pe care sunt reprezentate toate etapele procesului de dezvoltare. Limitarea
lucrărilor în curs duce la reducerea timpului de așteptare și la îmbunătățirea productivității.
- XP se concentrează pe livrarea de software de calitate în mod rapid și eficient. Utilizează
testarea automată, programarea în pereche și integrarea continuă pentru a asigura calitatea și
eficiența dezvoltării software.
- Lean se concentrează pe reducerea risipei și maximizarea valorii pentru utilizatori. utilizează
cicluri iterative de dezvoltare și se concentrează pe eliminarea activităților care nu adaugă
valoare, pentru a reduce costurile și timpul de dezvoltare.
- Crystal se concentrează pe adaptarea procesului de dezvoltare la echipa și la nevoile acesteia.
Utilizează o abordare flexibilă și se concentrează pe dezvoltarea software-ului în mod
incremental, pentru a reduce riscul și pentru a maximiza valoarea pentru utilizatori.

În general, toate tipurile de metodologii Agile au ca scop livrarea unui produs de calitate în mod
continuu, adaptarea la schimbare.

Din perspectiva guvernanței și a modului de lucru, ne vom axa pe metodologia de tip Scrum.

Rolurile importante în metodologia Scrum includ Responsabilul de Produs (Product Owner), Scrum
Master, Echipa de Dezvoltare și Părțile Interesate (Stakeholders). În privința responsabilităților specifice
fiecărui rol, amintim:

- Scrum Master – acționează ca un coordonator prin medierea procedurii Scrum în cadrul echipei;
se asigură de buna funcționare a ședințelor; are o atitudine proactivă în deblocarea
impedimentelor.
- Responsabilul de produs – este responsabil pentru gestionarea listei de priorități a
funcționalităților de inclus; definește și prioritizează cazurile de utilizare în mod clar și concis;
cunoaște valoarea produsului pentru companie.
- Echipa de dezvoltare – asigură partea executivă a procesului; dezvoltă produsul din punct de
vedere tehnic și conceptual; actualizează activitățile dintr-o iterație în funcție de progres.
- Părțile interesate – reprezintă factorul de decizie; aprobă cazurile de utilizare și produsul final.
Procesul Scrum este parcurs și monitorizat cu ajutorul unor ședințe care sunt esențiale pentru
planificarea, dezvoltarea și livrarea produsului. Aceste ședințe includ:

- Ședința de planificare - are loc la începutul fiecărui sprint și implică Scrum master-ul, echipa de
dezvoltare și proprietarul produsului. Scopul acestei ședințe este de a planifica obiectivele
sprintului, de a selecta elementele de backlog care vor fi dezvoltate și de a estimare timpul
necesar pentru a finaliza aceste elemente. Agenda de discuții cuprinde verificarea resurselor
umane și a disponibilității acestora, prezentarea impedimentelor care pot apărea, selectarea
cazurilor de utilizare din backlog, definirea complexității acestor cazuri, alegerea activităților
pentru fiecare caz de utilizare, repartizarea lor către resursele disponibile, estimarea efortului
pentru fiecare task.
- Ședința zilnică: așa cum prevede și denumirea, această ședință are loc în fiecare zi, la aceeași
oră, durează de obicei 15 minute și implică întreaga echipă de dezvoltare și, implicit, Scrum
master-ul. Scopul acestei ședințe este de a face o actualizare rapidă a progresului lucrărilor și de
a identifica problemele sau blocajele care ar putea afecta progresul. Fiecare membru prezent
prezintă răspunsurile la următoarele întrebări: Ce am făcut ieri?, Ce voi face astăzi?, Am vreun
impediment?.
- Ședința de revizuire - are loc la sfârșitul fiecărui sprint și implică Scrum master-ul, întreaga
echipă de dezvoltare, proprietarul produsului și părțile interesate în anumite cazuri. Scopul
acestei ședințe este de a prezenta produsul finit proprietarului produsului și de a discuta modul
în care aceste elemente îndeplinesc obiectivele sprintului. Agenda de lucru presupune evaluarea
iterației care tocmai s-a încheiat, discutarea blocajelor care au apărut pe parcurs, discutarea
cazurilor de utilizare și statusul fiecărei activități alese la începutul iterației.
- Ședința retrospectivă - are loc la sfârșitul fiecărui sprint și implică Scrum master-ul, întreaga
echipă de dezvoltare și responsabilul de produs. Scopul acestei ședințe este de a analiza
procesul de dezvoltare și de a identifica punctele tari și punctele slabe pentru a îmbunătăți
procesul în viitor. Se prezintă feedbackul primit în urma adresării de întrebări precum: Ce a mers
bine?, Ce se poate îmbunătăți?, Cum se poate îmbunătăți acel lucru?.

Sprinturile reprezintă echivalentul iterațiilor și sunt gestionate prin intermediul ședințelor de planificare
și revizuire. Aceste sprinturi sunt concepute pentru a oferi oportunități de feedback și de ajustare a
procesului de dezvoltare, în funcție de nevoile utilizatorilor și ale proprietarului produsului. Sprinturile
ajută, de asemenea, la îmbunătățirea procesului de dezvoltare, prin stabilirea unor obiective clare și prin
monitorizarea progresului către aceste obiective.

Glosar:

Backlog-ul este o listă de cerințe, caracteristici și funcționalități pe care trebuie să le dezvoltați pentru a
crea un produs software. Backlog-ul este o parte importantă a procesului Agile și este folosit pentru a
prioritiza munca echipei de dezvoltare în fiecare sprint. Backlog-ul este gestionat de proprietarul
produsului, care este responsabil de actualizarea și prioritizarea elementelor în funcție de nevoile
clienților și de obiectivele de afaceri.

MVP, sau Minimum Viable Product, este o versiune minimală a produsului software care conține
suficiente caracteristici pentru a satisface nevoile clienților și pentru a permite obținerea feedback-ului.
MVP-ul este adesea utilizat în cadrul procesului Agile pentru a reduce timpul și costurile de dezvoltare și
pentru a asigura că produsul este bine primit de clienți. După lansarea MVP-ului, echipa de dezvoltare
poate adăuga noi funcționalități și caracteristici în funcție de feedback-ul primit de la clienți și de
prioritățile proprietarului produsului.

S-ar putea să vă placă și