Scrum i agilni pristup razvoju

31.03.2021.

Kako bismo proces razvoja softvera (eng. Software Development) olakšali, koliko je to moguće, obzirom da se radi o izuzetno kompleksnom poslu, odlučili smo klasični management polako pospremiti u zaborav te prigrliti neki novi, puno agilniji model. Jedan od takvih je Scrum, okvirno satkan od uloga, događaja,artefakata, u konačnici, pravila koja sve navedeno povezuju u funkcionalnu cjelinu. Svaka komponenta služi određenoj svrsi i ključna je za korištenje i uspjeh Scruma.Scrum može skratiti vrijeme razvoja softvera do čak četiri puta!

Scrum uloge pripadaju fleksibilnom i prilagodljivom Scrum timu pojedinaca: Vlasniku proizvoda (eng. Product Owner), Vođi tima (eng. Scrum master) Razvojnom timu (eng. Development team).
Model tima postavljen je na način da, svakodnevnom primjenom metodologije, vještine kreativnosti, fleksibilnosti i produktivnosti budu maksimalno izvučene iz njegovih članova. Timska suradnja ostvaruje se primjenom sofisticiranih razvojnih arhitektura i okruženja. Praksa pokazuje učinkovitost Scrum tima za obavljanje kompleksnijih poslova.

Scrum tim isporučuje proizvode iterativno i inkrementalno, povećavajući, pritom, prilike za davanje i primanje mogućih povratnih informacija(eng. feedback). Inkrementalnom isporukom ''Dovršenog'' proizvoda, osigurava se stalna dostupnost potencijalno upotrebljive verzije produkta. Osim funkcionalnih komponenata, za efikasnost djelovanja Scrum tima zadužen je Scrum Master, odgovoran za promoviranje i podršku Scrumu te pomoć članovima u razumijevanju i pridržavanju pravila frameworka, njegove vrijednosti, teorije i prakse. Naravno, ne želimo da se krivo tumači, i ostali dionici tima imaju važnost Scrum doprinosu, no, budući se bavimo temom Scrum Mastera, chance to walk Product Owneru i Developerima, ostavljamo nekoj nadolazećoj prilici. Scrum Master je vođa – sluga ( eng. servant – leader) za svoj Scrum tim. Predstavlja most suradnje, odnosno pomaže promijeniti način interakcije između članova tima i klijenta kako bi se maksimizirala vrijednost koja se proizvodi. Osim široke lepeze usluga koju Scrum Master pruža Vlasniku Proizvoda i Razvojnom timu, iste pruža i organizaciji u kojoj se nalazi, i to na nekoliko načina; od afirmacije frameworka,plana uvođenja Scruma u okvir organizacije, coachinga zaposlenika i zainteresiranih strana, do rada s drugim Scrum Masterima, što povećava efikasnost primjene metode u okvirima organizacije.Napokon, Scrum Master odgovoran je za četiri formalna događanja procesa provjere i prilagodbe kao stupova Scrum metodologije.

