You are on page 1of 10

Agilni procesi razvoja softvera i agilno 12 principa agilnog razvoja:

upravljanje 1. Zadovoljan klijent je naš vrhunski prioritet, koji ostvarujemo


blagovremenom i kontinuiranom isporukom vrhunskog
Mirjana Marić softvera.
2. Spremno prihvatamo promene zahteva, čak i u kasnoj fazi
Istorijski pogled na agilne procese razvoja
razvoja. Agilni procesi оmogućavaju uspešno prilagođavanje
• Razvoj informaciono komunikacionih tehnologija i interneta izmenjenim zahtevima, što za rezultat ima prednost naših
uticao je na pojavu globalnog poslovanja i 24 časovne klijenata u odnosu na konkurenciju.
ekonomije.
3. Redovno isporučujemo primenljiv softver, u periodu od
• Prilagođavanje novim tržišnim prilikama i ekonomskim nekoliko nedelja do nekoliko meseci, dajući prednost kraćim
uslovima nije zaobišlo ni kompanije za razvoj softverskih intervalima.
proizvoda, jer je softver postao deo gotovo svih poslovnih
4. Poslovni ljudi i razvojni tim svakodnevno sarađuju u tokom
operacija.
trajanja projekta.
• Rapidne promene u poslovnom okruženju onemogućile su
5. Projekte ostvarujemo uz pomoć motivisanih pojedinaca.
inicijalno definisanje stabilnih i fiksnih softverskih zahteva.
Obezbeđujemo im ambijent i podršku koja im je potrebna i
• Promenljivost zahteva tokom celog životnog ciklusa IT prepuštamo im posao s poverenjem.
projekta, pa i nakon njegove isporuke, postao je imperativ u
6. Za najproduktivniji i najefikasniji metod prenosa informacija,
razvoju poslovnog softvera krajem dvadesetog veka.
do i unutar razvojnog tima, smatramo kontakt licem u lice.
• U ovakvim okolnostima tradicionalni procesi razvoja, koji su
7. Primenljiv softver je osnovno merilo napretka.
do tada uspešno odgovarali na poslovne zahteve, nisu mogli
8. Sponzori, razvojni tim i korisnici moraju biti u stanju da
adekvatno da odgovore novim poslovnim izazovima.
kontinuirano rade ujednačenim tempom, nezavisno od
• Dobro definisani procesi, sa velikim brojem uloga, aktivnosti i
vremena trajanja projekta.
masovnom dokumentacijom, pogodovali su razvoju velikih
9. Stalna posvećenost vrhunskom tehničkom kvalitetu i
skalabilnih softverskih rešenja koja se lako održavaju, ali su
dobrom dizajnu pospešuju agilnost.
predstavljali balast u razvoju malih internet poslovnih rešenja.
10. Jednostavnost je prioritet, kao veština eliminisanja
• Primer takvog procesa razvoja je RUP. Uspostavljanje samog
nepotrebnog, suvišnog rada.
razvojnog procesa po RUP-u predstavljao je zahtevniji i
vremenski duži posao od samog rešenja koje se trebalo razviti. 11. Najbolje arhitekture, zahtevi i dizajn rezultat su rada
samoorganizovanih timova.
• Tradicionalni procesi razvoja softvera iziskuje velika ulaganja
resursa, što preduzeća suočena sa brzim razvojem tehnologije i 12. Tim u redovnim vremenskim intervalima razmatra načine
čestim promenama u poslovnom okruženju nisu u mogućnosti kako da postane efikasniji, usaglašava se, a potom i
da obezbede. prilagođava svoje ponašanje.
• Kreiranje i prihvatanje promena postao je imperativ za
ostvarivanje njihove konkurentnosti na tržištu. To je istorijski • Agilni procesi zasnivaju se na iterativno-inkrementalnom
moment pojave “lakih” procesa razvoja softvera, koji se razvojnom modelu.
svrstavaju u grupu agilnih metodologija. • Razvoj softverskog rešenja realizuje se kroz veliki broj
• Februara 2001 sačinjen je Agilni Manifest - dokument koji malih iteracija (sprintova), čije trajanje je od 2-4 nedelje.
proklamuje 4 vrednosti i 12 principa agilnog razvoja. • Svaka iteracija (sprint) predstavlja zaokruženi ciklus
razvoja softvera, uključujući: planiranje, analizu zahteva,
4 vrednosti agilnog razvoja dizajn, kodiranje, testiranje i prihvatanje testiranja.•
1. Pojedinci i interakcije iznad procesa i alata. Rezultat svake iteracije je nova funkcionalnost (inkrement)
tj. deo softverskog proizvoda koji se razvija za korisnika.
2. Primenljiv softver iznad detaljne dokumentacije.
• Korisnici su uključeni u ceo razvojni proces, što
3. Saradnja sa klijentima iznad ugovora.
obezbeđuje:
4. Reakcija na promenu iznad pridržavanja plana.
1. dobijanje brzog odgovora za razvijeni set funkcionalnosti
nakon svake iteracije (sprinta),
2. brzo uvođenje neophodnih promena, kroz set novih
zahteva i zadataka, koji postaju input za narednu iteraciju -
sprint.
Scrum  uspešnu implementaciju Scrum-a na projektu,
• Scrum je iterativno - inkrementalni procesni okvir, koji se pružajući kontinuiranu pomod i podršku članovima
koristi za upravljanje razvojem i održavanjem softverskih razvojnog tima.
proizvoda. • Scrum vođa nije menadžer, već lider koji je ujedno i član
• Sadrži set menadžerskih preporuka, ali ne definiše aktivnosti razvojnog tima. Treba da poseduje širok spektar znanja o
samog razvojnog procesa. samom procesu razvoja (od analize do upravljanja projektom) i
da ima iskustva na razvojnim projektima. Za razliku od
• Često se koristi u kombinaciji sa drugim procesima razvoja
menadžera ne delegira zadatke članovima razvojnog tima niti
softvera.
se postavlja prema njima sa aspekta formalnog autoriteta i
• Scrum okvir izgrađuju 3 ključna elementa: moći zasnovane na položaju. On je jednak među jednakima.
 uloge u timu, ---------------------------------
 događaji,
