Skram je agilna metodologija razvoja softvera koju sve veći broj preduzeća i korporacija prihvata kao sastavni deo inicijativa za digitalnu transformaciju.
O Skramu
Suština Skram metodologije leži u pružanju okvira za agilan razvoj softvera, koji omogućava timovima da efikasno sarađuju i isporučuju visokokvalitetne softverske proizvode.
Ovaj okvir omogućava timovima da rade zajedno na razvoju kompleksnih proizvoda. Umesto da se proizvod lansira tek nakon dugotrajnih faza planiranja, dizajna, razvoja i testiranja, Skram teži da isporuči funkcionalne proizvode u kratkim iteracijama, od samog početka projekta.
Ključni principi Skrama su transparentna timska komunikacija, redovne provere kvaliteta i sposobnost brzog prilagođavanja promenama. Ukoliko se principi primene na pravi način, timovi mogu pravovremeno i efikasno isporučiti visokokvalitetne softverske proizvode.
Ključne prednosti Skrama
Izvor: scrum.org
- Povećana produktivnost: Skram timovi razlažu složene probleme na manje, upravljive delove. Ti delovi se zatim isporučuju u okviru sprinta kao inkrementi. Članovi tima se mogu fokusirati na konkretne zadatke unutar sprinta (definisan vremenski period, npr. dve nedelje).
- Bolja komunikacija: Skram promoviše redovnu komunikaciju unutar celog tima, obezbeđujući da su svi saglasni oko obima i očekivanja. Ovo značajno smanjuje nesporazume. Da bi se napredovalo brzo, iz sprinta u sprint, ceo tim mora raditi ka istom cilju.
- Fleksibilnost: Skram je dizajniran da bude fleksibilan, omogućavajući timovima da se prilagode promenljivim zahtevima i prioritetima. Ovo omogućava brzu reakciju na izmene u obimu projekta ili potrebama klijenata. Umesto čekanja na ceo razvojni ciklus, moguće je jednostavno menjati sadržaj između sprintova.
- Poboljšan kvalitet: Skram naglašava važnost testiranja i obezbeđivanja kvaliteta, idealno na automatizovan način, s krajnjim ciljem povećanja kvaliteta finalnog proizvoda. Ovo smanjuje rizik od grešaka i osigurava da proizvod ispunjava zahteve klijenata.
- Fokus na klijenta: Skram je orijentisan na klijenta, što znači da je klijent uključen u razvojni proces od početka do kraja, obično u ulozi vlasnika proizvoda ili u direktnoj vezi s njim. Ovo garantuje da finalni proizvod zadovoljava potrebe klijenta i da su prioriteti ispravno postavljeni.
U nastavku ćemo razmotriti ulogu Skram metodologije.
Uloga Skram metodologije
Izvor: hangoutagile.com
Cilj Skram metodologije je da obezbedi okvir za agilan razvoj softvera koji omogućava timovima da efikasno sarađuju. Skram tim se sastaje svakodnevno i redovno, a unutar sprinta održava planirane diskusije (ceremonije). Najčešće, osnovna postavka Skram tima uključuje sledeće ceremonije:
- Dnevni sastanak (Daily stand-up): Kratak sastanak gde se svi članovi tima okupljaju da razgovaraju o urađenom poslu prethodnog dana, planiranom radu za tekući dan i svim preprekama na koje su naišli.
- Prečišćavanje priča (Story refinement): Diskusija i finalizacija novog sadržaja (za naredne sprintove).
- Planiranje sprinta (Sprint planning): Tim procenjuje sadržaj spreman za preuzimanje (definisan u pričama) i obavezuje se na određeni podskup, uglavnom na osnovu prioriteta i procenjenog napora.
- Pregled sprinta (Sprint review): Tim se sastaje sa zainteresovanim stranama da bi im predstavio rezultate prethodnog sprinta.
- Retrospektiva sprinta (Sprint retrospective): Sastanak posvećen isključivo timu, gde se razmatraju mogućnosti za poboljšanje i promene u budućem radu.
Značaj Skram metodologije ogleda se u njenoj sposobnosti da timovima omogući efikasniji rad. Osnovni principi Skrama su zasnovani na Agilnom manifestu i uključuju:
Empirijska kontrola procesa
Skram se zasniva na ideji da se napredak najbolje postiže kroz kontinuiranu inspekciju i prilagođavanje. Timovi treba redovno da proveravaju svoj rad i prilagođavaju svoje procese kako bi poboljšali učinak.
Samoorganizovani timovi
Skram timovi su samoorganizovani, što znači da su odgovorni za upravljanje sopstvenim radom i donošenje odluka u cilju ostvarivanja zajedničkih ciljeva. Ovo doprinosi promovisanju saradnje i odgovornosti unutar tima.
Vremenski ograničene iteracije
Skram projekti su podeljeni na vremenski ograničene iteracije, poznate kao sprintovi, koji obično traju od jedne do četiri nedelje. Ovo omogućava timu da se fokusira na određeni cilj i da redovno napreduje.
Prioritetni spisak zadataka
Spisak zadataka je prioritetna lista funkcija i zahteva na kojima će tim raditi tokom projekta. Vlasnik proizvoda je odgovoran za održavanje i ažuriranje spiska, kao i za usklađivanje sa potrebama i prioritetima korisnika.
Kontinuirano poboljšanje
Skram naglašava značaj kontinuiranog poboljšanja, kako u pogledu razvijenog proizvoda, tako i u pogledu procesa koji se koriste za njegov razvoj. Timovi redovno analiziraju svoj rad i traže načine za poboljšanje učinka.
Izazovi
Izvor: scrum.org
Iako Skram metodologija može biti izuzetno efikasna u razvoju softvera, postoje i izazovi s kojima se timovi mogu suočiti prilikom implementacije.
Otpornost na promene
Skram zahteva značajnu promenu u načinu razmišljanja i kulturi, što nekim članovima tima može biti teško da prihvate. Otpor prema promenama može otežati efikasnu implementaciju Skrama. Potrebno je usvojiti novi način razmišljanja da bi se Skram uspešno implementirao.
Nedostatak iskustva
Za efikasnu implementaciju potreban je određen nivo iskustva i stručnosti. Ako članovi tima nisu upoznati sa Skram ili agilnim metodologijama, to može predstavljati izazov.
Nedostatak posvećenosti
Skram zahteva punu posvećenost svih članova tima, uključujući vlasnika proizvoda, Skram mastera i razvojni tim. Nedostatak posvećenosti može otežati postizanje željenih rezultata.
Loša komunikacija
Skram se u velikoj meri oslanja na komunikaciju i saradnju među članovima tima. Nedostatak efikasne komunikacije može predstavljati značajan izazov.
Preterano naglašavanje procesa
Iako Skram obezbeđuje okvir za razvoj agilnog softvera, važno je zapamtiti da je to samo okvir. Prevelika fokusiranost na proces može dovesti do gubitka iz vida krajnjeg cilja – isporuke visokokvalitetnog softverskog proizvoda.
Uloge Skram tima
Svaki efikasan Skram tim sastoji se od nekoliko konkretnih uloga. Ukoliko te uloge nisu pravilno dodeljene ili se ne pridržavaju svojih obaveza, uspeh Skram tima može biti ugrožen.
#1. Razvojni tim
Ovo je izvršni deo tima, ključan za isporuku proizvoda. Tipičan Skram razvojni tim se sastoji od 4 do 10 stručnjaka za razvoj, testiranje, arhitekturu i analitiku. Manji timovi mogu dovesti u pitanje funkcionalnost, dok veći timovi mogu učiniti ceremonije i diskusije previše komplikovanim.
Razvojni tim preuzima priče iz spiska zadataka, procenjuje ih i implementira u sprintovima. Tim je odgovoran za razvoj priče, testiranje i implementaciju u produkciju nakon završetka.
#2. Skram master
Skram master deluje kao organizator i koordinator za razvojni tim. On zakazuje redovne sastanke, osigurava da je tim upoznat sa sadržajem zadataka i organizuje aktivnosti tokom sprinta kako bi se ispunili plan i ciljevi.
Ovo nije uloga koja se bavi samim sadržajem. Skram master ne mora da razume tehničke detalje priča na kojima razvojni tim radi (mada je to korisno). Skram master služi razvojnom timu i štiti ga od spoljnog okruženja, omogućavajući timu da radi u skladu sa agilnim principima, bez uplitanja neplaniranih zahteva.
#3. Vlasnik proizvoda
Vlasnik proizvoda (PO) je veza između razvojnog tima i poslovnih korisnika (stakeholdera). PO diskutuje o sadržaju sa svim relevantnim stranama i prenosi dogovoreni sadržaj Skram timu.
PO zatim kreira priče za tim, sa jasnim opisima i očekivanjima. PO obezbeđuje da razvojni tim razume sadržaj kako bi ga mogli proceniti. PO je zadužen za diskusije o preciziranju priča unutar tima.
Osim upravljanja sadržajem i spiskom zadataka, PO je odgovoran za postavljanje prioriteta svake priče. Međutim, PO ne bira konkretne priče za sprint. To čini razvojni tim, obavezujući se na obim posla koji će preuzeti. PO može uticati na taj izbor, pravilnim postavljanjem i komuniciranjem prioriteta.
Interakcije uloga unutar Skram tima
Izvor: scrum.org
Komunikacija je ključ uspeha, posebno ona pravilna, jer ima mnogo načina da se pogreši. To je glavni razlog zašto mnogi Skram timovi nisu uspešni – ne uspostavljaju ispravnu komunikaciju.
Na primer, vlasnici proizvoda često traže od razvojnog tima da osmišljava nove priče o sadržaju. Međutim, cilj razvojnog tima nije kreiranje spiska zadataka. Naravno, oni mogu pomoći u definisanju priča, detaljisanju i deljenju, ali vlasnik proizvoda je odgovoran za spisak zadataka. PO idealno ne bi trebalo da traži od razvojnog tima da se povezuje sa poslovnim partnerima.
S druge strane, ni Skram master ni vlasnik proizvoda ne određuju obim sledećeg sprinta. Iako se to često dešava, jer uloge Skram mastera i vlasnika proizvoda često podrazumevaju lidersku poziciju, oni ne odlučuju šta će razvojni tim preuzeti u sprint. Razvojni tim je jedini koji to može učiniti. PO daje informacije o važnosti svake priče iz poslovne perspektive i može sortirati priče od najvažnijih do najmanje važnih. Na taj način, razvojni tim ima uvid u priče koje će prvo preuzeti.
Vlasnik proizvoda redovno razgovara sa timom o novom sadržaju koji želi da tim isporuči. PO detaljno diskutuje o svakoj priči koju kreira ili dodaje na spisak. Svi u razvojnom timu moraju razumeti priču i kriterijume prihvatanja.
Skram master ne samo da organizuje tim, već ga i štiti od vlasnika proizvoda, rukovodstva ili drugih spoljnih zainteresovanih strana. SM održava interne Skram procese i vodi većinu ceremonija. Na dnevnim sastancima, SM osigurava da svi saopštavaju samo važne informacije, kako sastanak ne bi trajao duže od predviđenog. Ovo važi za sve sastanke.
SM takođe organizuje redovne retrospektive, gde pomaže timu da analizira rad iz prethodnog sprinta i prepozna oblasti za poboljšanje.
Završne reči
Stvaranje uspešnog Skram tima je proces koji zahteva vreme. Potrebno je izgraditi iskustvo unutar tima, čak i ako pojedini članovi već imaju iskustva. Svaki Skram tim je jedinstven, a pronalaženje načina za rad i saradnju zahteva vreme.
Najvažnije je održati stabilnost tima nakon formiranja. Tek tada tim može početi da se poboljšava sa svakim sledećim sprintom. Krajnji cilj je transformacija u samoorganizovani tim, gde prisustvo Skram mastera nije uvek neophodno. Ukoliko tim ne ostane stabilan, proces učenja će biti otežan.
U nastavku pogledajte najbolje Skram alate za početnike i srednja preduzeća.