Dio 1 – Faze i vodopad
Dio 2 – Iterativni razvoj, Scrum
Dio 3 – Kanban, DevOps i alati
Praksa – GitHub Projects: backlog i prvi sprint
Materijale priredio Erkan Islamović
erkan.islamovic@eubd.edu.ba · erkan.islamovic@gmail.com
Petnaest sedmica, svaka s tri časa teorije i tri časa prakse. Danas: poglavlje 2 (Sedmica 2, označeno). Isti primjer kroz knjigu: DeliveryApp, narudžba N-1001 (24,50 €).
| Sed. | Poglavlje | Sed. | Poglavlje |
|---|---|---|---|
| 1 | P1 Zašto projektujemo | 9 | P9 Arhitektura |
| 2 | P2 Životni ciklus | 10 | P10 Integracija i API |
| 3 | P3 Zahtjevi | 11 | P11 Korisnički interfejs |
| 4 | P4 Poslovni procesi | 12 | P12 Sigurnost i privatnost |
| 5 | P5 UML i slučajevi korištenja | 13 | P13 Realno vrijeme i IoT |
| 6 | P6 Klase i objekti | 14 | P14 Kvalitet i isporuka |
| 7 | P7 Sekvence i stanja | 15 | P15 AI i završni projekat |
| 8 | P8 Baza podataka |
U februaru 2001. godine sedamnaest programera i konsultanata iz Amerike i Evrope sastalo se u skijalištu Snowbird u planinama američke savezne države Utah. Svaki od njih imao je svoj način vođenja softverskih projekata, s imenima kao što su Scrum, Extreme Programming i Crystal. Svađali su se oko detalja, ali su se složili oko jednog: veliki projekti koji godinama pišu dokumentaciju prije prvog programa koji radi previše često propadaju. Za dva dana napisali su jednu stranicu teksta, Manifest agilnog razvoja softvera: četiri vrijednosti i dvanaest principa. Stranica je i danas na internetu, u izvornom obliku, a riječ „agilno” je od tada postala svakodnevica u firmama širom svijeta. Zanimljivo je da ni „vodopad”, protiv kojeg su ustali, nije bio zamišljen kao slijepo pravilo: inženjer Winston Royce, čiji se rad iz 1970. uzima kao njegov prvi opis, u istom tom radu upozorio je da je čisti redoslijed faza bez povratka rizičan.
U poglavlju 1 vidjeli smo da sistemi propadaju kad se prava pitanja postave prekasno. Ovo poglavlje odgovara na pitanje kojim redom se ta pitanja postavljaju i kako tim organizuje posao od ideje do sistema koji radi. Prvo upoznajemo faze kroz koje prolazi svaki sistem i najstariji način da se one poredaju, vodopad. Zatim agilni pristup i Scrum, koji danas koristi većina timova. Na kraju Kanban, DevOps i alate koje programeri koriste kroz cijeli ciklus. Na praktičnoj nastavi pravimo tablu zadataka za DeliveryApp na GitHubu i planiramo prvi sprint.
Nakon poglavlja možete:
nabrojati faze životnog ciklusa sistema i za svaku reći šta nastaje; opisati vodopad i V-model i navesti kada su dobar izbor; objasniti razliku između iterativnog i inkrementalnog razvoja; navesti četiri vrijednosti agilnog manifesta; opisati tri uloge, tri artefakta i pet događaja Scruma; izračunati koliko sprintova treba za backlog ako je poznata brzina tima; objasniti Kanban tablu i WIP ograničenje i izračunati prosječno vrijeme zadatka po Littleovom zakonu; reći šta je DevOps; nabrojati sistemske programske alate od editora do debagera; za dati projekat obrazložiti izbor metodologije; napraviti GitHub Projects tablu i plan prvog sprinta za DeliveryApp.
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 2.1–2.3 Faze, vodopad, V-model | Kuća po fazama; svaka faza ima svoj test |
| Teorija 2 | 2.4–2.6 Iterativno, agilni manifest, Scrum | Skejtbord, bicikl, auto; sprint DeliveryApp |
| Teorija 3 | 2.7–2.10 Kanban, DevOps, alati, izbor | Tabla s WIP ograničenjem; Littleov zakon |
| Praksa 1–3 | GitHub Projects: backlog, sprint, Definicija gotovog | Tabla DeliveryApp i plan Sprinta 1 |
Svaki informacioni sistem, od male aplikacije do bankarskog sistema, prolazi kroz iste faze. Zovemo ih životni ciklus razvoja sistema (engleski systems development life cycle, SDLC). Faze se mogu raditi jednom, redom, ili mnogo puta u malim krugovima, ali posao u njima je uvijek isti.
| Faza | Pitanje | Šta nastaje (primjer za DeliveryApp) |
|---|---|---|
| 1. Planiranje | Vrijedi li ovo raditi? Koliko će koštati i trajati? | vizija, procjena troška, odluka „krećemo” |
| 2. Analiza | Šta tačno treba? Kako se posao danas radi? | zahtjevi, korisničke priče, model procesa |
| 3. Projektovanje | Kako ćemo to napraviti? | modeli (UML), baza, arhitektura, prototip ekrana |
| 4. Implementacija | Pišemo kod. | program, baza, API |
| 5. Testiranje | Radi li ono što smo tražili? | testovi, izvještaji o greškama |
| 6. Isporuka | Kako ga puštamo u rad? | sistem na serveru, obuka korisnika |
| 7. Održavanje | Kako ga čuvamo živim? | ispravke, nove verzije, nadzor |
Faze lako pamtimo uz gradnju kuće. Planiranje je odluka da gradimo i koliko imamo novca. Analiza je razgovor s porodicom o sobama. Projektovanje je arhitektov nacrt. Implementacija je zidanje. Testiranje je tehnički prijem kuće: da li curi krov, da li radi struja. Isporuka je useljenje. Održavanje je krečenje i popravka bojlera narednih trideset godina.
Posljednja faza najčešće traje najduže i najviše košta. Sistem koji je napravljen za godinu dana može se koristiti i deset godina, a za to vrijeme mijenjaju se zakoni, cijene, uređaji i želje korisnika. Zato se dobar projektant pita i „kako će se ovo mijenjati za pet godina?”, a ne samo „kako ovo napraviti do roka?”.