Događaji
 artifakti
1. Sprint
Scrum vrednosti : COMMITMENT COURAGE
• Predstavlja iteraciju koja može da traje 2-4 nedelje, a rezultat
FOCUS OPENNESS RESPECT
svake iteracije je inkrement (funkcionalnost, izvršni deo
-------------------------------------------
proizvoda koji se razvija). Sprint sadrži sve faze razvoja
Uloge softverskog proizvoda.
1. Product owner (vlasnik proizvoda) ima sledeće zadatke: • Nakon pokretanja sprinta, nije moguće vršiti izmene: niti
 da prikuplja inpute od krajnjih korisnika i sponzora postavljenih ciljeva sprinta, niti korisničkih zahteva koji se
projekta, implementiraju tokom sprinta, niti promenu učesnika sprinta.
 da prikupljene inpute transformiše u korisničke zahteve u • Potrebne izmene moguće je implementirati pokretanjem
formatu korisničke priče, narednog sprinta.
 vrši vrednovanje korisničkih priča sa aspekta prioriteta u
• Izvršavanje sprinta može biti prekinuto samo u ekstremnim
razvoju;Značaj i redosled razvoja pojedinih korisničkih priča
slučajevima. Priviligija pripada samo Product owner-u (vlasniku
utvrđuje sa aspekta postizanja maksimalne poslovne
proizvoda).
vrednosti za korisnika/sponzora projekta. Korisničke priče
koje donose najviše poslovne vrednosti korisniku imaće 2. Backlog Grooming Meeting
najveći prioritet. • Je događaj koji se prvi put organizuje na početku projekta i
 vrši procenu napora (efforta) za realizaciju svake korisničke na kojem product owner prikazuje korisničke priče koje je
priče ponaosob, definisao. Cilj je da razvojni tim razume svaku korisničku priču i
 definiše viziju i obim projekta. da zajednički procene potreban napor (effort) za njihovu
realizaciju. Jedna od mogućih tehnika za procenu napora jeste
Vizija projekta Planning pocker.
-Jasno predstavljanje zahteva na Product Backlog -u • Ovaj događaj se vodi i pred svako planiranje sprinta, tokom
-Definisanje redosleda zahteva na Backlog-u i gruba procena celog perioda trajanja projekta. Cilj je da su kontinuirano
napora (efforta) za njihovu realizaciju ažurira produckt backlog tj. Unose/menjaju/dodaju nove
-Zastupa korisnika/kupca i obezbeđuje da je razvojni tim korisničke priče na njemu.
razumeo viziju i obim projekta/proizvoda (scope)
3. Sprint planning meeting (planiranje sprinta)
2. Development team (razvojni tim) je: krosfunkcionalan i • Na događaju planiranja sprinta članovi tima diskutuju sa
samoorganizujuć. vlasnikom proizvoda koje korisničke priče sa Product backloga
Čini ga od 5 do 10 članova, sledećih profila eksperata: će biti realizovane tokom sprinta.
analitičari, programeri, dizajneri, testeri. • Događaj planiranje sprinta je vremenski ograničen i može
Razvojni tim ima autonomiju u donošenju odluka, kao i trajati najduže 8 sati.
slobodu da Product owner-u (vlasniku proizvoda) dostavlja • Uključuje vlasnika proizvoda i razvojni tim.
ideje za unapređenje proizvoda. • Rezultat planiranja sprinta je lista zadataka sprinta (Sprint
• Scrum Master (vođa) odgovoran je za: backlog), kroz čije izvršavanje se realizuju postavljeni ciljevi
 uspešan razvoj krajnjeg proizvoda. sprinta: inkrement/funkcionalnost.
• Sprint backlog jeste lista zadataka koje članovi razvojnog
tima definišu i preuzimaju na sebe. Za svaki identifikovani
zadatak članovi tima vrše procenu koliko je vremena potrebno 1. Product Backlog (lista zadataka proizvoda)
za njegovu realizaciju. • PB je lista korisničkih zahteva koja se zapisuje u formatu
korisničke priče.
4. Dnevni sastanci
• Listu generiše vlasnik proizvoda/product owner u prvoj
• Ne smeju biti duži od 15 minuta, te se često održavaju u projektnoj fazi, na osnovu razgovara sa korisnicima.
stojećem položaju prisutnih.
• Vlasnik proizvoda i razvojni tim ažuriraju ovu Listu tokom
• Obezbeđuju transparentnost u radu, jer je svaki član celog perioda trajanja projekta, usled promena u korisničkim
razvojnog tima u obavezi da podnese izveštaj o: problemima
zahtevima i to na sastanku koji se zove Grooming meeting.
koje je identifikovao, o urađenom poslu prethodnog dana i o
rezultatima koje planira da ostvariti do sutrašnjeg dnevnog • Sve korisničke priče sa liste imaju utvrđene prioritete.
sastanka. Prioriteti se utvrđuju sa aspekta njihove poslovne vrednosti.
Takođe imaju i procenjen napor – effort potreban za
• Scrum master ima zadatak da beleži iznesene probleme
realizaciju.
članova razvojnog tima, kao i da im nakon sastanka pomogne u
njihovom rešavanju.
2. Sprint Backlog (lista zadataka sprinta )
5. Sprint review meeting (ocena sprinta) • Razvojni tim odabira stavke (korisničke priče) sa Product
backlog-a koje će implementirati u sprintu i stavlja ih na Sprint
• Događaj se odvija na kraju sprinta radi demonstriranje
backlog.
rezultata ostvarenih u sprintu (inkrementa/funkcionalnosti
softverskog rešenja). • Sprint backlog sadrži definisane radne zadatke za svakog
člana razvojnog tima, na kojima će raditi tokom trajanja
• Cilj ovog događaja je: provera izgrađenog rešenja, dobijanje
sprinta.
povratnih informacija i generisanje polaznih inputa za
planiranje narednog sprinta. • Razvojni tim procenjuje koliko je potrebno rada (sati po
radnom danu) da bi se neki radni zadatak mogao završiti u
• Na sastanku učestvuju: članovi razvojnog tima, scrum vođa,
sprintu. Reč je o Reming work-u. Reming work svakog zadatka,
vlasnik proizvoda, korisnici, menadžer i ključni stejkholderi. Po
svaki član razvojnog tima mora ažurirati nakon svakog radnog
prvi put gledaju izrađene funkcionalnosti/inkrement koji je
dana. Na taj način se svakodnevno prati koliko vremena je
rezultat datog sprinta.
preostalo da se završi svaki od preuzetih zadataka u timu.
• Sastanak podrazumeva aktivnu diskusiju svih prisutnih.
• Svaki radni zadatak na sprint backlogu može imati jedan od
6. Sprint retrospective meeting (retrospektiva sprinta) sledećih statusa: To-do, In progress, Done.

