Scrum 101

Junior programeri 19. tra. 2022

Edukacija u području Scrum metodologije za junior developere.

Možda ste već donekle upoznati s konceptom Scrum i Agile metodologija – ali koliko ih zapravo poznajete?

Prva i najvažnija stvar koju treba zapamtiti je da Scrum nije isto što i Agile metodologija.

Agilna metodologija je, kako sama riječ kaže, samo metodologija.

Zapravo se temelji na Agile manifestu koji daje 4 norme i 12 principa kojih se timovi trebaju pridržavati kako bi radili prema Agile metodologiji. Prema Agilnom manifestu, razvoj softvera temelji se na postupnom i ponavljajućem pristupu.

Scrum, s druge strane, predstavlja framework za Agilnu metodologiju.

Naravno, Scrum nije jedini okvir koji se temelji na agilnosti, ali je svakako jedan od najzastupljenijih, kako na našim prostorima tako i u svijetu.

Kako bismo u potpunosti razumjeli osnove Scruma, prvo ćemo obratiti pozornost na glavne aktere, bitne koncepte u Scrumu i ceremonije koje omogućuju funkcioniranje cijelog sustava.

Možda neće sve biti jasno na početku, ali do kraja čitanja bit ćeš spreman za rad u jednom Scrum timu.

Scrum tim

Scrum tim je samodostatna i samoorganizirajuća jedinica. Članovi jednog Scrum tima sami odlučuju što će raditi, kako i kada. Sami otklanjaju sve vanjske probleme s kojima se susreću, kao i što rade na vlastitom poboljšanju. Njihov cilj je da na kraju predstave softver koji radi, a kako će se organizirati i doći do toga je samo na njima.

Jedan Scrum tim čine:

  • Product Owner. Uloga Product Ownera je biti poveznica između ostatka Scrum tima, end usera i stakeholdera. Product Owner obično je osoba s obrazovanjem iz tehničkih znanosti, ali nije uključena u programiranje unutar samog tima. Glavni zadatak Product Ownera je razumjeti ciljnu skupinu i potrebe korisnika za koje kreira proizvod ili funkcionalnost zajedno s razvojnim timom.
  • Development tim. Iako sam naziv upućuje da se radi o developerima, development tim ne čine samo programeri. Da, development tim također uključuje dizajnere, testere i sve stručnjake potrebne za nesmetano odvijanje projekta.
  • Scrum Master. Uloga Scrum Mastera je pomoći razvojnom timu i osigurati da svi članovi Scrum tima mogu nesmetano obavljati svoj posao. Bit ove uloge je eliminirati svaki čimbenik koji može omesti daljnji proces ili promijeniti tijek rada Scrum tima. Ljudi na pozicijama Scrum Mastera ne moraju imati tehničko obrazovanje, ali je poželjno. Uz bolje razumijevanje procesa razvoja i samog proizvoda, mogu lakše uvidjeti ovisnosti i potencijalne posljedice određenih događaja na dogovorenom timelineu.

Bitni pojmovi u Scrumu:

Sprint

Sprint je osnova Scruma. To je vremenski period tijekom kojeg Scrum tim radi na proizvodu/usluzi ili dijelu proizvoda dovršavajući zadatke.

Sprint je proizvoljne dužine, iako se obično izvodi u trajanju od 2 tjedna. Nakon jednog dovršenog Sprinta, sljedeći odmah počinje i tako se ponavlja sve dok softver ne bude gotov.

User stories

User Story je zadatak na kojem radi development tim unutar jednog Sprinta. Trebao bi sadržavati dovoljno informacija da član razvojnog tima razumije što treba učiniti, dobiti predodžbu o tome koji je poslovni zahtjev i kako će izvođenje korisničke priče doprinijeti uspjehu klijenta ili proizvoda na tržištu .

Sam User story kreira Product Owner zajedno s development timom, a pravilo obično glasi: "Ja kao (uloga), volio bih da mogu (neka funkcija), jer (razlog)".

Na primjer:

Ako razvijamo softver za banku, primjer jednog user storyja bi bio:

„Kao službenik na šalteru, želio bih vidjeti povijest otvaranja dodatnih korisničkih računa, zato što bih time mogao pužiti informaciju korisniku”.

Product i Sprint Backlog

  • Jedan product backlog sadrži popis svih funkcionalnosti koje su potrebne za razvoj za konačni proizvod. To je samo popis svih user stories. Product Owner prikuplja user stories i stavlja ih u Product Backlog. Također u komunikaciji sa stakeholderima, njegova je zadaća postaviti prioritete i tako organizirati Backlog, naravno u suradnji s ostatkom tima. Ovaj proces se naziva grooming.

Odvojimo li od Product Backloga one user stories koje planiramo završiti tijekom sljedećeg sprinta, onda dobijamo sprint backlog.