Ta događanja podrazumijevaju:
1. Planiranje sprinta (eng. Sprint Planning),
2. Dnevni sastanak (eng. DailyScrum
3. Pregled sprinta (eng. SprintReview)
4. Osvrt na sprint (eng. SprintRetrospective).

Što znači sprint i kakva su to navedena događanja?

Sprint je srce Scruma, vremensko ograničenje jednog kalendarskog mjeseca, ali može biti i kraće, tijekom kojeg se kreira "Dovršen" (neki kažu i „Gotov“) i upotrebljiv proizvod, a koji se, potencijalno, može pustiti u rad. Ako ti je lakše, sprint možeš shvatiti kao projekt koji sigurno ne traje dulje od jednog mjeseca. Optimalnost sprinta odražava se kroz jednak period njihovog trajanja, tijekom čitavog razvoja proizvoda. Početak novog sprinta moguć je po završetku prethodnog. Jednom kad sprint počne, njegovo trajanje je fiksirano i ne možemo biti skraćeno ili produženo. Ostala događanja mogu se dovršiti kad god se ispuni njihova svrha, osiguravajući tako da se odgovarajuće vrijeme racionalno utroši, bez nepotrebnih gubitaka tijekom procesa. Sprint je taj koji se sastoji od gornjih događanja, a važno je spomenuti i vrijeme rada na developmentu proizvoda. Dakle, svaki sprint sadrži definiciju onoga što je potrebno napraviti, dizajn (UX/UI Design) prilagodljiv plan po kojem će se posao usmjeravati, te na kraju priče i proizvod, rezultat rada vrijedne ekipe koja stoji iza njega.

Događanja su propisana i postoje kako bi se postignula redovitost te umanjila potreba za onim sastancima koji nisu definirani u Scrumu. Svako događanje, uz neizbježne sprintove, formalna je prilika za kontrolu i prilagodbu. Zato su događanja posebno osmišljena tako da omoguće kritičnu transparentnost i kontrolu. Ukoliko se bilo koje od događanja preskoči, rezultat je smanjenje transparentnosti i gubitak prilike za kontrolu i prilagodbu. Scrum Master osigurava da Software Develoment Team (Front-end, Back-end, Full stack Developers, Software Engineers) održi Dnevni sastanak, ali su njegovi članovi odgovorni za njegovo vođenje. Taj sastanak interni je za članove Razvojnog tima i traje 15ak minuta.

Ukoliko sastanku prisustvuju i druge osobe, Scrum Master je tu kako bi osigurao neometanost rada Development Teama. Dnevni sastanak poboljšava komunikaciju, prepoznaje eventualne prepreke u razvoju i pruža način da se iste uklone, naglašava i promovira brzo donošenje odluka te poboljšava razinu znanja kod članova Razvojnog tima. Ovo je ključni sastanak za kontrolu i prilagodbu. Odgovornosti Scrum gospodara uključuju i otklanjanje razvojnih prepreka, uspostavljanje pogodnog okruženja u kojem tim može biti učinkovit, rješavanje timske dinamike, osiguravanje dobrih odnosa između tima i Product Ownera, ali i vanjskihdionika, a tu je i da tim štiti od vanjskih prekida i ometanja. Scrum majstorima bi trebalo biti ugodno raditi gotovo sve kako bi pomogli svom timu, izveli projekt na pravi put, a organizaciji priredili uspjeh i podignuli je jednu stepenicu više.

Pregled sprinta (eng. Sprint Review) jest sljedeći u nizu važnih događanja koji se održava na kraju sprinta. U kontekstu jednomjesečnog sprinta, ne traje duže od četiri sata, dok vremenski kraći sprint, podrazumijeva i smanjeno trajanje Sprint Reviewa. Primarni cilj ovog događanja jest provjera Inkrementa u okviru kojeg se, po potrebi, prilagođava Popis stavki za proizvod (eng. Product Backlog). Formirani Scrum tim i ključne strane zajednički prolaze kroz Inkrement proizvoda nastalog tijekom sprinta te sukladno prikupljenim informacijama i kreiranim promjenama, na Popisu stavki proizvoda imaju priliku dogovoriti koji su to sljedeći koraci koje mogu učiniti u svrhu poboljšanja, odnosno povećanja vrijednosti. U tome im može pomoći, primjerice, pregled tržišta ili uvid u moguće načine korištenja proizvoda. Da zaključimo, u ovoj fazi, u okviru statusno neformalnog sastanka, prezentacija Inkrementa smisao dobiva onda kada od zainteresirane strane uspješno izvuče povratnu informaciju te potakne obostranu suradnju.

Koja je uloga Scrum Mastera u tome svemu?

Gospodar Scruma ovdje je kako bi osigurao da se ovaj Pregled uopće dogodi, kao i za to da sudionici sastanka razumiju njegovu svrhu. Scrum Mastera možeš pitati i kako se držati vremenskog ograničenja.

Na kraju naših događanja, stigli smo i do Retrospektive sprinta, prilike u kojoj se Scrum tim osvrće na sebe, dotadašnji način rada te kreira plan za eventualna poboljšanja, a za njih uvijek ima mjesta. Naravno, važno je da se to pravilo primijeni već u sljedećem sprintu. Dostupne su različite metode projekcije napretka korisne u praksi poput „burn – down“ i „burn – up“ dijagrama ili, pak, dijagrama kumulativnog toka (CFD; eng. cummulative flow diagram). Ipak, važnost iskustva neiscrpno je bogatstvo i, kao takvo, nezamjenjivo.

Retrospektiva sprinta događanje je koje pruža formalnu priliku za fokus na kontrolu i prilagodbu te, u okviru poboljšanja, „Gotov“ proizvod dostavlja kvalitetniji.

Pitanje kojim prirodno zaokružujemo cjelinu glasi: Kako, onda, Scrum framework, na čelu sa Scrum Masterom, pomažu organizaciji? Nekoliko primjera trebalo bi dočarati širu slika onoga što Scrum donosi sa sobom:
• Scrum je usmjeren na konstantnu izgradnju kvalitete koja se postiže pregledom proizvodanakon svakog sprinta. Zbog testiranja i visoke razine kvalitete, svaki dovršeni Inkrement odmah je isporučiv korisniku.

• Scrum nosi jednu od najvećih agile prednosti, a to je istaknutafleksibilnost. Scrum okvir fleksibilan je tijekom cijelog životnog vijeka projekta pa to organizaciji dopušta mijenjati proizvod i zahtjeve isporučujući najprikladniji proizvod u tom trenutku. Scrum prihvaća promjene i upravlja njima.

Najveća prednost sprinteva u Scrumu jest činjenica da je trošak promjena u projektu znatno snižen. Zbog provođenja Sprint Reviewa, potrebne izmjene na proizvodu vrše se na vrijeme, a time i smanjuju trošak koji bi, u odmakloj fazi projekta, bio znatno veći.

• Daily Scrum motivira i potiče članove tima da u svojim projektnim zadacima, u odnosu na ostale kolege, budu bolji. Zbog manjeg broja ljudi u timu, komunikacija je olakšana.
• Olakšano je dogovaranje sastanka s korisnicima, a efikasnost istih povećana. Klijent je svakom članu tima češće dostupan te, na taj način, omogućava dvostranu razmjenu informacija u okviru direktne rasprave i dogovora oko potencijalnih ili već postojećih problema.
• Scrum okvir upravljanja projektima daje prostor programerima, stoga su, tijekom projekta, slobodni fokusirati se na razvoj nekog inovativnog rješenja.
• Zbog bliske suradnje i kros-funkcionalnosti, okvir pruža vrlo dobre uvjete za dijeljenje znanja među članovima tima (eng. SharingKnowledge base). Naravno, treba imati i na umu da uspjeh Scrum tima, a sukladno tome i čitave organizacije, ovisi o timskoj suradnji. Tim je specifičan, stručan i kros-funkcionalan pa je potrebno posebnu pozornost posvetiti odabiru njegovihčlanova kako bi tim sinergijski postigao zadani cilj.

U nastavku navodimo nekoliko izjava direktora i voditelja u čijoj se okolini Scrum svakodnevno primjenjuje:

U poduzeću, Scrum okvir je korišten relativno često u softverskim projektima. U mrežnim projektima Scrum nije zastupljen, jer su mrežni projekti stabilniji i ne zahtijevaju tolike promjene na projektu. U mrežnim projektima, koristi se tradicionalna metoda upravljanja projektima jer su takvi projekti strukturirani, nemaju promjene u opsegu projekta te imaju točno propisane faze projekta. Njihovim riječima:

„Naš ured na Scrum okvir gleda pozitivno, koristi se relativno često u softverskim projektima. U mrežnim projektima koristi se manje jer su oni strukturirani, nema promjena u opsegu projekta te su propisane faze projekta.

Prilikom upravljanja projektom Scrum okvirom, članovi projektnog ureda u navedenom poduzeću ne drže se striktno svih aktivnosti i pravila koja Scrum okvir nameće. Također, u poduzeću se Scrum prilagođava zahtjevima projekta, odnosno, ne primjenjuju se uvijek iste aktivnosti. Dakle, upravljanje projektima Scrumom, izlazi iz okvira Scruma:
„U našoj organizaciji najčešće izlazimo van Scrum okvira prilikom upravljanja projektima jer ovisimo o razvijenosti klijenta, njihovoj organizaciji i menadžmentu. Ako želite koristiti pravi Scrum, potrebno je imati Product Ownera, a klijenti toga često nisu svjesni.“

A što kažu o prednostima Scrum okvira?

„Prednosti Scrum okvira su te što korištenjem Scruma velik dio novca ostane u poduzeću jer Scrum pomaže raščlaniti bitno od nebitnoga te on omogućuje da se od svake isporuke stvori poslovna vrijednost. Također, dobar je zbog stalnih promjena na tržištu jer omogućuje mijenjanje prioritizacije na temelju tih promjena.“

Direktor projektnog ureda smatra da Scrum ima smisla koristiti onda kada za to postoji znanje i informiranost korisnika te znanje izvođača kako će to izvesti. Scrum ima smisla provoditi na projektima koji imaju više manjih isporuka, a trajanje projekta nije važno, već mogućnost isporuke. Primjerice, Scrum je prigodno koristiti na razvoju aplikacije za kupnju preko mobitela, na način da se aplikacija pusti u korištenje nakon nekoliko sprinteva, te se u ostalim sprintevima aplikacija nadograđuje drugim značajkama. Razvoj proizvoda trajat će dugo, ali isporuke su kratke i stalne.

Scrum je koristan na projektima koji imaju nezavisne isporuke, primjerice spomenuta aplikacija gdje funkcionalnosti proizvoda i poslovna vrijednost proizvoda nisu vezani da prate određene faze nego se prilagođavaju potrebama korisnika:

„Scrum okvir proizašao je iz potrebe dobiti najviše iz najmanjeg, a bazira se na tome da se razluči bitno i nebitno. Scrum ima smisla koristiti ako za to postoji znanje korisnika i izvođača kako će to izvesti. Scrum ima smisla koristiti na projektima koji imaju manje isporuke s puno funkcionalnosti, npr. aplikacija s tisuću funkcija, gdje se dio funkcija može pustiti u korištenje odmah, a dio isporučiti poslije.“

Razlozi zašto odabrati agile framework, a ne tradicionalan pristup:

Tablica 1: Komparativan prikaz tradicionalnog i agilnog pristupa

Tradicionalan pristup

Agilan pristup

Fokus

Proces

Ljudi

Struktura procesa

Fazni proces

Iterativan i inkrementalan

Formalnost

Visoka

Niska

Stupanj planiranja unaprijed

Visok

Nizak

Donošenje odluka

Strogo i propisano u svakoj fazi

Nije propisano

Promjena

Izbjegava promjenu

Prihvaća promjenu

Veličina isporuke

Velike isporuke

Male isporuke

Dokumentacija

Opsežna

Minimalna

Kvaliteta proizvoda

Gradi se na kraju projekta

Gradi se od početka projekta

Fleksibilnost i kreativnost tima

Ograničena

Neograničena

vrh stranice