• Događaj na kojem učestvuje samo razvojni tim. • Sprint backlog ažurira jedino tim i to tokom celog perioda
trajanja sprinta.
• Cilj ovog sastanka je:
• Lista može biti ažurirana dodavanjem novih zadataka ili
• da se identifikuju ispravnosti/defekti u radu tokom proteklog
brisanjem zastarelih, kao i promenama statusa zadataka i
sprinta,
procenama preostalog rada.
• da se utvrdi šta je u razvojnom procesu tokom proteklog
• Status zadataka sprinta se prikazuju na sprint tabli u jednu od
sprinta bilo dobro,
tri predviđene kolone, shodno njihovom trenutnom statusu:
• da se utvrdi šta u razvojnom procesu tokom proteklog
 uraditi (To do)
sprinta nije bilo dobro,
 u toku (In progress)
• da sa zajednički odluči sa kojim dobrim praksama tim treba  završen (Done)
da nastavi,
3. Inkrement
• da sa zajednički odluči koje loše prakse treba da obustavi tim,
• Predstavlja deo funkcionalnog softverskog rešenje, koje je
• da sa zajednički odluči da li da se uvede neka nova razvio tim nakon završetka sprinta.
praksu/pravilo u timu.
• Slika (sa slajda)predstavlja razvoj Monalize kroz iterativno-
• Svrha ovog sastanka jeste da se kontiniurano povećava inkrementalni pristup.Slika je završena nakon 6 sprintova.
efikasnost rada u timu. Jedna od tehnika za vođenje ovog
Rezultat svakog sprinta je inkrement deo slike, kao jedne celine.
sastanka je STOP-START -CONTINUE
-----------------------------------------------

