Curs 5
Introducere in Scrum
Daniela Dănciulescu
Scrum
u Scrum este un cadru (framework) agil pentru a duce la bun sfarsit proiecte complexe.
u A fost inventat / formalizat pentru proiecte de dezvoltare de software dar functioneaza
foarte bine pentru orice tip de proiect complex
u Scrum este un set simplu de roluri, responsabilitati, artefacte si meeting-uri.
u Acestea nu se schimba in timpul dezvoltarii proiectului (chiar daca persoanele care au
la un moment dat unul dintre roluri pot fi schimbate).
u Scrum-ul mai poate fi privit si ca setul de reguli care unesc rolurile, responsabilitatile si
artefactele impreuna
u Scrum este:
u Usor de inteles
u Greu de “master”
Scrum
Scrum roles
u Product Owner
u Este persoana ce are viziunea produsului si autoritatea prin care se poate infaptui aceasta viziune.
u El trebuie sa aiba o disponibilitate constanta pentru proiect si este responsabil sa comunice
viziunea si prioritatile catre echipa de dezvoltare.
u Scrum Master
u Nu este un manager al echipei, este un facilitator pentru Product owner si pentru echipa.
u Elimina toate impedimentele care obstructioneaza echipa in a-si indeplini tintele din cadrul
sprintului. Acest lucru ajuta echipa sa ramana creativa si productiva in acelasi timp ce succesele
ei sunt facute vizibile product owner-ului.
u Scrum master-ul este si un coach de agile in cadrul echipei
u Team
u Pentru proiectele de software o echipa contine de obicei un mix de programatori, arhitecti,
analisti, testeri sau designeri.
u In Scrum echipa se organizeaza singura.
u Este responsabila pentru a determina cat se va implementa in cadrul unui sprint si modul in care
tintele sprintului vor fi atinse
User story
u Un user story este o definitie la nivel inalt a unui requirement. Aceasta contine doar
atata informatie cat este necesara ca echipa sa poata produce o estimare rezonabila
a efortului necesar pentru a o implementa. Un user story poate fi impartit in sub-
task uri pentru o descriere mai detaliata
“As a <type of user> I want <capability> so that <business value>”
u Un epic descrie o parte foarte mare din proiect care trebuie dezvoltata. In esenta
este un user story foarte mare, care va fi spart in mai multe user stories si care are
nevoie de mai multe sprinturi pentru a putea si implementat
u Bug-uri: story-uri care sunt focusate pe probleme detectate dupa implementare
u Improvement-uri: story uri care nu sunt critice dar care aduc un beneficiu de
calitate in momentul in care sunt implementate
Backlogs
u Backlog-ul se prioritizeaza de catre product owner impreuna cu echipa
u Echipa impreuna cu product owner-ul face un review constant al backlog ului
(backlog grooming)
Product backlog – detaliere
Increment & Definition of done
u Incrementul reprezinta
u a) suma tuturor item-urilor care au fost implementate intr-un sprint
u b) suma tuturor item-urilor care au fost implementate in toate sprint-urile
u Definition of done reprezinta elementele care trebuie indeplinite pentru a putea
afirma ca un story a fost implementat (done-done, potentially shippable).
u Un exemplu de definition of done:
u Unit testele au trecut
u Code review ul a fost facut si nu exista follow up uri nefacute
u Testele functionale au fost facute cu succes
u Non-functional requirements sunt indeplinite
u Product owner-ul accepta story-ul
Scrum meetings
Diagrame si rapoarte
u Burndown chart – reprezentare grafica a muncii ramase intr-un sprint versus
axa timpului
u Version report – arata data probabila cand o versiune va fi finalizata. Calculul
datei se bazeaza pe rata de progres de pana acum comparativ cu cantitatea
de munca estimata ce a mai ramas pentru aceasta versiune
u Release burndown – reprezentare grafica a muncii ramase pentru un release
versus numarul de sprinturi de pana acum
u Velocity chart – arata valoarea care a fost livrata in fiecare sprint si media
acesteia