Documente Academic
Documente Profesional
Documente Cultură
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:
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:
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ă.
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.