ARTIFAKTI
4. Sprint burndown chart
• Predstavlja dijagram toka realizacije sprinta. korisniku. Na ovaj način se kumulativno razvija softverski
• Ima za cilj praćenje napretka samoorganizujućeg Scrum tima, proizvod tj. svakom novom iteracijom se upotpunjuje.
shodno definisanim ciljevima sprinta. Waterfall proces razvoja softvera podrazumeva da se tek na
• Izrađuje se u terminima količine preostalog posla i potrebnih kraju projekta softverski proizvod u celini isporuči
časova rada tima. korisniku na upotrebu.
• Članovi razvojnog tima u obavezi su da svakodnevno
ažuriraju preostale sate potrebne za obavljanje posla Agilan proces: isporuka delova softveskog proizvoda se vrši
neophodnog za kompletiranje tekućeg zadatka. nakon svake iteracije.
• Ukupni časovi preostalog rada u sprintu, zbir su časova rada Waterfall proces: isporuka softverskog proizvoda u celini se
svakog učesnika ponaosob. vrši na kraju projekta .
• Suma ukupno preostalog rada svih učesnika predstavlja se na ----------------------------------------------
dijagramu, kako bi svi stejkholderi mogli svakodnevno da imaju Komparativna analiza agilnog i tradicionalnog načina
uvid u realnu sliku toka realizacije sprinta u odnosu na upravljanja projektima
planiranu. • Opisana na narednim slajdovima, poređenjem 6 ključnih
• Ukoliko rezultati na dijagramu nisu optimistični, tim mora dimenzija.
izvršiti prilagođavanja, u smislu smanjenja obima posla ili 1. Definisanje proizvoda
pronalaženja efikasnijih načina rada Kako, kada i ko definiše softverski proizvod?
Kako su “uhvaćene” potrebe i očekivanja korisnika?
5. Release Burndown chart
Kako se zahtevi prenose tehničkom timu?
• Artifakt prati tok realizacije release-a tj. isporuke verzije
Kako će tehnički tim komunicirati sa korisnicima?
softverskog rešenja.
• Pokazuje progres u realizaciji planiranog datuma njegove Model vodopada (tradicionalni projekti)
proizvodnje i isporuke u produkciju.
• Korisnički zahtevi su izraženi tehničkim jezikom.
-------------------------------------------------------------
• Korisnički zahtevi su obimno dokumentovani tokom prve
SCRUM PROCES RAZVOJA faze projekta.
Tri razvojne faze: • Korisnici su u razvojnom procesu prisutni samo na početku
1. Predigra (formiranje tima, grubo planiranje i definisanje projekta.
korisničkih zahteva, dizajn ključnih elemenata arhitekture). • Na kraju faze definisanja zahteva, mogućnosti i karakteristike
2. Igra - razvojna faza (razvoj u okviru sprintova, poboljšanja budućeg sistema su u potpunosti precizirane.
rešenja kroz nove sprintov, verzije softverskog rešenja). • Tehnički tim sa korisnicima komunicira posredno, putem
3. Postigra (nema novih zahteva, testiranje, integracija, dokumentacije koja mu se dostavlja.
konačna distribucija rešenja).
Scrum
II • Definisanje proizvoda se vrši putem identifikovanih
korisničkih zahteva, koji se zapisuju prirodnim jezikom u obliku
Tradicionalna vs Scrum metodologija korisničkih priča:<neko> želi da radi <nešto> jer <razlog>
prema primarnim karakteristikama projekta • Narativan stil specifikacije korisničkih zahteva je bliži i
razumljiviji korisnicima i klijentu.
Waterfall vs Agile • Korisničke priče se dekomponuju, a potom i detaljno opisuju
pred samu implementaciju tj. iteraciju (sprint) u kojoj će biti
Waterfall model razvoja softvera podrazumeva sekvencijalno
realizovane (implementirane).
izvršavanje faza razvoja koje su prikazane na slici. Dok se prva
faza ne završi druga ne može da otpočne. • Za identifikovanje korisničkih zahteva zadužen je vlasnik
proizvoda/product owner, koji iste predstavlja razvojnom timu
Agilan proces razvoja softvera podrazumeva da se sve razvojne
na samom početku projekta.
faze (navedene na slici) realizuju u okviru svake iteracije
(sprinta) koji traje od 2-4 nedelje. • Inicijalni set korisničkih zahteva i funkcionalnosti
proizvoda je dinamičan i menja se tokom životnog ciklusa
Rezultat svake iteracije je funkcionalan i primenljiv deo
projekta.
softverskog proizvoda koji se razvija i koji se isporučuje
• Razvojni tim tokom celog perioda trajanja projekta učestvuje 3. Vremenski plan/raspored
na sastancima sa vlasnikom proizvoda (Grooming backlog Koja je osnova za planiranje funkcionalnosti ili ljudi?
meeting), na kojima se vrši ažuriranje liste korisničkih zahteva :
Kada ćete znati da li projekat „klizi“?
dodavanje novih, izmene/eliminisanje postojećih zahteva.
• Korisnici su deo Scrum tima tokom celog perioda trajanja
projekta. Model vodopada (tradicionalni projekti)
• Svoj feedback o razvijenim funkcionalnostima korisnici daju • Planiranje je prediktivno – realizuje se na početku
nakon svake vremenski ograničene iteracije, na događaju koji projekta.
se zove Spint Review -ocena sprinta. • Predviđa se trajanje svake razvojne faze i zadataka u
okviru nje.
2. Adaptibilnost • Svaka razvojna faza se zasniva na radu i odlukama
Kako svaka od datih metodologija radi sa promenljivim donetim u prethodnoj fazi.
zahtevima? • Svaka razvojna faza zasniva se na uspešnom završetku
Da li metodologija preferira stabilnost ili promenljivost? prethodne faze.
• Kašnjenja u realizaciji zadataka tokom neke faze, utiču na
vremenski raspored celog projekta.
Model vodopada (tradicionalni projekti)
• Ova metoda ne reaguje dobro na „proklizavanja“, jer su
• Detaljno definisani korisnički zahtevi se „zaključavaju“ ranije
zavisnosti između zadataka i faza često veoma kompleksne.
u životnom ciklusu projekta.
• Stabilni i sveobuhvatni zahtevi na početku projekta • Ukoliko procene na početku projekta nisu tačne,
omogućuju narednu razvojnu fazu: Big Design Up Front vremenski planirani zadaci i projektne faze probiće ne samo
(BDUF). vremenski raspored, već i troškove projekta.
• BDUF podrazumeva razvoj celokupne softverske arhitekture
proizvoda i izradu detaljnog dizajna rešenja, koje će koristiti Scrum
programeri u fazi implementacije prilikom kodiranja. • Planiranje je empirijsko i traje tokom celog projekta.
• Promene zahteva, uvedene u kasnijim fazama projekta, • Posao se planira i vremenski raspoređuje na osnovu
mogu imati veliki uticaj na planirano vreme i troškove. brzine/velocity Scrum tima.
• Svaka promena zahteva u kasnijim fazama projekta, zahteva
• Procena/estimation postaje sve tačnija sa svakim
izradu i odobravanje dokumenta koji se naziva Nalog za
uzastopnim sprintom, jer se zasniva na stvarno završenom
promenom. Navedeni dokument se koriste za praćenje i
poslu u okviru sprinta.
raspored troškova i funkcionalnosti proizvoda.
• Planiranje i vremensko raspoređivanje u Scrumu je veoma
• Ovakav pristup upravljanja projektom omogućuje definisanje
pouzdano zbog fiksnih, vremenski ograničenih sprintova.
predvidivih troškova i vremenski plan/raspored razvoja
proizvoda. • Scope/obim projekta je manje pouzdan, jer
• Promene u zahtevima nisu dobrodošle, jer predstavljaju rizik funkcionalnosti mogu da variraju tj. da ulaze i izlaze iz
da će sedefinisani troškovi i vremenski plan/raspored razvoja predviđenih sprintova i release-a/izdanja, kako bi se tim
proizvoda ozbiljno ugroziti. prilagodio fiksnom vremenskom rasporedu.