Na slici ispod 1 je Sprint backlog, 2. je Product backlog, a 3. je jedan User story u Jiri.

Izvor: https://support.atlassian.com/jira-software-cloud/docs/use-your-kanban-backlog/

Proces jednog Scrum ciklusa

Napokon smo došli do dijela koji te je najviše zanimao, a to je kako funkcionira Scrum. Postoje ceremonije koje su sastavni dio jednog Sprinta odnosno Scrum ciklusa.

Sada kada si upoznati s terminima koji se koriste i tko su svi akteri u Scrum timu, moći ćeš bolje razumjeti svaku Scrum ceremoniju.

Bez daljeg odugovlačenja, svaki ciklus počinje i završava upravo sa sprint planningom.

Sprint planning

U ovom dijelu ciklusa odlučuje se koje će user stories, odnosno funkcionalnosti biti implementirane u sljedećem Sprintu. Product Owner je zadužen je za određivanje prioriteta user storyja, a tim svakom user storyju dodjeljuje procjenu u obliku story poena. Sam Scrum tim odlučuje kako se dodjeljuju story poeni i što oni znače za određeni tim (na primjer, hoće li 1 story point značiti 1 dan programiranja). Tijekom planiranja Sprinta, Scrum Master će pomoći timu u procjeni zadataka i ujedno dati smjernice o obimu posla (broj zadataka) na temelju svih planiranih obveza, godišnjih odmora i sl.

Ono što je bitno napomenuti je da se izbor temelji na činjenici da na kraju Sprinta možete prezentirati što je urađeno tijekom Sprinta i da bi do tada razvijeni softver trebao raditi bez problema.

Kada se odaberu funkcionalnosti, one se iz Product Backloga prebacuju u Sprint Backlog.

Sprint execution

U okviru Sprinta, development tim sam organizira tko će što raditi i počinje se pisati kod. Kako netko uzme da radi zadatak, tako ga prebacuje iz to do u in progress, a kada je skroz gotov prelazi u done stage.

Općenito se vizualno prikazuje kao tablica u kojoj imamo kartice poredane u stupce:

Izvor: https://instagantt.com/alternatives/jira-alternative-for-gantt-charts

Daily Scrum

Ovo je sastanak koji se održava svaki dan sve dok traje Sprint.

Važno je da ne traje duže od 15 minuta. Prisustvuje cijeli razvojni tim kao i Scrum Master.

Razgovara se o tome što se dogodilo prethodnog dana, kakvi su planovi za taj dan i ima li prepreka u radu.

Ako se pokaže da postoje neke prepreke, Scrum Master ih rješava kako bi tim mogao nastaviti s radom.

Sprint review

Nakon završetka Sprinta prelazi se na Sprint review.

Ovo je sastanak na kojem cijeli Scrum tim predstavlja stakeholderima što su radili tijekom sprinta. Također, stakeholderi dijele svoje povratne informacije i svi zajedno rade na tome što treba učiniti za sljedeći Sprint kako bi dodatno pridonijeli vrijednosti proizvoda.

Rezultat ovog sastanka je također ponovna prioretizacija Product Backloga, odnosno Grooming.

Sprint retrospective

Obično se održava odmah nakon pregleda Sprinta, ali ovom sastanku prisustvuje samo Scrum tim.

Obično se radi analiza prethodnog Sprinta i što se moglo bolje napraviti, gdje su bili problemi, kako ih učinkovitije riješiti itd.

Odmah nakon Sprint retrospektive se prelazi na Sprint planning i ciklus se ponavlja.

Sada znaš kako funkcioniraju osnove Scruma

Ono što je važno zapamtiti je da na kraju ciklusa dobiveni proizvod mora biti potpun.

To znači da je već prošao sve faze razvoja i da se može pustiti korisnicima.

Agilna metodologija i Scrum su svojim postupnim razvojem i gotovim featureom na kraju svakog sprinta riješili problem probijanja rokova na projektima od kojih se obično na kraju potpuno odustane.

Stakeholderima je važno da svojim kupcima uvijek mogu pružiti barem dio gotovog proizvoda, kao i da imaju uvid u to dokle su stigli sa svakim ciklusom. Naravno, dobivaju i priliku dati povratnu informaciju, što znači Scrum timu kreću li se u pravom smjeru. Ili ako to nije slučaj, to im daje vremena za ispravke.

Iako svaka tvrtka koristi svoju verziju prilagođenu samo njima, ne brini, ako dobro razumiješ osnove – brzo ćeš se prilagoditi svakoj verziji.

Oznake

Joberty

Joberty je platforma za razmjenu iskustava iz IT zajednice.

Tvoja prijava je uspješno sačuvana!
Odlično! Kako bi imao pristup cijelom sadržaju bloga potrebno je izvršiti proces plaćanja.
Tvoja prijava je uspješna!
Tvoj nalog je aktiviran, sada imaš pristup cijelom sadržaju bloga.