Dio 1 – Modeli, uloge, planiranje
Dio 2 – Rizici, tim, kvalitet, poboljšanje procesa
Dopunska praksa – Plan izdanja, registar rizika
Materijale priredio Erkan Islamović
erkan.islamovic@eubd.edu.ba · erkan.islamovic@gmail.com
Deset predavanja: dva časa teorije i jedan čas dopunske prakse. Danas: poglavlje 2 (označeno). Isti primjer kroz knjigu: DeliveryApp 2.0.
| Pred. | Dio 1 | Dio 2 | Praksa |
|---|---|---|---|
| 1 | Projekat i proizvod, trendovi, etika | Inženjerski pristup, alati, automatizacija | Repozitorij i vizija proizvoda |
| 2 | Modeli, uloge, planiranje | Rizici, tim, kvalitet, poboljšanje procesa | Plan izdanja, registar rizika |
| 3 | Konceptualni model, UML, SOLID | Prototip, UX, specifikacija dizajna | Wireframe i SDD |
| 4 | IDE, organizacija koda, OOP, okviri | Podaci, MVC/MVVM, čisti kod, refaktoring | Refaktoring funkcije |
| 5 | Git, pull request, CI | Testovi, CD, kontejneri | GitHub Actions |
Deset predavanja: dva časa teorije i jedan čas dopunske prakse. Danas je poglavlje 2. Isti primjer kroz knjigu: DeliveryApp 2.0.
| Pred. | Dio 1 | Dio 2 | Praksa |
|---|---|---|---|
| 6 | Klasifikacija, mjerljivost | Taktike i redizajn | Mjerenje i keš |
| 7 | Odluke, pogledi, stilovi | Troslojna i čista arhitektura, predlošci | ADR i C4 |
| 8 | CBSE, odlike, interfejsi | Principi, smjernice, provođenje | Paket sa verzijom |
| 9 | SaaS, SOA, IoT, proizvodne linije | Aspekti, reaktivno programiranje | Dekorator i tok događaja |
| 10 | Vrijednost, troškovi, razvoj ili kupnja, TCO | Metrike, procjena, NPV, povrat | NPV u Pythonu |
Sredinom šezdesetih godina Fred Brooks vodio je u IBM-u razvoj operativnog sistema OS/360, jednog od najvećih softverskih projekata svog vremena. Projekat je kasnio, i Brooks je uradio ono što bi uradio skoro svaki rukovodilac: dodao je još programera. Projekat je kasnio još više. Novi ljudi su prvo morali učiti, stari su ih morali podučavati umjesto da programiraju, a svaki novi čovjek je značio još sastanaka i još nesporazuma. Deset godina kasnije, 1975, Brooks je iskustvo opisao u knjizi „Mitski čovjek-mjesec” (The Mythical Man-Month). Najpoznatija rečenica iz nje danas se zove Brooksov zakon: dodavanje ljudi zakašnjelom softverskom projektu čini ga još zakašnjelijim.
Brooks je to objasnio i slikom koju niko ne zaboravlja: dijete se rađa za devet mjeseci, bez obzira na to koliko je žena dodijeljeno tom poslu. Knjiga se i danas prodaje, a Brooks je 1999. dobio Turingovu nagradu, najveće priznanje u računarstvu.
U poglavlju 1 vidjeli smo da proizvod nastaje kroz niz projekata i da DeliveryApp 2.0 pravi tim od šest ljudi za dvanaest sedmica. Ovo poglavlje odgovara na pitanje kako se taj posao organizuje. Prvi dio govori o modelima procesa (klasičnim i agilnim), ulogama u timu, izboru pristupa i planiranju: koliko će trajati i koštati. Drugi dio govori o onome što plan najčešće obori: rizicima i ljudima. Na kraju vidimo kako se čuva kvalitet i kako se sam proces s vremenom poboljšava.
Nakon poglavlja možete:
opisati vodopad, V-model, spiralni model, Scrum i Kanban i reći kada je koji dobar; nabrojati uloge u timu i šta svaka radi; obrazložiti izbor pristupa za dati projekat; procijeniti stavke backloga bodovima i izračunati broj sprintova iz brzine tima; napraviti budžet tima; napraviti registar rizika i rangirati rizike; izračunati broj kanala komunikacije i objasniti Brooksov zakon; opisati faze razvoja tima; objasniti upravljanje konfiguracijom i Definiciju gotovog; opisati PDCA ciklus i nivoe zrelosti CMMI.
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 2.1–2.4 Modeli, uloge, izbor pristupa, planiranje | Planning poker za tri stavke DeliveryApp |
| Teorija 2 | 2.5–2.8 Rizici, ljudi i tim, kvalitet, poboljšanje procesa | Brooksov zakon na tabli; registar rizika |
| Dopunska praksa | Plan izdanja 2.0 i registar rizika u GitHub Projects | Tabla, milestone, rizici |
Svaki softver, bez obzira na model, prolazi kroz iste poslove: planiranje (vrijedi li?), analizu zahtjeva (šta treba?), dizajn (kako?), implementaciju (kod), provjeru (radi li?), isporuku i održavanje. Modeli se razlikuju samo po tome kojim redom i koliko puta se ti poslovi rade.
Vodopad radi svaki posao jednom, redom, kao voda niz stepenice. Na kraju svake faze nastaje odobren dokument koji je ulaz u sljedeću. Prednost: jasan plan, budžet i dokumentacija. Mana: korisnik vidi rezultat tek na kraju, kad je ispravka najskuplja.
V-model je vodopad u kojem svaka faza „lijeve strane” (zahtjevi, arhitektura, dizajn, kod) ima par na „desnoj strani” (prihvatni, sistemski, integracioni, jedinični test). Koristi se tamo gdje greška može ugroziti život: automobili, avioni, medicinski uređaji.
Spiralni model (Barry Boehm, 1986) razvija sistem u krugovima. Svaki krug ima četiri koraka: odredi ciljeve, procijeni i smanji rizike (npr. napravi prototip onoga što je najneizvjesnije), razvij i provjeri, isplaniraj sljedeći krug. Spirala je bila važan korak prema iterativnom razvoju jer je prva stavila rizik u centar procesa.