Scrum 4. Ljudi
• Pretpostavlja se da će se inicijalno identifikovane Kako su organizovani timovi?
funkcionalnosti proizvoda (na samom početku projekta) Kada se ljudi uključuju i isključuju sa projekta?
menjati tokom projekta.
• Promene su dobrodošle i one postaju sastavni deo liste Model vodopada (tradicionalni projekti)
zahteva proizvoda (product backlog-a), koja je definisana na • Specijalizovani timovi rade na različitim razvojnim fazama
početku projekta. projekta.
• Pošto se promene očekuju, onda imaju i mnogo manje efekta • Poslovni analitičari definišu sve zahteve na početku
na čitav projekat. U vremenski raspored se dodaju novi
projekta, često pre nego što se tehnički tim i uključi u
sprintovi ili izdanja/release-ovi radi implementacije novih projekat.
funkcionalnosti proizvoda.
• Kada počne faza implemetacije, poslovni analitičari imaju • Sprint backlog je agilni “dokumenat” sa listom zadataka
smanjenu ulogu na projektu. koje će tim implementirati tokom sprinta.
• Testiranje počinje nakon završetka faze implementacije, te • Visual Studio TFS je veoma efikasan alat za komunikaciju,
se tek tada formira tim za testiranje. definisanje korisničkih priča, funkcionalnosti i zadataka.
• Upravljanje projektom je specijalizovana uloga, često ---------------------------------
realizovana od strane kancelarije za upravljanje projektima. 6. Trajanje projekta
Koje je tipično trajanje projekta?
Scrum
• Jedan tim uključen je u ceo životni ciklus projekta. Model vodopada (tradicionalni projekti)
• U okviru tima, postoje samo tri uloge. Rad je veoma • Pogodan je za razvojne projekte koji traju godinama i gde
kolaborativan unutar i između uloga. su svi korisnički zahtevi poznati na početku projekta i
• Tim je samoorganizovan, a članovi tima imaju potpunu nemaju tendenciju menjanja.
vidljivost product backlog-a (liste zahteva proizvoda) i • Na ovakvim projektima obično se oko 6 meseci provodi na
obavezuju se na implementiranje preuzetog obima posla. definisanju poslovnih zahteva, 3 - 4 meseca za definisanje
• Tim je uključen u planiranje, procenu, razvoj i testiranje. funkcionalnih zahteva, a potom 3 do 4 meseca za
• Tim je fokusiran na klijenta tokom celog projekta. definisanje tehničkog dizajna.
• Na ovom tipu projekata faza implementacije (kodiranje
rešenja) otpočinje tek nakon godinu dana od početka
5. Dokumentacija
projekta.
• Kakav oblik dokumentacije je potrebno generisati na
• Potom sledi faza testiranja i izrade detaljne
projektu?
dokumentacije.
• Koji alati pomažu dokumentovanje?
• Korisnik/klijent tek nakon 2-3 godine po prvi put vidi
softverski proizvod koji je poručio. Tek tada može da da
Model vodopada (tradicionalni projekti) feedback o proizvodu.
• Dokumentacija predsatvalja vladavinu prava.
• Dokumenti opisuju šta je potrebno i kako će sistem Scrum
funkcionisati. • Pogoduje projektima promenljive dužine i obima.
• Na početku projekta neophodno je definisati • Prikladan za projekte kod kojih se promene u zahtevima
sveobuhvatan i detaljan dokument svih poslovnih zahteva korisnika normalna i česta pojava.
kao i dokument sistemskih zahteva. • Prikladan za projekte koji zahtevaju ranu isporuku
• Dokumenti omogućavaju da članovi tima, nesmetano i bez vrednosti klijentu, putem velikog broja kratkih iteracija.
posledica po projekat, dolaze i odlaze jer su u njima • Verzija softverskog proizvoda/release obično traje od 6 -
dokumentovane sve odluke na projektu. 12 meseci.
• Dokumentacija je primarno sredstvo komunikacije između • Iteracija (sprint) traje od 2 do 4 nedelje.
razvojnih faza modela vodopada. • Prikladan za projekte na kojima de korisnici biti deo tima
• Microsoft Project i Gantt grafikoni su alati koji se obično tokom celog perioda trajanja projekta.
koriste za dokumentovanje vremenskog rasporeda projekta. -----------
Metrike za merenje uspešnosti projekta
Scrum
• Tradicionalne metrike:
• Diskusija i neformalna komunikacija favorizuju se u
 vreme,
odnosu na formalnu dokumentaciju.  obim (scope) projekta
• Product backlog je agilni “dokumenat” – dinamična lista  budžet.
korisničkih zahteva. • Agilne metrike:
• Na početku projekta vlasnik proizvoda i članovi tima  transparentnost (npr. backlog, burndown chart,
detaljno razgovaraju o zahtevima sa produckt backloga, velocity chart...),
definišući prioritete tj. redosled njihove implementacije.
 provera (sprint planning, sprint review, sprint Dakle, svaki projekat počinje fazom definisanja projekta
retrospective...) odnosno iniciranjem projekta:
 prilagođavanje (backlog re-prioritization, planiranje  uvid i vizija,
sprinta, promena zahteva i idenfikovanje rizika)  alociranje resursa projekta (angažovanje tima i
tehnologije)
 grubo planiranje.
Transparentnost
• Procesi bi trebali biti svima vidljivi i definisani zajedničkim
standardom. I Uvid i vizija

• Transparentnost i standardizacija stvaraju zajedničko • Svaki projekat razvoja softverskog proizvoda mora početi
uvidom u poslovno stanje (kako nešto trenutno radi i kako se
razumevanje tokova posla, projekta (ili proizvoda) strategije
može poboljšati razvojem novog softv. proizvoda), te
i metrika za uspeh. definisanjem vizije projekta i softv. proizvoda koji će se
• Scrum timovi koriste sledeće artefakte u cilju razvijati.
transparentnosti: • Vizija sadrži jednostavan opis ŠTA će se graditi, ZA KOGA i
ZAŠTO.
 izjava o viziji projekta/proizvoda,