Najstariji i najjednostavniji način da se faze poredaju je vodopad (engleski waterfall). Faze idu jedna za drugom, kao voda niz stepenice: kad se završi analiza, počinje projektovanje, i u analizu se više ne vraća. Na kraju svake faze nastaje dokument koji se odobri i „zamrzne”, i on je ulaz u sljedeću fazu.
Vodopad ima prave prednosti:
Ali ima i ozbiljnu manu: korisnik vidi sistem tek na kraju. Ako je u analizi nešto pogrešno shvaćeno, to se otkrije tek kad je sve programirano, a to je, sjetimo se slike 1.3, najskuplji trenutak za ispravku. Pored toga, svijet se ne zaustavlja dok tim radi: za dvije godine razvoja mogu se promijeniti i zakon i tržište.
U priči o FBI-ju (poglavlje 1) problem je bio upravo u tome što su se zahtjevi mijenjali, a projekat je bio organizovan kao da se neće mijenjati. Vodopad radi dobro samo kad su zahtjevi jasni, stabilni i dobro poznati od početka.
Winston Royce je 1970. objavio rad o upravljanju razvojem velikih softverskih sistema. Na jednoj slici nacrtao je faze kao stepenice, a odmah ispod napisao da je takav pristup „rizičan i poziva na neuspjeh”, i predložio povratne korake i pravljenje probne verzije. Kasnije su mnogi preuzeli samo sliku, bez upozorenja. Ime „vodopad” nije dao Royce; nastalo je kasnije, zbog oblika slike.
V-model je vodopad nacrtan u obliku slova V, da bi se istaklo nešto što vodopad zanemaruje: svaka faza projektovanja ima svoj par u fazi provjere. Lijeva strana slova V spušta se od opšteg ka detaljnom (zahtjevi, arhitektura, detaljan dizajn, kod). Desna strana se penje od detaljnog ka opštem i provjerava svaku lijevu fazu:
| Lijevo (šta smo odlučili) | Desno (kako provjeravamo) |
|---|---|
| Zahtjevi korisnika | Prihvatno testiranje: korisnik potvrdi da sistem radi ono što mu treba |
| Zahtjevi sistema i arhitektura | Sistemsko testiranje: cijeli sistem zajedno |
| Detaljan dizajn dijelova | Integraciono testiranje: dijelovi zajedno |
| Kod jedne funkcije | Jedinično testiranje: svaka funkcija posebno |
Ključna ideja V-modela je da se test planira u istom trenutku kad se piše ono što test provjerava. Kad zapišemo pravilo PP-4 („od 30,00 € dostava je besplatna”), odmah zapišemo i kako ćemo ga provjeriti: narudžba od tačno 30,00 € mora imati dostavu 0,00 €, a narudžba od 29,99 € mora je platiti. Tako se nejasna pravila otkriju odmah, a ne kad tester dođe na red.
V-model se i danas koristi u industrijama gdje greška može ugroziti život: automobili, avioni, medicinski uređaji. O nivoima testiranja detaljno govori predmet Testiranje softvera, a u ovoj knjizi poglavlje 14.