Winston Royce, čiji se rad iz 1970. smatra prvim opisom vodopada, u istom radu upozorio je da je čisti redoslijed faza bez povratka „rizičan i poziva na neuspjeh”. Mnogi su kasnije preuzeli samo njegovu sliku, bez upozorenja.
U februaru 2001. sedamnaest programera napisalo je Manifest agilnog razvoja: četiri vrijednosti i dvanaest principa. Suština: softver se pravi u kratkim iteracijama, na kraju svake postoji nešto što radi i što korisnik može vidjeti, a plan se mijenja kad se sazna nešto novo.
Scrum je najrašireniji agilni okvir. Posao se radi u sprintovima (obično dvije sedmice). Scrum ima tri odgovornosti, tri artefakta i pet događaja:
| Odgovornosti | Artefakti | Događaji |
|---|---|---|
| Vlasnik proizvoda – šta i kojim redom | Backlog proizvoda – sve što treba | Sprint – okvir od 1–4 sedmice |
| Scrum master – pomaže timu da radi po Scrumu, uklanja prepreke | Backlog sprinta – šta radimo u ovom sprintu | Planiranje sprinta |
| Razvojni tim – pravi inkrement | Inkrement – komad proizvoda koji radi | Dnevni sastanak (15 minuta) |
| Pregled sprinta – pokažemo šta radi | ||
| Retrospektiva – kako da radimo bolje |
Kanban nema sprintove. Posao teče preko table s kolonama (npr. Spremno – U radu – Pregled – Gotovo), a u koloni „U radu” smije biti najviše nekoliko kartica (WIP ograničenje). Kanban je dobar za posao koji stiže neravnomjerno, kao što su podrška i ispravke grešaka.
Uloge izvan Scruma ne nestaju: u većim firmama postoje projektni menadžer (rok, budžet, ugovor), arhitekta (velike tehničke odluke), tester ili inženjer kvaliteta, dizajner korisničkog iskustva, DevOps inženjer (isporuka i rad sistema), poslovni analitičar (zahtjevi). U malom timu jedna osoba nosi više uloga.
U DeliveryApp 2.0: Lana je vlasnica proizvoda, Amar scrum master i programer, Sara, Dino i Emir programeri, a Ena je dizajnerka i testerka. Arhitektonske odluke donose zajedno, a Amar vodi računa da budu zapisane (poglavlje 7).
„Agilno znači bez plana i bez dokumentacije.” Agilni tim planira češće, ne manje: svake dvije sedmice. Dokumentacija postoji, ali samo ona koja nekome služi. Manifest kaže da je softver koji radi važniji od iscrpne dokumentacije, a ne da je dokumentacija zabranjena.
Nijedan model nije najbolji za sve. Izbor zavisi od nekoliko pitanja:
| Pitanje | Ako je odgovor „da” | Ako je odgovor „ne” |
|---|---|---|
| Da li su zahtjevi jasni i stabilni od početka? | vodopad ili V-model | agilno (Scrum) |
| Da li je softver kritičan za život ili ga pregleda regulator? | V-model, mnogo dokumentacije | agilno, lakša dokumentacija |
| Da li je naručilac stalno dostupan za razgovor? | agilno | više planiranja unaprijed |
| Da li posao stiže neravnomjerno (podrška, greške)? | Kanban | Scrum |
| Da li postoji velika tehnička neizvjesnost? | spirala ili prototip prvo | bilo koji |
| Da li je tim velik (više od 10 ljudi) ili raštrkan? | više timova, skalirani okvir, jasni interfejsi | jedan tim |
U praksi su česti hibridi: firma potpiše ugovor s rokom i budžetom (kao u vodopadu), a unutar njega tim radi u sprintovima. Za DeliveryApp 2.0 tim bira Scrum za nove funkcije (zahtjevi se još otkrivaju, Lana je dostupna svaki dan) i Kanban za podršku verziji 1.4.2 koja radi u Gradu A.
Za svaki projekat izaberite pristup i obrazložite jednom rečenicom: a) softver za pumpu za inzulin; b) aplikacija za studentski festival za tri mjeseca; c) održavanje bankarskog sistema koji radi 15 godina; d) nova društvena mreža čija ideja još nije sasvim jasna.
Svaki naručilac pita dva pitanja: koliko će trajati i koliko će koštati. Klasično planiranje odgovara tako što posao razbije na zadatke, za svaki procijeni sate i sabere. Problem je što su procjene u satima za posao koji niko još nije radio skoro uvijek preoptimistične.
Agilno planiranje koristi drugi trik: ne pitamo „koliko sati?”, nego „koliko je ovo veće od onoga?”. Ljudi loše procjenjuju apsolutno, a dobro relativno: teško je reći koliko je visoka zgrada, ali lako je reći da je duplo viša od susjedne.
Bodovi priče. Svaka stavka backloga dobija broj iz niza 1, 2, 3, 5, 8, 13, 20 (slično Fibonaccijevom nizu). Razmak između brojeva raste namjerno: velike stvari su neizvjesnije, pa nema smisla raspravljati da li je nešto 14 ili 15.
Planning poker. Svaki član tima ima karte s brojevima. Vlasnica proizvoda pročita stavku, svi istovremeno okrenu kartu. Ako se procjene mnogo razlikuju, oni s najmanjom i najvećom kartom objasne zašto, i glasa se ponovo. Vrijednost nije u broju, nego u razgovoru: Emir je dao 13 jer zna da servis mapa u Gradu B vraća adrese u drugom obliku, a ostali to nisu znali.
| Stavka backloga DeliveryApp 2.0 | Bodovi |
|---|---|
| Tarife dostave po gradu (podešavanje umjesto koda) | 8 |
| „Ponovi narudžbu” | 5 |
| „Praćenje dostavljača uživo” | 13 |
| Izbor grada pri prvom pokretanju | 3 |
| Izvještaj o prometu po gradu za udruženje | 5 |
Brzina tima i plan izdanja. Tim DeliveryApp je u četiri sprinta verzije 1.x završio 18, 22, 20 i 24 boda. Prosjek je
Backlog za verziju 2.0 ima 126 bodova. Potrebno je 126 / 21 = 6 sprintova, odnosno 12 sedmica. To je plan izdanja: verzija 2.0 za oko 12 sedmica, uz rezervu jer brzina varira.