• Vizija proizvoda treba da bude jasna i dovoljno sveobuhvatna
 product backlog
jer će je svi u projektnom timu čitati i razgovarati o njoj.
 sprint backlog
• Vizija treba da opiše poslovni problem koji se rešava kao i
 elektronske table zahteva, table zadataka mogućnosti i benefite od njegovog rešavanja.
 burn down chart • Vizija mora uključivati opis ciljeva i ishoda proizvoda koji se
 velocity chart želi razviti, kao i potrebe i koristi od istog, sa stanovišta
korisnika.
Provera (Inspection) • Mora da odgovara interesima svih stejkholdera: kupaca,
• Čest i ponavljajući pregled ciljeva projekta, mape sponzora i projektnog tima.
razvojnog puta i postepeni napredak prema tim ciljevima. • Vlasnik proizvoda (product owner) je uloga u Scrum timu
koja je odgovorna za uvid u to kako će korisnik
• Provera pomaže ranom otkrivanju rizika i identifikovanju ceniti/vrednovati proizvod. Šta se korisnicima dopada/ne
oblasti za poboljšanje. dopada, šta vole i šta ne vole.
• Scrum timovi koriste sledeće događaja u cilju
kontinuiranih provera: • Izjava o viziji postavlja pravac projekta tako što određuje šta
 sprint planning, će se projektom postići.
 daily scrum or stand up, • Sastavni deo vizije je i definisanje obima/granica projekta
 sprint review and retrospectives. (definition of scope).

• Glavni elementi izjave o viziji uključuju:


Prilagođavanje
1. Ciljeve projekta
• Zahvaljujući transparentnost i proveri, timovi i svi
stejkholderi su u stanju da kontinuirano procenjuju, 2. Obim projekta/scope
3. Zahteve/requirements visokog nivoa
prilagođavaju i ponovo prioritizuju poslove (zahteve i
funkcionalnosti) prema aktuelnoj potrebi korisnika/klijenta. 4. Glavne izlazi i rezultate

• Scrum timovi koriste sledeće za prilagođavanje procesa 1. Ciljevi projekta:


razvoja:
 treba da budu usklađeni sa identifikovanim
 Risk identification problemima i mogućnostima njihovog rešavanja.
 Change requests  izražavaju očekivane rezultate projekta.
 Sprint planning  trebali bi biti SMART: specifični, merljivi, usmereni
 backlog re-prioritization na akciju, realni i vremenski specificirani.
III
2. Obim projekta:
Prva projektna faza,definisanje projekta: vizija i uvid,
 dati odgovor na pitanje šta jeste/nije uključeno u
alociranje resursa (angažovanje tima i nabavka tehnologije).
projekat?
3. Zahtevi visokog nivoa: TRADICIONALNI PROJEKTI
 identifikovati najznačajnije zahteve • Obim projekta se definiše nekim dokumentom specifikacije
 istaći esencijalne u odnosu na poželjne zahteve (npr. specifikacijom zahteva, funkcionalnim specifikacijama ili
4. Glavni izlazi i rezultati proizvoda: specifikacijom programa).
Bez obzira na naziv, svi ovi dokumenti opisuju isto:
 istaći ključne funkcionalnosti proizvoda
– funkcionalne i nefunkcionalne zahteve softvera.
Šablon za izradu izjave vizije proizvoda • Dokumentacija je široka i duboka, tj. izrađuje se u inicijalnoj
• Za (ciljni korisnik) fazi projekta i detaljno pokriva sve zahteve, koje je
preporučljivo ne menjati tokom vremena.
• Koji (izjava o potrebi ili priliku)
• Tradicionalno upravljanje projektima, bilo kakve promene u
• Naziv proizvoda... je.. (kategorija proizvoda)
obimu projekta smatra pretnjom za uspeh projekta.
• Koji omogućava.... (ključne prednosti, obavezujudi razlog
za njegovu kupovinu)
AGILNI PROJEKTI
• Za razliku od (sličnih konkurentskih proizvoda)
Agilni projekti razlikuju se po sledećim elementima:
• Naš proizvod (izjava o primarnoj diferencijaciji)
 Stav prema promenama
 Dokumenti koji definišu obim/scope agilnih projekata
Primer1:
 Vreme izrade agilnih zahteva
Za korisnike računara svih starosnih grupa koji žele da se druže i
 Naglasak na zahtevima visokog nivoa