Odgovori: tipka R ili klik na zamućeno polje.
Umjesto da cijeli sistem prođe kroz sve faze jednom, može se raditi u krugovima. U svakom krugu tim malo analizira, malo projektuje, programira, testira i pokaže rezultat korisniku. Taj krug se zove iteracija. Na kraju iteracije postoji inkrement: komad sistema koji stvarno radi i koji se dodaje prethodnim komadima.
Dvije riječi znače različito, pa ih razdvojimo:
Dobri timovi rade i jedno i drugo istovremeno.
Najpoznatija slika za ovu razliku je put do automobila. Ako kupac hoće prevozno sredstvo, pogrešan inkrementalni put je napraviti prvo točak, pa šasiju, pa karoseriju: kupac do kraja nema čime da se vozi. Dobar put je napraviti prvo skejtbord, pa romobil, pa bicikl, pa motor, pa automobil. Svaka verzija je mala, ali već vozi, i kupac može reći „zapravo mi treba nešto s krovom” prije nego što je potrošen sav novac.
Za DeliveryApp bi „skejtbord” bio: jedan restoran, jelovnik od tri jela, narudžba bez plaćanja karticom (plaća se dostavljaču), i e-mail restoranu. To je malo, ali neko već može naručiti ručak i reći šta mu smeta.