Budžet. Najveći trošak razvoja su ljudi. Ako član tima košta firmu 2.000 € mjesečno (bruto plata i ostali troškovi), šest ljudi tri mjeseca košta 6 × 3 × 2.000 = 36.000 €. Uz dizajn, licence i marketing (4.000 €), ulaganje u DeliveryApp 2.0 je 40.000 €. Da li se to isplati, računamo u poglavlju 10.
Odgovori: tipka R ili klik na zamućeno polje.
Rizik je nešto što se još nije desilo, ali bi moglo, i ako se desi, šteti projektu. Problem je rizik koji se već desio. Upravljanje rizicima znači baviti se problemima dok su još rizici, kad je jeftino.
Postupak ima četiri koraka:
Registar rizika DeliveryApp 2.0:
| Oznaka | Rizik | V | U | V × U | Odgovor |
|---|---|---|---|---|---|
| RZ-1 | Servis mapa u Gradu B nema tačne adrese | 4 | 4 | 16 | ublažiti: ručna korekcija adrese, test na 100 adresa |
| RZ-3 | Ručak u tri grada preoptereti server | 3 | 4 | 12 | ublažiti: test opterećenja, keš, skaliranje (poglavlje 6) |
| RZ-2 | Ključni programer napušta tim | 2 | 5 | 10 | ublažiti: pregled koda, dokumentacija, rad u paru |
| RZ-4 | Novi zakon o fiskalizaciji računa | 2 | 3 | 6 | pratiti |
| RZ-5 | Dobavljač plaćanja diže proviziju | 3 | 2 | 6 | prihvatiti; imati rezervnog dobavljača |

