Scrum je još jedna od metodologija agilnog razvoja softvera, koja se kao i ostale metodologije iz iste grupe odlikuje adaptibilnošću i lakim unošenjem projektnih promena u letu. Posebno je pogodna za dugotrajne i kontinuirane razvoje, gde je česti slučaj da se nakon godinu dana razvoja inicijalni zahtevi izmene usled promena na tržištu ili pojava novih tehnologija.
Princip Scrum-a se ogleda u sledećem – umesto dugotrajne izgradnje velikog sistema u kom će učestvovati veliki broj ljudi, organizacija posla će se razbiti na manje i kraće segmente sistema i manje timove. Svaki segment će biti kao mini-projekat za sebe, na njemu će raditi određen broj ljudi iz razvojnog tima i po završetku njihovog rada isporučiće završenu jedinicu koja će se uklopiti u celokupan sistem.
Plan aktivnosti u Scrum-u se definiše putem sprintova. Sprint je jedan određeni period vremena (najčešće se meri brojem nedelja, i u zavisnosti od potreba projekta iznosi između 1 i 4 nedelje) tokom kojeg će razvojni tim odraditi jedan zahtev projekta i isporučiti ga naručiocu. Nakon svakog završetka ciklusa voditelj projekta planria aktivnosti za naredni sprint i na osnovu njih dodeljuje zadatke razvojnim timovima.
Tipična Scrum organizacija podrazumeva i određene uloge dodeljene pojedincima koji rade na projektu. Te uloge su sledeće:
– vlasnik projekta je, kao i uvek, predstavnik naručilaca projekta. Njegov zadatak je da konstantno prenosi viziju željenog rezultata razvojnom timu, kao i da nadgleda i odobrava rezultate prikazane nakon svakog sprinta. U većim projektima/organizacijama njegove aktivnosti se dodatno proširuju, no krajnja suština je da je on spona između razvojnog tima i naručilaca projekta – on postavlja zahteve i njemu se isporučuju rezultati.
– razvojni tim podrazumeva manje ili više grupa ljudi koji su u mogućnosti da funkcionišu kao samoorganizujuća celina. Obično u timu bude jedan predvodnik (team leader) i nekoliko članova drugih profila, od developera do dizajnera, inženjera, QA analitičara itd. Tokom svakog sprinta svaki tim je obavezan da uvidi na koji način će zadovoljiti zahteve projekta za taj sprint, organizuje aktivnosti i na kraju isporuči željeni rezultat.
– Scrum master je osoba koja se ponaša kao posrednik između vlasnika projekta i razvojnog tima. On sagleda širu sliku i stanje celokupnog projekta, radi na otklanjanju potencijalnih problema koji bi onemogućili razvojni tim da isporuči zacrtani rezultat, time garantujući efikasnost i produktivnost razvojnog tima. On takođe i servira rezultate vlasniku projekta i savetuje ga o daljim planovima i aktivnostima koje mogu poboljšati rezultate razvoja ili konačnog proizvoda.
Gde se ogleda adaptibilnost Scrum-a?
Prvo i najosnovnije – novi plan se formira nakon svakog sprinta, što znači da je u tom trenutku moguće menjati stare planove, stavljati prioritet na određene segmente i forsirati ih zbog njihove važnosti. Ovo je takozvana Ahilova peta starih metodologija razvoja softvera (poput Waterfall modela) čijim se pridržavanjem nakon višegodišnjeg razvoja dobija kao rezultat zastareo proizvod, ili dolazi do prekoračenja roka i budžeta usled letećih promena unetih u zahteve u toku izrade sistema.
Pored toga, slično Kanbanu, Scrum omogućava fina podešavanja unutar same organizacije projekta. Na primer, dužina sprinta je nešto što se bira na početku ali i što se vremenom može menjati ako se proceni da će druga vrednost doneti bolje rezultate. Isto važi i za količinu posla dodeljenog za jedan sprint (u Scrum-u nazvano velocity). Takođe, Scrum razvojni tim je uvek multifunkcionalan, što znači da sadrži ljude različitog profila. Ko će pripadati kojem timu određuje menadžment na početku projekta, ali je i to nešto što se može menjati tokom projekta sa ciljem podizanja efikasnosti i produktivnosti.
Dodatno, Scrum kao obaveznu uvodi i jednu zanimljivu tehniku – dnevne standup sastanke tima. Ti sastanci se obično održavaju u isto vreme i na istom mestu, vrlo su kratki (do 15min) i nazivaju se standup zato što je zamisao da svi učesnici stoje (baš kako bi se stavio akcenat na što brži i efikasniji tok sastanka). Na tim nalaženjima obično svaki od članova tima ukratko obavesti ostale na čemu će raditi tog dana, kakav mu je plan i da li ima nekih problema u postizanju zacrtanog cilja. Ovo je vrlo pogodan način za praćenje toka razvoja i vrlo često se praktikuje, ne vezano za to da li se koristi Scrum metodologija ili neka druga.
Odakle potiče naziv Scrum?
Vervali ili ne, naziv Scrum potiče iz ragbija. Ko je nekada gledao taj sport biće mu jasnije, no u ragbiju postoji jedna faza igre u kojoj se svi igrači oba tima okupe na gomilu i zajedničkim snagama pokušavaju da osvoje bolju poziciju na terenu i loptu, i ta faza se upravo naziva scrum. Tvorcima Scrum metodologije se svideo ovaj pristup u kom postoji jedan tim ljudi različitih profila i sposobnosti koji zajedničkim snagama rade na ostvarivanju zacrtanog cilja, pa su stoga odlučili i da upotrebe naziv iz popularnog sporta.
Ukoliko želite da saznate više o Scrum metodologiji, preporučujemo vam e-knjigu “Kanban and Scrum” u kojoj možete naći više detalja o jednoj i drugoj metodologiji. Knjiga je besplatna i možete je preuzeti ovde.