Manifest iz Snowbirda (2001) kaže da tim više cijeni stvari s lijeve strane, iako i one s desne imaju vrijednost:
| Više cijenimo… | …nego |
|---|---|
| ljude i saradnju | procese i alate |
| softver koji radi | iscrpnu dokumentaciju |
| saradnju s naručiocem | pregovaranje o ugovoru |
| reagovanje na promjenu | slijepo praćenje plana |
Važno je pročitati i sitna slova: manifest ne kaže da dokumentacija, plan i ugovor nisu potrebni. Kaže da su ljudi, softver koji radi, saradnja i promjena važniji. Tim koji ne piše nikakvu dokumentaciju i kaže „mi smo agilni” nije pročitao manifest do kraja.
Iz dvanaest principa manifesta izdvajamo četiri koja ćemo stalno koristiti:
„Agilno znači bez planiranja.” Agilni timovi planiraju češće, a ne manje: na početku svakog sprinta, svaki dan na kratkom sastanku i na kraju sprinta. Razlika je u tome što plan za dvije sedmice smije biti detaljan, a plan za godinu dana ostaje grub i mijenja se.
Scrum je najrašireniji agilni okvir. Ime je pozajmljeno iz ragbija, gdje „scrum” znači zbijenu grupu igrača koji zajedno guraju loptu naprijed. Scrum je namjerno jednostavan i ima tri grupe pojmova: uloge, artefakte (stvari koje tim pravi i čuva) i događaje.
| Uloga | Šta radi | U DeliveryApp |
|---|---|---|
| Vlasnik proizvoda (product owner) | odlučuje šta je najvažnije; slaže backlog | predstavnik udruženja ugostitelja |
| Scrum master | pomaže timu da radi po Scrumu i uklanja prepreke | jedan član tima, npr. iskusniji programer |
| Razvojni tim (developers) | pravi inkrement: analitičari, programeri, testeri | tri do devet ljudi |
Scrum master nije šef. On je više kao trener: ne igra umjesto tima, nego pazi da tim može igrati.
Definicija gotovog (Definition of Done) je lista uslova koje svaka stavka mora ispuniti da bi se smjela nazvati gotovom. Za DeliveryApp bi mogla glasiti: kod je u Gitu, prošao je recenziju kolege, svi testovi prolaze, kriteriji prihvatanja su provjereni, dokumentacija je dopunjena. Bez ovakve liste svako „gotovo” znači nešto drugo.
| Događaj | Kada i koliko | Pitanje |
|---|---|---|
| Sprint | jedna do četiri sedmice; DeliveryApp ima dvije | (okvir za sve ostale) |
| Planiranje sprinta | na početku, do oko četiri sata za dvije sedmice | Šta pravimo u ovom sprintu i kako? |
| Dnevni sastanak (daily scrum) | svaki dan, 15 minuta, uvijek u isto vrijeme | Šta smo uradili, šta danas, šta nas koči? |
| Pregled sprinta (sprint review) | na kraju, s vlasnikom proizvoda i korisnicima | Šta smo napravili? Šta sada ima smisla? |
| Retrospektiva | poslije pregleda | Kako da sljedeći sprint radimo bolje? |

Timovi često procjenjuju veličinu stavki u bodovima (story points): to nisu sati, nego relativna težina („ova stavka je otprilike duplo veća od one”). Zbir bodova završenih u jednom sprintu zove se brzina tima (velocity).
Primjer: tim DeliveryApp je u prva tri sprinta završio 18, 22 i 20 bodova. Prosječna brzina je
Čemu služi. Ako je u backlogu još 120 bodova, potrebno je otprilike 120 / 20 = 6 sprintova, a to je kod sprintova od dvije sedmice oko 12 sedmica. Ovo je procjena, ne obećanje: backlog se mijenja, a brzina varira. Ali je mnogo bolja od „biće gotovo kad bude gotovo”.
Ako tim od četiri člana kaže da je u sprintu završio „skoro sve” od 25 bodova, a dvije stavke od po 4 boda nisu prošle testove, kolika je brzina tog sprinta? (Odgovor: 25 − 8 = 17 bodova; stavka koja ne ispunjava Definiciju gotovog ne broji se.)
Odgovori: tipka R ili klik na zamućeno polje.
Kanban (japanski: „kartica”, „tabla”) potiče iz fabrike automobila Toyota u Japanu, iz sredine dvadesetog vijeka. Tamo je kartica putovala s dijelovima i govorila kada treba proizvesti nove, tako da se ne gomilaju zalihe. U softveru Kanban znači tablu s kolonama na kojoj svaki zadatak ima svoju karticu, a kartice putuju s lijeva na desno.
Tipična tabla DeliveryApp ima pet kolona: Backlog, Spremno, U radu, Pregled, Gotovo. Svako odmah vidi gdje je koji posao i gdje se posao gomila.
Najvažnija ideja Kanbana nije tabla, nego ograničenje posla u toku (WIP ograničenje, od engleskog work in progress). Ako kolona „U radu” smije imati najviše tri kartice, niko ne smije početi četvrti zadatak dok se jedan ne završi. To zvuči kao kočnica, a zapravo ubrzava: ljudi završavaju započeto umjesto da istovremeno žongliraju s deset poluzavršenih stvari.
Slika iz života: kasa u prodavnici. Ako jedna blagajnica istovremeno počne naplaćivati pet kupaca (kod jednog skenira mlijeko, kod drugog hljeb…), niko ne izlazi iz prodavnice. Ako naplati jednog po jednog, svaki kupac čeka kraće.
Postoji jednostavna veza između broja zadataka u radu, brzine kojom se završavaju i vremena koje jedan zadatak provede na tabli. Zove se Littleov zakon, po matematičaru Johnu Littleu:
Čemu služi. W je prosječno vrijeme koje jedan zadatak provede u sistemu (od „Spremno” do „Gotovo”). L je prosječan broj zadataka koji su istovremeno u radu. λ (čita se „lambda”) je propusnost, prosječan broj zadataka koje tim završi u jedinici vremena. Primjer: ako je na tabli DeliveryApp stalno oko 6 kartica u radu, a tim dnevno završi 3 kartice, jedna kartica u prosjeku putuje W = 6 / 3 = 2 dana. Ako tim smanji WIP na 3, a završava i dalje 3 dnevno, prosječno vrijeme pada na 1 dan. Ista ekipa, isti posao, a kupac dobija ispravku duplo brže.