Rizik RZ-1 je na vrhu. Zato tim prvi sprint ne počinje lakim stvarima, nego tarifama i adresama za Grad B: ako se problem pokaže nerješivim, bolje je to saznati u drugoj nego u desetoj sedmici. To je ista ideja kao u spiralnom modelu.
„Registar rizika je papir za šefa.” Registar ima smisla samo ako mijenja plan. Ako rizik broj jedan ne utiče na to šta se radi u sljedećem sprintu, registar je ukras.
Softver prave ljudi, i najveći dio uspjeha ili propasti projekta zavisi od toga kako ti ljudi rade zajedno.
Zašto Brooksov zakon važi. Kad tim ima n ljudi, broj parova koji moraju međusobno razgovarati je
Za tim DeliveryApp (6 ljudi) to je 15 kanala. Ako Lana doda još troje, kanala je 36, više nego duplo, a ljudi je samo 50 % više. Za 12 ljudi kanala je 66. Novi ljudi uz to prvo uče, a stari ih podučavaju. Zato dodavanje ljudi na kraju projekta usporava, a na početku, uz dobro podijeljen posao, može pomoći.

U Amazonu se priča pravilo „tima od dvije pice”: tim treba biti dovoljno mali da ga nahrane dvije velike pice, dakle oko šest do osam ljudi. Kad posao naraste, ne povećava se tim, nego se pravi novi tim sa svojim jasnim dijelom proizvoda. To je Brooksov zakon pretvoren u organizaciju.
Faze razvoja tima. Psiholog Bruce Tuckman opisao je 1965. četiri faze kroz koje prolazi svaka grupa:
Šta čini dobar tim. Istraživanje Googlea o timovima (projekat „Aristotel”, objavljen 2015) pokazalo je da je najvažnije psihološka sigurnost: da se svako usuđuje reći „ne razumijem”, „pogriješio sam” ili „mislim da ovo nije dobro” bez straha da će biti ismijan. U timu gdje se greške skrivaju, one stižu do korisnika.
Upravljanje ljudskim resursima u projektu uključuje i izbor ljudi (kombinacija vještina), raspodjelu posla, razvoj (učenje, mentorstvo) i zadržavanje (rizik RZ-2). Dobar rukovodilac ne mjeri ljude brojem linija koda, nego vrijednošću koju tim isporuči.
Koliko kanala komunikacije ima vaša grupa za seminarski rad od pet ljudi? Šta biste uradili da ih bude manje, a da svi i dalje znaju šta se dešava?
Kad šest ljudi istovremeno mijenja isti proizvod, a u Gradu A radi verzija 1.4.2 dok se pravi 2.0, mora se tačno znati šta je u kojoj verziji. To je upravljanje konfiguracijom: praćenje svih verzija koda, dokumenata, podešavanja i biblioteka.
Tri alata to čine mogućim:
Upravljanje kvalitetom znači da se kvalitet planira i ugrađuje, a ne samo provjerava na kraju. Tim DeliveryApp ima tri pravila:
Na nivou firme kvalitet opisuju standardi: ISO 9001 (sistem upravljanja kvalitetom bilo koje organizacije) i ISO/IEC 25010 (model kvaliteta softverskog proizvoda, poglavlje 6).
Dobar tim ne radi samo proizvod, nego stalno poboljšava i način na koji radi. To se zove poboljšanje procesa razvoja softvera (SPI).
PDCA ciklus (Plan – Do – Check – Act, planiraj – uradi – provjeri – djeluj) potiče iz industrije kvaliteta i jednostavan je: izaberi jednu promjenu, isprobaj je, izmjeri efekat, i ako pomaže, uvedi je za stalno. Scrum retrospektiva je PDCA u malom: svake dvije sedmice tim bira jednu stvar koju mijenja.
Primjer iz DeliveryApp: na retrospektivi Sprinta 2 tim primijeti da pregled koda čeka u prosjeku dva dana. Plan: pregled se radi isti dan, prije podne. Uradi: dvije sedmice. Provjeri: čekanje palo na pola dana. Djeluj: pravilo ulazi u Definiciju gotovog.
CMMI (Capability Maturity Model Integration) je model koji opisuje zrelost procesa organizacije u pet nivoa:
| Nivo | Naziv | Kako izgleda |
|---|---|---|
| 1 | Početni | uspjeh zavisi od heroja; svaki projekat drugačije |
| 2 | Upravljani | projekti se planiraju i prate |
| 3 | Definisani | firma ima zajednički, zapisan proces |
| 4 | Kvantitativno upravljani | proces se mjeri brojevima |
| 5 | Optimizirajući | proces se stalno poboljšava na osnovu mjerenja |

