Documente Academic
Documente Profesional
Documente Cultură
1.1 Introducere
Agile este un set de principii și valori, sub forma unui ghid ce ajută echipele de dezvoltare
software să ofere mai rapid și mai eficient produse de calitate clienților lor. Agile este o abordare
iterativă pentru livrarea de produse software, unde, la finalul fiecărei iterații este livrată o
versiune intermediară a produsului final. Fiecare versiune intermediară, deși nu reprezintă
funcționalitatea completă dorită de client, conține noi funcționalități față de versiunea anterioară.
Fiecare dintre aceste incrementări este validată de client, astfel încât, aceștia sunt participanți
activi în procesul de dezvoltare.
În acest context, agilitatea reprezintă abilitatea continuă de adaptare, capacitatea unei echipe de
a îmbunătăți constant felul în care lucreză. Aplicând principiile Agile, dezvoltarea produselor
software devine un proces dinamic în care fiecare parte interesată(stakeholder) se poate implica
pe parcurs, în care deciziile inițiale se pot schimba în ritmul alert în care industria IT și opțiunile
existente pe piață evoluează. Acesta este motivul pentru care abordarea incrementală a
dezvoltării produselor software este atât de eficientă si populară comparativ cu livrarea singulară
a produsului complex, pentru care modificarea anumitor funcționalități presupune o dificultate
ridicată.
Principiile Agile sunt prezentate în documentul Agile Manifesto, despre care vom vorbi în unul
dintre capitolele următoare. Totuși, aceste principii au apărut înainte de a fi redactate în forma
finală în acest document. Agile a apărut ca un răspuns la stilul clasic de gestiune de proiect, în
încercarea de a optimiza timpii de analiză, design, implementare și în general a tuturor
proceselor prezente în ciclul de viață al unui proiect. La începutul anilor 1990, pentru că utilizarea
calculatorului s-a extins considerabil în companii, industria de dezvoltare software a întâmpinat
o criză. Experții au estimat că timpul de la validarea unei nevoi business până la instalarea
aplicației în producție era de trei ani. Problema era că business-ul se schimba mai repede de atât,
chiar și în acea perioadă. În cei trei ani, atât cerințele, cât și sistemele erau supuse schimbării, iar
produsul software final devenea inutilizabil, dacă ajungea la versiunea finală și nu era întrerupt
pe parcurs. În alte industrii precum cea aerospațială, dura chiar mai mult până ce un sistem
complex putea fi utilizat, durate estimate până la 20 de ani de design, implementare și testare
software. Frustrarea liderilor din domeniu i-a condus pe aceștia spre întâlniri frecvente unde se
dezbăteau și propuneau soluții pentru moduri mai eficiente de a organiza procesul de dezvoltare
software. Aceste întâlniri s-au concluzionat în 2001 cu documentul Agile Manifesto.
În prezent, Agile este folosit într-o formă sau alta de 71% dintre organizații, conform unui studiu
al Project Management Institute din 2018. Mai mult, un studiu realizat de Pricewaterhouse
Coopers în 2017 susține că proiectele care implementează o metodologie Agile sunt cu 28% mai
de succes decât proiectele tradiționale.
1.2 Waterfall vs. Agile
Click to addBookmark this page
Waterfall este o abordare liniară a dezvoltării de produse software, care mai este cunoscută și
sub numele de Linear Sequential Life Cycle Model. În această definiție, secvențial (sequential)
indică faptul că etapele proiectului vor fi tratate în ordine, iar echipa nu va trece la următoarea
secvență până ce nu o va fi terminat cu succes pe cea anterioară. Etapele într-un proiect Waterfall
sunt următoarele:
- Design
Deși această abordare este destul de clară si ajută clientul si echipa de dezvoltare să stabilească
încă de la început ce se va livra, după cum am discutat în capitolul anterior, aceasta nu poate ține
pasul cu schimbările de cerințe ce vor apărea inevitabil pe parcursul proiectului. O limitare
majoră a acestei metode este faptul că sunt necesare cerințe detaliate chiar de la începutul
proiectului. Un alt dezavantaj al Waterfall este că produsul final poate fi nesatisfăcător pentru
clientul care, în această abordare, nu are vizibilitate asupra diferitelor etape intermiedare ale
produsului. Odată obținut produsul final, aplicația software, modificarea acestuia poate fi dificilă
și costisitoare.
Spre deosebire de modelul Waterfall, în cazul Agile activitățile se desfășoară concomitent. În
abordarea Agile, eforturile se concentrează asupra livrării rapide a componentelor funcționale. În
locul planificărilor detaliate prezente în modelul Waterfall, în cazul Agile programul de
implementarea este împărțit în cadre de timp prestabilite (de obicei între 2 și 4 săptămâni)
numite iterații. Pentru fiecare iterație, la începutul acesteia, este stabilită o listă de livrabile,
prioritizată în funcție de valoarea business a acestora. Valoarea este stabilită de către clientul
care, pe măsură ce lucrările sunt finalizate, poate revizui si evalua livrabilele. Această abordare
incrementală permite clientului să modifice funcționalitățile aplicației pe parcurs și ajută echipa
de dezvoltare să rămână concentrată asupra sarcinilor curente.
În 2001, 17 lideri din industria IT, reprezentanți ai diferitelor metodologii ce urmau a fi asociate
termenului de “Agile”, s-au adunat în Snowbird, Utah, pentru a găsi metode alternative la
procesele de dezvoltare software complexe (heavyweight) și bazate pe documentație.
Participanții își doreau să găsească o cale prin care să promoveze modele organizaționale bazate
pe oameni, pe colaborare, pe comunitate, astfel încât viziunea clientului să fie înțeleasă și
implementată cu succes. Concluzia acestei întâlniri și a discuțiilor purtate de participanți a fost
documentul Agile Manifesto, ce reprezintă un set de principii și valori. Autorii documentului
susțin că nu sunt împotriva documentației de proiect, atâta timp cât aceasta nu devine un
manuscris cu sute de pagini neactualizate si foarte rar folosite. În plus, aceștia se declară pro
planficare, dar recunosc limitările planificării într-un mediu turbulent cum este industra IT.
Următoarele rânduri reprezintă valorile prezentate în Agile Manifesto, așa cum sunt descrise în
document:
“ Descoperim căi mai bune de a dezvolta software, punând în practică și ajutându-i pe alții să
pună în practică. Prin această lucrare am ajuns să prețuim:
- Cea mai mare prioritate a noastră este să satisfacem clientul prin livrare timpurie și continuă de
software de calitate.
- Livrăm software funcțional frecvent, de la două săptămâni până la două luni, cu o preferință
pentru termenul mai scurt.
- Oamenii care cunosc business-ul și dezvoltatorii software trebuie să lucreze împreună zilnic pe
timpul proiectului.
- Construim proiecte în jurul unor persoane motivate. Le oferim mediul de lucru și sprijinul de
care au nevoie și avem încredere în ei pentru a finaliza cu succes treaba.
- Cea mai eficientă metodă de a transmite informația către și în cadrul echipei de dezvoltare este
conversația față în față.
- Atenția continuă asupra excelenței tehnice și a unui design bun îmbunătățește agilitatea.
Beneficiile aduse de implementarea principiilor Agile sunt numeroase și vizează în mod direct
toate părțile implicate, de la client până la fiecare membru al echipei de dezvoltare. În
continuare, le vom detalia pe cele mai importante dintre acestea:
Agile oferă oportunitatea de a se implica tuturor părților interesate, atât înainte de începerea
fiecărui sprint, cât și la finalul acestuia și chiar pe durata lui dacă este cazul. Implicând clientul în
fiecare pas al proiectului, este încurajată colaborarea între client și echipa de dezvoltare și astfel
se creează mai multe șanse pentru echipă de a pune întrebări, de a clarifica și a înțelege mai bine
viziunea clientului. Livrările frecvente cresc încrederea părților implicate în abilitatea echipei de
dezvoltare de a finaliza cu succes sarcinile și de a furniza software funcțional, de calitate.
- Transparența
Abordarea Agile oferă o oportunitate unică pentru client de a se implica pe întregul parcurs al
proiectului. Este necesar ca părțile implicate să înțeleagă că, la finalul fiecărei iterații, ceea ce văd
este un software în curs de implementare și nu produsul final. Acest lucru permite o vizibilitate
clară asupra progresului și a problemelor apărute pe parcurs, astfel ca procesele să poată fi
adaptate în funcție de aceste criterii.
La finalul fiecărei iterații, echipa de dezvoltare va livra noi funcționalități ale aplicației. Pentru că
iterațiile sunt cadre de timp relativ scurte, modificările aduse au rezultate previzibile. Frecvența
livrărilor are un impact pozitiv asupra valorii business a proiectului, pentru că echipa de
dezvoltare poate contura o imagine clară asupra felului în care va funcționa aplicația, iar
utilizatorii se pot obișnui treptat cu aceste funcționalități.
Pentru că fiecare iterație are o durată fixă, costul este previzibil și numărul de sarcini ce pot fi
îndeplinite în acest timp este limitat. Aceste aspecte, dar și estimările oferite clientului la
începutul fiecărei iterații, îl ajută pe acesta să își gestioneze bugetul, având un cost aproximat al
fiecărei sarcini de lucru, cost calculat în funcție de timp, complexitate și efort.
În plus, în funcție de costul și timpul estimat, clientul poate hotărî prioritatea fiecărei sarcini.
- Permite schimbări
Permițând clientului să ia toate deciziile legate de prioritatea sarcinilor de lucru, echipa înțelege
care funcționalități sunt cele mai importante pentru afacerea clientului și poate furniza funcțiile
care oferă cea mai multă valoare.
Centrul atenției într-un proiect Agile este utilizatorul. Fiecare cerință de implementare are
anumite criterii de acceptanță stabilite din punctul de vedere al utilizatorului. În astfel de
proiecte, feedback-ul de la utilizator poate fi decisiv asupra viitorului proiectului, pentru ca
software-ul final să ajungă să îi satisfacă nevoile.
Este foarte improbabil ca un proiect Agile să devină un eșec total. Fiecare versiune intermediară a
produsului este în sine o aplicație funcțională, chiar dacă nu prezintă toate capabilitățile
produsului final. Acest lucru este asigurat la finalul fiecărei iterații, astfel că dacă proiectul va fi
întrerupt la un moment dat, chiar și varianta disponibilă la acel moment va putea fi folosită.
Situațiile neprevăzute sunt rare, pentru că în timpul scurt al unei iterații este improbabil să apară
probleme sau modificări. Acestea vor fi dezbătute și analizate în cadrul ședințelor și soluțiile vor
putea fi implementate chiar începând cu iterația imediat următoare.
Într-o echipă auto-organizată, cum este o echipă Agile, membrilor acesteia le este permis să fie
creativi, să inoveze și să își asume responsabilitatea. Fiecare membru are libertatea de a alege la
ce sarcină să lucreze astfel încât să se folosească de cunoștințele sale sau să dobândească unele
noi.
Instrumentele prezentate mai jos sunt de fapt aplicații online de gestiune a proiectelor, care
includ funcționalități specifice Agile, cum ar fi gestiunea sarcinilor, colaborarea echipei, metrici,
rapoarte, etc.
Jira este cea mai cunoscuta și folosită aplicație Agile. Deși a început ca un sistem de
urmărire a erorilor, acum este completat cu caracteristici ce permit gestiunea sarcinilor,
colaborarea și raportarea în echipă. Jira poate gestiona o varietate de proiecte diferite
(Scrum, Kanban, chiar și management de proiect tradițional), fiind foarte flexibil în
configurare, astfel că permite definirea fluxurilor de lucru și proceselor unice pentru
echipa ce îl folosește. Este adesea folosit împreună cu suita de aplicații de la furnizorul
său, Atlassian, pentru a oferi o experiență dinamică, ușor de personalizat. Se poate
integra și cu GitHub(instrument de versionare software).
Blossom este un instrument Agile modern, dedicat echipelor distribuite. Această aplicație include
caracteristicile necesare implementării metodologiei Kanban. Dispune de un flux de lucru
personalizabil pentru a reprezenta vizual starea sarcinilor efectuate. Accentul este pus pe simplitate și
claritate, pentru a identifica vizual ușor cine lucrează și la ce.
Nostromo este o aplicație nouă, un instrument care include toate opțiunile pentru gestiunea de proiecte
în echipele de dezvoltare software sau, generic, echipe ce lucrează în domeniul digital. Include
funcționalități ca gestionarea sarcinilor, gestionarea timpului, raportare, analiză, colaborare, design.
Zoho Sprints este un instrument simplu și flexibil de planificare care ajută echipele Agile să fie
pregătite de schimbare. Această aplicație își propune să ofere o abordare iterativă a muncii, susținând
de asemenea colaborarea în echipă. Interfața este una intuitivă ce facilitează planificarea și prioritizarea
elementelor de lucru, vizualizarea sarcinilor în lucru sau finalizate. Este fezabil pentru echipe ce
implementează metodologiile Scrum, Kanban sau Scrumban.
Clarizen este o soluție software de automatizare a serviciilor profesionale din companii. Această
aplicație este concepută pentru a accelera ritmul de lucru, integrând munca, conținutul si procesele.
Este un instrument excelent pentru manageri ce gestionează mai multe proiecte în care există procese
repetabile, pentru că automatizează aceste fluxuri de lucru.
2. Metodologii Agile
2.1 Scrum
Click to addBookmark this page
Scrum este cea mai cunoscută și folosită metodologie Agile. Aceasta definește mai multe
reguli, practici și metode de a implementa principiile și valorile Agile. Metodologia
Scrum respectă principiile și valorile Agile în primul rând prin folosirea iterațiilor ca și
cadre de timp pentru dezvoltarea diferitelor versiuni intermediare ale produsului. În
Scrum, o iterație se numește sprint și durează ideal între 1 și 4 săptămâni. Ca și în cazul
Agile, Scrum oferă un ghid de implementare, fără a impune anumite aspecte, și de aceea
părțile implicate pot hotărî durata unui sprint, în funcție de nevoile clientului, de
capacitatea echipei sau alte considerente de proiect. Într-un proiect Scrum, cerințele sunt
definite într-o listă de priorități numită backlog și pot fi revizuite de către client pe tot
parcursul proiectului. Metodologia Scrum introduce rolurile de Scrum Master și Product
Owner, pe lângă echipa de dezvoltare. În plus, Scrum definește anumite evenimente ce
pot fi organizate pentru a îmbunătăți procesele și a aplica principiile Agile. Vom discuta
pe larg despre rolurile și ceremoniile Scrum în capitolele următoare.
Termenul de Scrum a fost folosit pentru prima dată de către Hirotaka Takeuchi și Ikujiro
Nonaka în lucrarea lor publicată în 1986 cu titlul ”The New New Product Development
Game”, lucrare în care este subliniată importanța muncii în echipă, a impactului pe care
colaborarea îl are asupra productivității și rezultatului final. Această lucrare se referă la
dezvoltarea de produse complexe în general, și nu numai produse software. Cercetarea
celor doi susține că echipele mici, auto-organizate, cărora li se oferă obiective în locul
sarcinilor, obțin rezultate remarcabile. Echipele implicate pot atinge această performanță
doar dacă le este oferită libertatea necesară pentru a-și defini strategiile proprii cu scopul
de a îndeplini țelul comun.
Autorii au ales acest termen, asemănând echipele de producție cu un grup de jucători din
echipa de rugby, care avansează cu mingea într-o anumită formație numită Scrum.
Ken Schwaber și Jeff Sutherland au elaborat conceptul de Scrum și aplicabilitatea
acestuia în industria de dezvoltare software într-o prezentare susținută la conferința
Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) din
1995. Ulterior, mai mulți experți și autori au continuat să rafineze conceptele și
metodologia Scrum. În ultimii ani, popularitatea acestei metodologii a crescut foarte mult,
ajungând să fie metodologia preferată de majoritatea organizațiilor, la nivel global.
Scrum este atât de popular mai ales datorită simplității sale. Este ușor de înțeles și ușor de
implementat. În plus, majoritatea organizațiilor care au implementat această metodologie
au reușit să își atingă scopurile, să își îmbunătățească procesele, să livreze mai rapid
produse de calitate și, în consecință, au devenit exemple de succes ale proiectelor care
folosesc Scrum. O altă cauză importantă a popularității Scrum este reprezentată de
varietatea de certificări care se pot obține. Scrum Alliance este organizația oficială Scrum
ce oferă numeroase certificări pentru rolurile de Scrum Master, Product Owner, Scrum
Developer, Agile Coach, Scrum Trainer.
2.2 Kanban
Click to addBookmark this page
2.3 Scrumban
Click to addBookmark this page
Scrumban este o metodologie Agile de tip hibrid care, după cum sugerează și numele,
propune o combinație între practicile prezente în Scrum și Kanban. Inițial, Scrumban a
fost conceput ca metodă de a face tranziția de la o organizare de tip Scrum către Kanban,
dar, ulterior, îmbinând principiile ambelor metodologii, s-au constatat avantajele folosirii
acestui model combinat de gestiune a proiectelor. În prezent, Scrumban este folosit de
echipele care aleg să folosească Scrum ca stil de lucru, folosindu-se de flexibilitatea
acestei metodologii, dar care doresc să îmbunătățească felul în care lucrează, procesele pe
care le urmează, și se folosesc astfel de metodologia Kanban pentru a vizualiza și înțelege
mai bine care sunt ariile care necesită atenție sporită.
În Scrumban, munca este organizată în iterații scurte, ce păstrează denumirea de sprint-
uri. În plus, sarcinile de lucru sunt monitorizate cu ajutorul tablei și cartonașelor specifice
Kanban. Pentru a hotărî care sunt sarcinile la care se va lucra în iterația următoare, se țin
ședințe de planificare, dar dimensiunea backlog-ului (listei de sarcini) rămâne restrânsă,
aplicând principiul de work in progress limit de la Kanban. Această limită reprezintă
numărul maxim de sarcini la care echipa poate lucra în paralel la un anumit moment de
timp, pentru a evita începerea mai multor sarcini fără ca acestea să fie finalizate. Ședințele
de planificare nu se mai țin, ca în cazul Scrum, la începutul iterației, ci mai degrabă există
un eveniment ce declanșează nevoia pentru o astfel de ședință, de regulă când toate
cartonașele cu sarcini s-au deplasat din backlog către alte etape ale procesului, deci este
nevoie ca noi sarcini să fie luate în considerare și adăugate în listă.
Scrumban este considerat avantajos în următoarele situații:
- Proiecte de mentenanță
- Proiecte în care modificările de cerințe și/sau erorile de programare sunt frecvente
- Echipe concentrate pe dezvoltarea de produse noi
- Proiectele Scrum în care apar probleme datorate resurselor sau proceselor
Scrumban este de fapt foarte asemănător cu Scrum la nivel de practică, dar la nivel
cultural se apropie mai mult de Kanban – evoluție treptată, mai degrabă decât revoluție.
Product owner
Click to addBookmark this page
Product owner-ul este cel care definește cum va arăta produsul, ce funcționalități va conține.
El este cel care va comunica direct cu părțile implicate, iar prin feedback-ul acestora va hotărî
care sarcini aduc cea mai mare valoare incrementărilor curente si viitoare. Product owner-ul
este cel care gestionează lista de sarcini(backlog-ul) și se asigură că toată echipa cunoaște
prioritățile.
Funcțiile pe care acest rol le acoperă sunt:
- Vocea clientului – el este cel care reprezintă dorințele și nevoile clientului
- Comunicator – se ocupă cu adaptarea mesajelor pentru o mare varietate de părți
implicate; comunică pe înțelesul interlocutorilor săi, fie ei clienți, persoane care cunosc
business-ul sau chiar persoane tehnice din echipă
- Decident – evaluează prioritățile concurente pentru a alege funcționalitățile potrivite și,
eventual, le amână pe restul sau le exclude din sprint; decide frecvența livrărilor
Primul pas în a cunoaște metodologia Scrum este înțelegerea definiției și a principiilor sale.
Conceptul care stă la baza acestei metodologii este empirismul, care afirmă că toate
cunoștințele provin din experiență. Al doilea concept important pe care se bazează acestă
metodologie este abordarea iterativă, care presupune câștiguri incrementale pentru fiecare
nouă parte de cunoaștere empirică dobândită. În consecință, tot ce se implementează trebuie
să fie testat pentru a putea fi transformat în cunoștințe. Apoi, cunoștințele acumulate sunt
folosite pentru a îmbunătăți constant rezultatul.
- Adaptarea – în urma unei inspecții care indică un progres nesatisfăcător, procesul sau
materialul produs trebuie să fie ajustat, iar această adaptare trebuie realizată cât mai repede cu
putință pentru a minimiza deviere ulterioară. Astfel, în urma experienței și a greșelilor sau a
rezultatelor slabe, echipa poate să facă trecerea la noi modele de procese chiar în momentul
identificării problemelor sau cel mai târziu în iterația următoare.
siguranță pentru a refuza sarcini, pentru a cere ajutorul și, mai ales, pentru a încerca
lucruri noi. Echipa trebuie să fie destul de curajoasă încât să poată contesta status quo-
ul atunci când lucrurile nu merg sau pot fi îmbunătățite
Respectul – echipa Scrum se bazează foarte mult pe colaborare și de aceea este foarte
important ca între participanți să existe respect reciproc. Fiecare parte implicată
trebuie să respecte ideile, munca și realizările celorlalți, pentru că fiecarte dintre ei are
contribuția sa în evoluția proiectului
Oricine lucrează sau coordonează un proiect complex poate beneficia de utilizarea Scrum.
Scrum ajută echipele să prioritizeze liste lungi de îndatoriri în sarcini mici, ușor gestionabile.
Scrum ajută prin îmbunătățirea muncii în echipă, a comunicării și a rezultatelor finale.
Scrum este ușor aplicabil oricărei industrii, pentru că beneficiile sale sunt universale. Scrum
poate fi implementat în orice tip de proiecte, ale companiei sau chiar și de familie, de la
dezvoltarea de aplicații software sau gestionarea logisticii într-un magazin până la
organizarea unui eveniment.
3.2 Organizare
Click to addBookmark this page
Echipele Scrum lucrează în perioade scurte de timp care pot varia în
durată, de la o săptămână până la o lună. Acestă iterație se
numește sprint. Sprinturile au loc unul după altul, fără pauze, pentru a
menține o cadență constantă a proiectului. Fiecare sprint începe cu un
plan și se termină cu o revizuire a lucrărilor finalizate și o revizuire
suplimentară a modului în care echipa a lucrat împreună.
În timpul sprint-ului:
Când orizontul unui sprint este prea lung, definiția a ceea ce este
construit se poate schimba, complexitatea poate crește și riscul poate
crește. Sprinturile permit predictibilitatea asigurând inspecția și adaptarea
progresului către un obiectiv în nu mai mult de o lună. Astfel, și riscurile
sunt limitate ca orizont de timp.
Echipa Scrum este cea care decide lungimea sprintului (Product owner,
Scrum master și echipa de dezvoltare). Scrum master-ul acționează ca un
facilitator pentru a ajuta echipa să ajungă la un consens.
Echipele auto-organizate aleg modul de a-și îndeplini cel mai bine munca, nefiind
direcționate de entități din afara echipei. Echipele de dezvoltare sunt structurate
și împuternicite de companie să organizeze și să gestioneze propria lor muncă.
Nimeni (nici măcar Scrum master-ul) nu spune echipei de dezvoltare cum să își
îndeplinească sarcinile, cine și cum să implementeze funcționalitățile cerute.
Studiu de caz
Click to addBookmark this page
Pentru a înțelege mai bine conceptele Scrum, vom folosi ca exemplu proiectul renovării
bucătăriei într-un apartament. Pe măsură ce vom identifica noi concepte Scrum, vom
introduce detalii în studiul de caz pentru a vedea cum se pliază acestea în proiectul renovării
bucătăriei.
În prima fază, clientul si designerul de interior discută și stabilesc forma produsului final, se
pun de acord asupra materialelor, clientul își exprimă nevoile și dorințele, iar designerul
propune un model care să le satisfacă. Pe măsură ce lucrările avansează, pot apărea situații
neprevăzute (de exemplu nu există pe stoc un anumit tip de gresie pe care clientul o dorește),
care vor fi gestionate pe măsură ce apar. În acest caz modelul stabilit inițial se poate schimba,
cu acordul clientului. Acesta este ținut la curent cu progresul și obstacolele întâmpinate, cu
întârzierile apărute și motivul acestora, putând lua hotărâri legate de soluționarea acestora.
Echipa de lucrări împreună cu designerul de interior vor stabili durata unui sprint, iar clientul
poate aproba sau nu această durata. Pentru acest exemplu vom stabili durata unui sprint la o
săptămână, cu mențiunea că la fiecare final de sprint bucătăria trebuie să fie utilizabilă (un
produs parțial funcțional, chiar dacă nu include toate funcționalitățile încă). Clientul
împreună cu echipa pot stabili o durată estimată a proiectului (de exemplu o lună, 4 sprint-uri
de câte o săptămână), dar e posibil ca acestă durată să fie modifcată pe parcurs. De exemplu,
clientul poate hotărî că dorește și montarea unui sistem pentru colectare selectabilă a
gunoiului sau pot apărea blocaje ce nu depind de echipa de lucrători, iar acestea vor fi
reportate în sprintul 5, de comun acord cu clientul.
Odată începute lucrările, clientul nu se va implica direct în felul cum sunt desfășurate
activitățile. Muncitorii se vor coordona între ei, vor defini sarcini în aria proprie de expertiză,
vor estima efortul și vor decide cum este mai bine să îndeplinească aceste sarcini, fără a
împiedica progresul celuilalt.
Un contract social stabilit de către muncitori poate conține următoarele reguli, dar nu se va
rezuma neapărat la acestea (acesta este doar un exemplu; echipa va stabili aceste reguli de
comun acord):
Toți membrii echipei se întâlnesc în fiecare zi la ora 8:00 pentru ședința
zilnică
Când un membru al echipei are nevoie de ajutor, ceilalți se vor oferi, chiar
dacă nu este aria lor de expertiză
Fiecare membru are dreptul de a-și exprima opinia, iar ceilalți îi vor asculta
punctul de vedere
Scrum master-ul este cel care ajută echipa să execute sarcinile la cel mai înalt nivel de
calitate. Tot el este cel care protejează echipa de distrageri ce pot apărea atât din interior cât și
din exterior. Scrum master-ul este în măsură să tragă echipa sau membrii acesteia la
răspundere în legătură cu angajamentele de lucru asumate și respectarea valorilor și a
metodologiei Scrum.
Funcțiile unui Scrum master pot fi rezumate la:
- Antrenor – facilitează ședințele, discuțiile și propune îmbunătățiri
- Protector – acționează ca o interfață între echipă și restul părților implicate, pentru ca
echipa să poată rămâne concentrată
- Lider care servește echipa – conduce echipa fără a-și impune autoritatea și pune echipa
pe primul loc
- Avocat Agile – întărește principiile Agile în echipă și în organizație
Product owner-ul este cel care definește cum va arăta produsul, ce funcționalități va conține.
El este cel care va comunica direct cu părțile implicate, iar prin feedback-ul acestora va hotărî
care sarcini aduc cea mai mare valoare incrementărilor curente si viitoare. Product owner-ul
este cel care gestionează lista de sarcini(backlog-ul) și se asigură că toată echipa cunoaște
prioritățile.
Funcțiile pe care acest rol le acoperă sunt:
- Vocea clientului – el este cel care reprezintă dorințele și nevoile clientului
- Comunicator – se ocupă cu adaptarea mesajelor pentru o mare varietate de părți
implicate; comunică pe înțelesul interlocutorilor săi, fie ei clienți, persoane care cunosc
business-ul sau chiar persoane tehnice din echipă
- Decident – evaluează prioritățile concurente pentru a alege funcționalitățile potrivite și,
eventual, le amână pe restul sau le exclude din sprint; decide frecvența livrărilor
Echipa de dezvoltare este cea care îndeplinește sarcinile de lucru efective. Aceasta decide
cum să realizeze sarcinile propuse de Product owner. Echipa este structurată în
așa fel încât să poată fi responsabilă pentru propria organizare și gestiune a
muncii. Sinergia rezultată optimizează eficiența echipei și eficiența generală în
proiect.
Echipa de dezvoltare este responsabilă să livreze funcționalitățile agreate la
începutul sprint-ului și să păstreze transparența asupra muncii realizate și a
progresului pe parcursul sprint-ului.
Mărimea ideală a unei echipe Scrum este între 3 și 9 persoane, excluzând Scrum
master-ul și Product owner-ul. Dacă echipa ar fi mai mare, comunicarea ar deveni
greoaie.
Caracteristicile echipei de dezvoltare sunt următoarele:
o Auto-organizată – nimeni, nici măcar Scrum master-ul nu le spune mebrilor echipei
cum să își facă treaba
o Interdisciplinară – abilitățile cumulate ale membrilor echipei formează setul necesar
pentru implementarea funcționalităților și livrarea acestora cu fiecare incrementare de
produs
o Membrii echipei nu au titluri predefinite, indiferent care este munca pe care aceștia o
îndeplinesc
o Chiar dacă echipa este formată din persoane cu abilități în domenii diferite, cum ar fi
arhitectură software, testare, dezvoltare, operațiuni, nu există sub-echipe
o Deși fiecare membru poate fi specializat într-un anume domeniu, responsabilitatea
aparține echipei de dezvoltare în ansamblu
Studiu de caz
Click to addBookmark this page
Clientul în acest proiect este proprietarul apartamentului, bucătăria renovată reprezintă produsul
final, iar echipa care va lucra la acest proiect va fi compusă din designer de interior, electrician,
instalator, tâmplar, etc. O parte implicată(stakeholder) în acest proiect poate fi familia
proprietarului, aceștia putând să aibă inițial un cuvânt de spus legat de design, dar și un feedback pe
parcurs legat de rezultatele parțiale. O altă parte implicată, poate fi asociația de proprietari a
blocului, de exemplu în cazul în care renvoarea va include modificări ale instalației de gaze.
În prima fază, clientul si designerul de interior discută și stabilesc forma produsului final, se pun de
acord asupra materialelor, clientul își exprimă nevoile și dorințele, iar designerul propune un model
care să le satisfacă. Clientul este ținut la curent cu progresul și obstacolele întâmpinate, cu
întârzierile apărute și motivul acestora, putând lua hotărâri legate de soluționarea acestora.
Echipa de lucrări împreună cu designerul de interior vor stabili durata unui sprint, iar clientul poate
aproba sau nu această durata. Pentru acest exemplu vom stabili durata unui sprint la o săptămână,
cu mențiunea că la fiecare final de sprint bucătăria trebuie să fie utilizabilă (un produs parțial
funcțional, chiar dacă nu include toate funcționalitățile încă).
- Designer-ul de interior va avea rolul de product owner. Acesta se va asigura că înțelege foarte bine
cerințele proprietarului și nevoile acestuia legate de spațiul amenajat. El va păstra mereu legătura cu
clientul, informându-l pe acesta legat de progres, dar și de obstacolele apărute. El este și cel care va
informa echipa legat de cerințele proprietarului, va clarifica orice nelămuriri ale acestora și va stabili
prioritatea lucrărilor. Designer-ul de interior se va asigura că echipa de dezvoltare înțelege foarte bine
ce are de făcut, care este standardul de calitate agreat, care sunt criteriile după care rezultatul va fi
evaluat.
În practică, Scrum master-ul poate fi un membru al echipe de dezvoltare, deci în locul unui șef de
lucrări, oricare membru din echipa de dezvoltare își poate asuma acest rol.
5. Ceremonii Scrum
5.1 Sprint planning
Click to addBookmark this page
După cum sugerează și numele, sprint planning este evenimentul sau ceremonia Scrum în
care se face o planificare a sarcinilor ce vor fi îndeplinite în următoarea iterație. Sarcinile cu
prioritate dorite de client sunt discutate în cadrul acestei ședințe, pentru a stabili obiectivele
sprint-ului. Rolul Scrum master-ului este de facilitator. Product owner-ul descrie obiectivele
sprint-ului și răspunde întrebărilor echipei de dezvoltare. Dacă se determină că anumite
sarcini nu sunt suficient de clar definite pentru a fi implementate, echipa și Product owner-ul
pot hotărî să le excludă din sprint până acestea se vor clarifica. Echipa de dezvoltare poate
pune întrebări legate de execuție și de criteriile de acceptanță pentru fiecare dintre sarcini.
Echipa este cea care are ultimul cuvânt legat de efortul pe care sarcinile îl presupun și ce
anume poate fi realizat pe durata sprint-ului. În final, sunt agreate funcționalitățile ce vor fi
incluse în sprint-ul curent și pe care echipa își asumă responsabilitatea să le implementeze cu
succes. În cele din urmă, planificarea rezultată este o negociere între echipa de dezvoltare și
Product owner, bazată pe valoare și efort.
Cine participă la sprint planning?
Întreaga echipă participă la sprint planning: Scrum master, Product owner, echipa de
dezvoltare.
Când are loc ședința de sprint planning?
La începutul fiecărui sprint.
Cât durează ședința de sprint planning?
În ghidul oficial Scrum este menționat că ședința de planificare a sprint-ului nu trebuie să
depășească 8 ore. Regula generală este de a acorda 2 ore de planificare pentru fiecare
săptămână din sprint. Totuși, pe măsură ce membrii echipei se cunosc mai bine, comunicarea
va fi mai eficientă și timpul ședinței va fi redus.