održavaju kontakt sa porodicom, prijateljima i saradnicima, veb
lokacija MultiFacea je veb lokacija za društvene mreže koja Obim/scope agilnog projekta definiše se takođe u inicijalnoj
omogućava korisnicima da imaju više identifikacija. Za razliku od fazi projekta, ali samo zahtevima visokog nivoa.
tradicionalnih društvenih mreža kao što su Faceook i MiSpace, naš Postavljaju se narativno u obliku korisničke priče.
proizvod omogućava korisnicima da održavaju odvojene i različite Detaljni (ili duboki) zahtevi su i dalje potrebni, ali se definišu
identifikacije za različite grupe porodica, prijatelja i saradnika. “just in time”, tokom planiranja sprinta.
Primer 2 • Vlasnik proizvoda/product owner u saradnji sa korisnicima, u
Za sektore marketinga i prodaje, srednje veličine, kojima je inicijalnoj fazi agilnog projekta definiše korisničke priče za ceo
potrebna osnovna CRM funkcionalnost, CRM-Innovator je usluga projekat, ali se detaljan opis zahteva, izrađuje samo za one
zasnovana na Vebu, koja omogućuje funkcije za praćenje prodaje, korisničke priče koje Će se implementirati u prvoj
generisanje potencijalnih kupaca i funkcionalnosti za podršku iteraciji/sprintu.
predstavnicima prodaje koje poboljšavaju odnose sa klijentima u
• Tokom prve vremenski ograničene iteracije/sprinta, detaljno
kritičnim dodirnim tačkama. Za razliku od drugih konkurentskih
se razrađuju korisničke priče koje će biti implementirane u
softverskih proizvoda, naš proizvod pruža veoma najvažnije usluge
drugoj iteraciji.
u sferi CRM-a, po umerenim cenama.
• Na ovaj način ako/kada korisnici promene obim/scope
projekta, potrebno je uložiti minimalan napor da se isti i
Obim (scope) projekta
redefiniše.
• Viziju proizvoda obično prati i definisanje obima (scope)
• Scope proizvoda je u agilnom razvoju promenljiva kategorija,
projekta.
za razliku od tradicionalnog .
• Scope jasno određuje put za viziju, od problema do rešenja.
• Scope definiše ključne funkcionalnosti softverskog proizvoda
koji se razvija, vremenske linije i ograničenja. II Resursi projekta
• Scope treba jasno da definiše ono što ulazi u okvire projekta i • Izgradnja softverskog proizvoda je veoma intenzivna
ono što je izvan granica projekta.
aktivnost i potrebno je puno resursa za izgradnju i isporuku
• Često se vizija i scope kombinuju u jednom dokumentu kvalitetnog softverskog proizvoda.
vision/scope.
• Ključni resursi su: vreme i novac.
• Ova inicijalna faza projekta može trajati samo nekoliko sati,
dok na kompleksnijim projektima može biti potrebno i • Za razliku od vremena, novac se lako može pretvoriti u druge
nekoliko nedelja. resurse koji su neophodni na projektu. Dva primarna resursa
potrebna za razvoj softverskog proizvoda su: ljudi i
oprema/tehnologija.
• Neophodno je razumeti šta želi kupac i koliko je spreman njihovu POSLOVNU VREDNOST na osnovu koje je definisao
da potroši novca,a onda u skladu sa tim kupovati njihove PRIORITETE u realizaciji .
tehnologiju i formirati projektni tim. • Korisnička priča najvećeg prioriteta će biti realizovana tokom
SCRUM TIM prvog sprinta.

• Tip projekta i problem koji se rešava opredeliće strukturu • Za najprioritetnije korisničke priče na product backlog-u
definišu se i KRITERIJUMI PRIHVATANJA.
Scrum tima.
• Takođe se za najprioritetnije stavke na product backlog-u
• Formiranje tima podrazumeva uključivanje 2 vrste ljudi:–
vrše i GRUBE PROCENE NAPORA (effort) potrebnog za
“generaliste” i “specijaliste”.
realizaciju svake korisničke priče.
• Najveći deo tehničkog posla na projektu obavljaju
• Najčešća tehnika je Planning pocker.
“generalisti”: inženjeri koji su kvalifikovani za kodiranje i
• Ovo doprinosi da održavanje sastanka za planiranja sprint-a
testiranje.
ne traje previše dugo vremena.
• Međutim, projekti zahtevaju u učešće ljudi
• U većini slučajeva, procene napora za realizaciju korisničkih
specijalizovanih znanja i veština, “specijaliste”:
priča de se promeniti tokom planiranja sprinta u odnosu na
– Vlasnika proizvoda koji treba da definiše skup ove grube procene tokom backlog grooming sastanka.
karakteristika proizvoda koje
Product Backlog– lista zahteva proizvoda
tačno zadovoljava potrebe klijenta/korisnika.
– Softver arhitektu, koji bi definisao arhitekturu i šablone • Svaki softverski projekat ima zahteve. Zahtev opisuje
dizajna. nešto što zainteresovano lice/stejkholder očekuje od
– Stručnjaka za korisnički interfejs proizvoda.
– Stručnjaka za baze podataka • Npr. ako vaš projekat zahteva sigurnost, imaćete sledeće
– Stručnjaka za bezbednost i performanse proizvoda. zahteve:
• Ako na projektu treba visok procenat stručnjaka/specijalista,  zahtev da svaki korisnik mora da se registruje.
a ne generalista (programera i testera), preporučljivo je u tom  zahtev da se korisnik može prijaviti sa korisničkim
imenom i lozinkom.
slučaju povećati procenu/estimiranje vremena i troškova.
 zahtev da važeća lozinka mora biti šest od više znakova i
Pronalaženje i zamena stručnjaka može zahtevati više vremena
mora sadržavati najmanje
i biti skuplja aktivnost nego zamena generalista.
 jedno slovo i jedan broj.