Alati za upravljanje projektom. Tabla i backlog vode se u alatima kao što su GitHub Projects, Jira, Azure DevOps ili Trello; dokumenti u wiki sistemu (npr. Confluence ili wiki na GitHubu); komunikacija u Slacku ili Teamsu. Alati se brzo mijenjaju, ali princip ostaje: posao mora biti vidljiv svima, jedna tabla, jedan backlog, jedno mjesto istine.
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je u repozitoriju deliveryapp-2 iz poglavlja 1 napraviti tablu, plan izdanja i registar rizika. Trajanje: jedan čas.
Napravite najmanje 8 stavki (GitHub Issues) za DeliveryApp 2.0. Naslov počinje glagolom, a u opisu stoji kriterij prihvatanja. Primjer:
Naslov: Izračunati dostavu po tarifi grada
Kriterij prihvatanja:
- N-1001 (21,50 €, 4,2 km) u Gradu B ima dostavu 3,80 €
- Adresa 8,1 km u Gradu B se odbijaU grupi od 3–5 studenata procijenite stavke bodovima (1, 2, 3, 5, 8, 13, 20). Kartice možete napraviti od papira ili koristiti besplatnu web aplikaciju za planning poker. Bodove upišite kao oznaku (label) ili polje u GitHub Projects.
docs/plan-izdanja.md.Napravite docs/rizici.md s tabelom iz odjeljka 2.5 i dodajte bar dva vlastita rizika. Poredajte ih po V × U. Za rizik s najvećim prioritetom napravite Issue „Smanjiti rizik RZ-…” i stavite ga u prvi sprint.
Rezultat: tabla s bar 8 procijenjenih stavki, milestone v2.0.0, docs/plan-izdanja.md i docs/rizici.md.
Rješenja su sakrivena – tipka R ili klik na okvir.
Firma pravi softver za kontrolu semafora u gradu. Zahtjevi su propisani pravilnikom, a softver mora proći nezavisnu provjeru prije puštanja. Koji model predlažete i zašto?
V-model: zahtjevi su stabilni (propisani), a softver je kritičan i pregleda ga nezavisno tijelo, pa je potrebna potpuna dokumentacija i test za svaku fazu. Iz agilnog pristupa korisno je pozajmiti rane prototipe ekrana za operatere.
Tim od 5 ljudi ima brzinu 16, 20, 18 i 22 boda. Backlog ima 150 bodova. Sprint traje 2 sedmice, a član tima košta 2.000 € mjesečno. Koliko sprintova, sedmica i novca treba (mjesec računajte kao 4 sedmice)?
Brzina je (16 + 20 + 18 + 22) / 4 = 19. 150 / 19 ≈ 7,9, dakle 8 sprintova = 16 sedmica = 4 mjeseca. Budžet: 5 × 4 × 2.000 = 40.000 €.
Lana predlaže da se u desetoj sedmici, kad kasne dvije sedmice, tim poveća sa 6 na 10 ljudi. Izračunajte promjenu broja kanala i obrazložite odgovor Lani.
Sa 6 ljudi je 15 kanala, sa 10 ljudi 10 × 9 / 2 = 45, tri puta više. Novi ljudi bi prve sedmice učili, a stari ih podučavali, pa bi tim u preostale dvije sedmice vjerovatno bio sporiji. Bolji odgovor: smanjiti obim verzije 2.0 (npr. „Praćenje uživo” prebaciti u 2.1) ili pomjeriti rok.
Rangirajte rizike i predložite odgovor: A) cloud dobavljač ukida besplatni plan (V 2, U 3); B) dizajnerka je jedina osoba koja zna Figma fajlove (V 3, U 4); C) restorani u Gradu C ne žele koristiti tablet (V 4, U 5).
C (20), B (12), A (6). C: ublažiti – posjeta restoranima, prototip na papiru, obuka, možda i ekran na mobitelu. B: ublažiti – dijeljeni pristup i kratka dokumentacija dizajna. A: pratiti i imati procjenu troška plaćenog plana.