Kanban nema sprintove ni propisane uloge. Zato je dobar za timove kojima posao stiže neravnomjerno: podrška korisnicima, održavanje, ispravke grešaka. Mnogi timovi kombinuju Scrum i Kanban: rade u sprintovima, a sprint prate na Kanban tabli.
U starijim firmama postojala su dva odvojena tima. Razvoj (development) je pisao novi kod i želio ga što prije pustiti. Održavanje rada (operations) brinulo je o serverima i željelo da se ništa ne mijenja, jer svaka promjena može nešto pokvariti. Između njih je stajao „zid” preko kojeg se kod bacao jednom u nekoliko mjeseci, uz mnogo stresa.
DevOps (od development i operations) je način rada u kojem ta dva tima rade zajedno i automatizuju sve što se ponavlja:
Umjesto jedne velike, strašne isporuke svaka tri mjeseca, DevOps timovi isporučuju male izmjene često, nekad i više puta dnevno. Mala izmjena se lakše provjeri, a ako nešto pođe naopako, lakše se vrati. DevOps detaljno radimo u poglavlju 14, gdje ćemo vidjeti i šta se desi kad automatska isporuka nije dovoljno pažljivo projektovana.
Kroz faze životnog ciklusa tim koristi mnogo alata. Neki pomažu da se razmišlja i dogovara, a neki pretvaraju naš tekst u program koji računar izvršava. Ove druge zovemo sistemski programski alati i vrijedi znati šta svaki radi, jer projektant odlučuje i o njima (posebno kod sistema u realnom vremenu, poglavlje 13).
| Alat | Šta radi | Slika iz života |
|---|---|---|
| Editor / IDE (integrisano razvojno okruženje, npr. VS Code) | mjesto gdje se piše kod, uz pomoć, pretragu i pokretanje | radni sto s alatom na dohvat ruke |
| Asembler | prevodi asemblerski jezik (instrukcije procesora riječima, npr. ADD) u mašinski kod (brojeve) | rječnik riječ-za-riječ |
| Makroasembler | asembler koji dozvoljava da se ponovljeni niz instrukcija nazove jednim imenom (makro) | skraćenica „itd.” umjesto nabrajanja |
| Kompajler (prevodilac) | prevodi cijeli program iz višeg jezika (C, Java) u mašinski ili međukod | prevodilac koji prevede cijelu knjigu |
| Optimizujući kompajler | prevodi tako da program bude brži ili manji | prevodilac koji uz to skrati rečenice |
| Interpreter | izvršava program red po red, bez prethodnog prevođenja cijelog programa (npr. Python) | simultani prevodilac na konferenciji |
| Povezivač (linker) | spaja više prevedenih dijelova i biblioteka u jedan izvršni program | knjigovezac koji poveže poglavlja u knjigu |
| Punjač (loader) | učita program u memoriju i pokrene ga | bibliotekar koji knjigu stavi na sto |
| Debager (debugger) | zaustavlja program na izabranom mjestu i pokazuje vrijednosti varijabli | usporeni snimak utakmice |
| Simulator / emulator | glumi uređaj ili procesor koji nemamo na stolu | simulator leta za pilota |
| Sistem za verzije (Git) | pamti svaku verziju koda i dokumenata | dnevnik izmjena |
| CI server (npr. GitHub Actions) | automatski pokreće prevođenje i testove pri svakoj izmjeni | kontrolor kvaliteta na traci |
U DeliveryApp pišemo u Pythonu, koji se izvršava interpreterom, pa kompajler i povezivač ne vidimo direktno. Ali aplikacija za mobitel, baza i operativni sistem servera prevedeni su upravo ovim alatima. U sistemima koji upravljaju uređajima (poglavlje 13), program se često piše u C-u, prevodi kompajlerom za mali procesor, isproba u simulatoru i tek onda učita u uređaj.
Ne postoji jedna metodologija koja je najbolja za sve. Izbor zavisi od toga koliko su zahtjevi poznati i stabilni, koliko je greška opasna i kako posao stiže.
| Situacija | Dobar izbor | Zašto |
|---|---|---|
| Zahtjevi poznati i stabilni, propisi traže dokumentaciju (npr. softver pejsmejkera) | vodopad ili V-model | svaka faza se dokumentuje i provjerava |
| Novi proizvod, korisnici još ne znaju tačno šta žele (npr. DeliveryApp) | Scrum | česti inkrementi otkrivaju prave želje |
| Posao stiže neravnomjerno, mnogo malih zahtjeva (podrška, održavanje) | Kanban | nema čekanja na kraj sprinta |
| Sistem se mijenja svaki dan i mora stalno raditi (web servis) | Scrum ili Kanban uz DevOps | automatizacija čini česte izmjene sigurnim |
Za DeliveryApp biramo Scrum sa sprintovima od dvije sedmice i Kanban tablu na GitHubu. Razlog: vlasnici restorana i kupci tek treba da vide prvu verziju da bi rekli šta im zaista treba. Kad sistem bude u radu i pređe u održavanje, tim može preći na čisti Kanban.
Za svaki projekat predložite metodologiju i jednom rečenicom obrazložite: a) softver za upravljanje semaforima u gradu; b) web stranica studentske organizacije; c) ispravke grešaka u aplikaciji banke koja već radi.
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je da tim (ili svaki student sam, u ulozi cijelog tima) napravi tablu zadataka za DeliveryApp na GitHubu, popuni backlog i isplanira Sprint 1. Radi se u repozitoriju deliveryapp-projekat iz poglavlja 1.
- „Prikazati jelovnik jednog restorana” - „Dodati jelo u korpu i vidjeti zbir” - „Izračunati dostavu po pravilima PP-2 do PP-4” - „Primijeniti kod STUDENT10 (PP-5)” - „Restoran prihvata ili odbija narudžbu” - „Kupac otkazuje narudžbu (PP-6)” - „Plaćanje karticom” - „Praćenje dostavljača na mapi” - „Mjesečni izvještaj za restoran”
S (mala), M (srednja), L (velika). Na sljedećem času oznake ćemo zamijeniti bodovima.README.md dodajte odjeljak Definicija gotovog s najmanje četiri uslova (kod u Gitu, prošao recenziju, testovi prolaze, kriteriji prihvatanja provjereni).sprint-1.md po šablonu:# Sprint 1
- Trajanje: 2 sedmice
- Cilj: (jedna rečenica)
## Stavke
| Issue | Naslov | Veličina |
| --- | --- | --- |
| #1 | Prikazati jelovnik jednog restorana | S |
## Rizici
(Šta bi nas moglo zakočiti?)U grupama od četiri studenta odigrajte dnevni sastanak od tačno 15 minuta: svako kaže šta je „juče” uradio, šta će „danas” i šta ga koči. Jedan član je scrum master i pazi na vrijeme. Zatim odigrajte kratku retrospektivu: svako na papirić napiše jednu stvar koja je išla dobro i jednu koju bi promijenio. Zaključak retrospektive (jedna promjena za sljedeći put) upišite na kraj sprint-1.md.
Dajte AI asistentu viziju DeliveryApp i zatražite prijedlog dodatnih stavki backloga. Za svaku predloženu stavku odlučite: ide u backlog, ide u „nije u prvoj verziji”, ili se odbacuje, i zapišite zašto. Provjerite da AI nije izmislio pravilo koje vlasnici nisu tražili (npr. „dostava besplatna nedjeljom”).
Rezultat koji se predaje: link na GitHub Projects tablu s najmanje 12 stavki i WIP ograničenjem 3, te fajl sprint-1.md s ciljem, stavkama, rizicima i zaključkom retrospektive.
Rješenja su sakrivena – tipka R ili klik na okvir.
Za svaku stvar recite u kojoj fazi životnog ciklusa nastaje: a) dijagram stanja narudžbe; b) odluka udruženja da uloži u aplikaciju; c) ispravka greške u obračunu dostave šest mjeseci nakon početka rada; d) intervju s konobarom o tome kako danas prima narudžbe; e) obuka osoblja restorana.
a) projektovanje; b) planiranje; c) održavanje; d) analiza; e) isporuka.
Za zahtjev „Za artikle od 30,00 € i više dostava je besplatna” napišite dva testa koji bi se u V-modelu planirali odmah, s očekivanim rezultatom. Na kojem su nivou?
Test 1: artikli tačno 30,00 €, udaljenost 5 km → dostava 0,00 €. Test 2: artikli 29,99 €, udaljenost 5 km → dostava 3,00 € (preko 3 km su 2 km: 2,00 + 2 × 0,50). Oba provjeravaju zahtjev korisnika, pa su na nivou prihvatnog testa; isti slučajevi mogu postati i jedinični testovi funkcije za dostavu.
Tim je u četiri sprinta završio 15, 21, 18 i 22 boda. U backlogu je ostalo 95 bodova. Koliko sprintova od dvije sedmice treba, otprilike?
Prosjek (15 + 21 + 18 + 22) / 4 = 76 / 4 = 19 bodova. 95 / 19 = 5 sprintova, dakle oko 10 sedmica.
Na tabli podrške DeliveryApp u prosjeku je 8 kartica u radu, a tim sedmično završi 16 kartica. Koliko u prosjeku traje jedna kartica? Šta bi se desilo ako bi se WIP smanjio na 4, uz istu propusnost?
W = L / λ = 8 / 16 = 0,5 sedmice, odnosno oko 2,5 radna dana (sedmica od 5 radnih dana). Sa WIP 4: W = 4 / 16 = 0,25 sedmice, oko 1,25 radnih dana, duplo brže.
Opština naručuje softver za izdavanje građevinskih dozvola. Zakon tačno propisuje korake i rokove, a aplikacija mora proći reviziju nadležnog ministarstva. Koju metodologiju biste predložili i zašto? Šta biste ipak pozajmili iz agilnog pristupa?
Pošto su koraci propisani zakonom (stabilni zahtjevi) i potrebna je potpuna dokumentacija za reviziju, razuman izbor je V-model. Iz agilnog pristupa vrijedi pozajmiti rane prototipe ekrana koje službenici isprobaju, i redovne preglede s naručiocem, da se nejasnoće u tumačenju zakona otkriju prije programiranja.