• Neki članovi tima će biti zaposleni – ljudi koji ostaju u  zahtev da se korisnik može odjaviti.
kompaniji i nakon projketa. Drugi de biti izvođači/pod
• Svi ovi zahtevi pišu se u formi korisničke priče i postavljaju
ugovorom - ljudi sa specijalizovanim veštinama koje su vam
se na Product backlog -u (listi zahteva). Zato se još nazivaju i
potrebni na samo određenim projektima.
Product backlog item (PBI).
Preporučljivo je da Scrum tim redovno ažurira product
TEHNOLOGIJA
backlog, stoga mora periodično da održava sastanak
• Resurs novca koristi se i za potrebnu tehnologiju na projektu,
backlog grooming meetings tokom celog projekta. Savetuje
koja se može kupiti, zakupiti ili iznajmiti za daljinski pristup.
se da timovi posvete 5% svog vremena, po sprintu, upravo
Ovo važi i za hardver i za softver.
ovoj aktivnosti
• Odabir i način angažovanja tehnologije zavisi od problema
koji se rešava i od trenutaka njegovog rešavanja na projektu. PBI=Korisnička priča
• Scrum optimizuje resurse iterativnim razvojem rešenja. To
Dobra korisnička priča sledi INVEST model:
omogućava da se planovi podešavaju tokom razvojnog puta, u
Independent
skladu sa realnim potrebama tima, korisnika i tehnologije.
Negotiable
IV Valuable to user or business
Agilni korisnički zahtevi Estimable
Backlog grooming meeting Small
Testable
• Prvi događaj na koji se okupljaju vlasnik proizvoda (product
owner) i razvojni tim.
• Vlasnik proizvoda dolazi sa listom zahteva/korisničkih priča
(product backlog-om). Pretstavlja ih razvojnom timu i ističe
BACKLOG PRIORITY vs BUSINESS VALUE vs EFFORT: • Povećava se verovatnoća da de isporučiti funkcionalnosti
• POSLOVNA VREDNOST je merilo važnosti zahteva/korisničke proizvoda koje očekuje korisnik.
priče sa stanovišta klijenta/korisnika. Poslovnu vrednost • Odlična su osnova za definisanje zadataka sprinta, kao i
svakog zahteva utvrđuje vlasnik proizvoda, u razgovoru sa testova.
korisnicima/klijentom. Primeri korisničke priče i kriterijuma prihvatanja
• PRIORITETI zahteva na product backlogu predstavljaju KORISNIČKA PRIČA:
redosled kojim će oni biti implementirani kroz sprintove. Kao učesnik konferencije, želim biti u mogućnosti da se
• Neki zahtev može biti veoma važan za korisnika (dakle ima registrujem putem interneta, tako da mogu efikasnije da se
visok business value), ali možda neće tehnički biti izvodljivo da registrujem i smanjim papirologiju.
se implementira prvim sprintom, već tokom nekog kasnijeg KRITERIJUMI PRIHVATANJA:
sprinta (dakle, imaće niži prioritet).  Korisnik ne može završiti registraciju bez punjavanja
• Poslovna vrednost i prioritet u realizaciji zahteva može se svih obaveznih polja na obrascu.
razlikovati.  Informacije sa obrasca se čuvaju u bazi podataka, u
• Razlog tome je što zim upravlja zavisnostima između zahteva tabeli za registraciju.
upravo definisanjem prioriteta.  Postoji zaštita od neželjene pošte (spam).
 Korisnici mogu platiti kreditnom karticom.
• Ako stavka A zavisi od stavke B, tim bi trebao premestiti
 Korisniku se nakon uspešne registracije šalje E-mail za
stavku B na višu poziciju na product backlog. potvrdu iste.
• A ako stavka C zavisi od stavke B, onda bi trebalo premestiti
stavku C iznad stavke B na product backlog. Definition of ready vs definition of done
• Prioriteti stavki na backlog-u bi trebalo da u potpunosti Definition of ready
reflektuju njihov redosled implementacije, uzimajudi u obzir
• Definicija spremnosti (definition of ready) je koncept koji
dakle zavisnosti koje postoje između njih.
podrazumeva da se definiše lista uslova koje treba da zadovolji
• Svaki zahtev/korisnička priča ima i treću osobinu: svaka korisnička pre njene implementacije.
NAPOR/EFFORT koji tim procenjuje da je potrebno uložiti za
• Sprint ne može da počne ako korisnička priča ne zadovoljava
njegovu implementaciju.
ovaj set uslova.
• Effort je gruba procena članova razvojnog tima koliko je
Primer:
teško izgraditi neku funkcionalnost.
 Pravilno definisana korisnička priča
• Procena nije u vremenu ili novcu;.  Definisani kriterijumi prihvatanja korisničke priče
• U pitanju je relativna procena potrebnog napora.  Identifikovane zavisnosti između korisničkih priča
• Postoji više agilnih tehnika za procenu napora.  Izvršena procena napora implentacije korisničke priče
• Najčešća tehnika u praksi je Planning pocker.  Članovima tima je jasno koja funkcionalnost treba da bude
rezultat sprinta
Acceptance criteria
• Definition of ready može biti definisan za:
• Kriterijumi prihvatanja su uslovi koji moraju biti ispunjeni
 Korisničke priče
kako bi se korisnička priča nakon implementacije u sprintu
 Sprint
smatrala završenom.  Release
• Odličan je alat za komuniciranje vlasnika proizvoda sa Definition of done
razvojnim timom po pitanju toga šta to znači da je korisnička
• Definition of done je lista uslova koju korisničke priče treba
priča “završena”.
da zadovolje nakon sprinta (implementacije).
• Ako pitate 10 zrelih Agilnih timova: "Kako znate kada ste • Ova lista je odličan alat za komunikaciju svih učesnika na
završili implementaciju neke korisničke priče sa backlog-a? projektu, jer su svi na početku sprinta upoznati sa ovim
Dobićete isti odgovor od svih:- definisanjem i korišćenjem uslovima.
dobro napisanih kriterijuma prihvatanja!!! • Čekiranjem ispunjenosti ovih uslova, tim može reći da je
• Moć kriterijuma prihvatanja leži u činjenici da vlasnik uspešno završio implementaciju neke korisničke priče.
proizvoda i tim grade zajedničko shvatanje šta to znači da je • Definisani uslovi pretstavljaju standard koji se definiše na
nešto “urađeno”. početku projekta i koji važi za sve sprintove i sve korisničke
• Kriterijumi se definišu na prvom događaju – Grooming priče.
backlog meeting.• Sarađujući zajednički na kriterijima • Definition of done može biti definisan za:
prihvatanja, tim minimizira rizik da nije razumeo zahtev. Korisničke priče Sprint Release

You might also like