Za čitanje ovog članka potreban je sledeći nivo tehničkog znanja: ⭐⭐⭐⭐⭐ (Niski)
Stranke i njihove zajedničke odgovornosti.
Kada se Naručilac i Developer (Izvršilac) dogovore oko razvoja projekta, zaposleni u obe strane zapravo postaju jedinstven tim kako bi ruku pod ruku išli ka cilju – cilju projekta.
Svaka strana uključena u razvoj projekta – uglavnom to će biti Naručilac i Developer (Izvršilac) – odgovorna je za svoj skup pitanja. U okviru ovog skupa pitanja, nakon toga, određuju se konkretni zadaci koji se predaju odgovornim licima koja čine projektni tim.
Opšte sfere odgovornosti stranaka su raspoređene na sledeći način:
Na strani Naručilaca | Na strani Developera (Izvršilaca) |
---|---|
|
|
Projektni tim
U kontekstu projekta, i strana Naručioca i strana Developera (Izvršilaca) su jedan tim. To je partnerstvo svih uključenih osoba, u kojem se svakom zaposlenom dodeljuje određena uloga ili nekoliko uloga.
Najčešće uloge u IT projektima su sledeće:
- Sponzor projekta (eng.: Project sponsor)
- Voditelj projekta na nivou rukovodstva
- Vlasnik proizvoda (eng.: Product Owner)
- Rukovodilac projekta (eng.: PM) od strane Naručioca
- Poslovni analitičar
- Sistem analitičar
- Rukovodilac projekta (eng.: PM) od strane Developera (Izvršilaca)
- Scrum master
- UX dizajner i UI dizajner
- Glavni razvojni inženjer
- Sistemski arhitekta
- Razvojni inženjeri ili programeri
- Inženjeri QA
- Testeri
- Krajnji korisnici
- Zainteresovana strana (eng.: Stakeholders)
Svaki projekat će imati svoju strukturu, koja će definisati potrebne uloge. Tim se formira za vreme trajanja projekta, a čine ga učesnici koji projekat realizuju i koji imaju zadatke u okviru projekta. Po potrebi, u cilju uspešnog završetka projekta, u toku realizacije projekta mogu se zameniti ili uključiti nova odgovorna lica.
Na slici se mogu videti uloge koje čine minimalni i optimalni projektni tim koji je neophodan za realizaciju projekta. Zelena boja označava stalne uloge, odnosno srž projekta, ljubičasta boja – uloge, koje su uključene u proces razvoja po potrebi, linije ukazuju na glavne pravce komunikacije.
- Uloge koje čine srž tima – bez kojih se ne može. Oni aktivno učestvuju u svakodnevnim procesima.
- Uloge koje su povezane sa projektom epizodično: one možda nisu prisutne u svakodnevnim procesima tokom realizacije projekta, ali su neophodne kada se dostignu određene prekretnice projekta.
- Uloge pored osnovnih uloga projekta u optimalnoj strukturi projekta. Ove uloge, u zavisnosti od veličine i specifičnosti projekta, često se kombinuju u jednom članu projekta, koji obuhvata odgovornosti više uloga. Mogu se preklapati sa drugim ulogama.
- pokazuju pravce komunikacije.
Opis uloga i raspodela odgovornosti
Primeri iz stvarnog života:
- Dve uloge Rukovodioca projekta i Vlasnika proizvoda od strane Naručioca, i svaka od njih ima svoju kompetenciju i oblast odgovornosti, ali u stvari obe ove uloge u projektu obavlja jedna osoba, konsultujući se sa Vlasnikom projekta ako je potrebno.
- Projekat ima tehničke specifičnosti, a na strani Naručioca uloge poslovnog analitičara i sistemskog analitičara su toliko spojene da obe obavlja jedna osoba sa odgovarajućom kompetencijom.
- Ne dodeljuje se odvojeni Glavni razvojni inženjer ili Sistemski arhitekta na strani Developera (Izvršilaca), ali ove uloge ispunjavaju članovi tima uključeni u svakodnevne procese razvoja. Oni preuzimaju odgovornost za tehnološko usmeravanje i kvalitet koda, i po potrebi se konsultuju sa kolegama koji nisu uključeni u projekat.
- Naručilac to je kompanija start-up tipa sa dva učesnika koji su i sami Sponzori projekta, oba su Vlasnici proizvoda, oba testiraju isporučena rešenja, oba upravljaju projektom: jedan je odgovoran za dokumentaciju, drugi je odgovoran za tehničku stranu. Dva člana upravljaju čitavim spektarom timskih uloga na strani Naručioca.
- Definisanje poslovnih zahteva za projekat je odgovornost Naručioca, ali na osnovu prethodnog iskustva kompetentnosti, strana Developera (Izvršilaca) pomaže u njihovom definisanju kako bi konačni rezultat bio što bliži zahtevima stvarnih krajnjih korisnika. (Više o preliminarnim istraživanjima možete pročitati ovde)
Svi IT projekti su različiti, i svi su zanimljivi kao i sam život, pa se uloge opisane u teoriji često spajaju, preklapaju i dopunjuju jedna drugu. Ovde je od velikog značaja prethodno iskustvo članova tima, njihove veštine i – što je najvažnije – međusobna komunikacija.
Dole, možemo se detaljnije upoznati sa klasičnom raspodelom odgovornosti i nadležnosti po ulogama.
Uloge od strane Naručioca
Sponzor projekta
Sponzor projekta (od engleskog: sponzor) često je takođe autorom projektne ideje ili onim koji određuje svrhu implementacije projekta. Sponzor projekta je i osoba koja donosi odluke o obezbeđivanju resursa za realizaciju projekta, a ujedno i glavni donosilac odluka.
Vlasnik proizvoda
Vlasnik proizvoda je predstavnik Naručioca koji je odgovoran za proizvod koji će biti stvoren na kraju projekta. Njegove glavne odgovornosti su:
- Definisanje zahteva;
- Obezbeđivanje komunikacije sa predstavnicima Developera (Izvršilaca), učešće u redovnim sastancima i odgovaranje na pitanja Developera (Izvršilaca), a takođe pružanje neophodne informacije;
- Donošenje odluka o pitanjima koja se odnose na sferu projekta.
Rukovodilac projekta od strane Naručioca
U praksi se često preklapa sa ulogom Vlasnika proizvoda.
Osnovna zaduženja:
- Omogućiti komunikaciju sa predstavnicima Developera (Izvršilaca). Učestvovati na redovnim sastancima i odgovarati na pitanja programera, pružiti neophodne informacije;
- Donositi odluke o pitanjima koja se odnose na sferu projekta (tajming, budžet, redosled prioriteta, upravljanje promenama);
- Obezbediti okruženje u koje će softver biti instaliran;
- Obezbediti komunikaciju sa trećim stranama (rizici povezani sa učešćem trećih strana u projektu su opisani u tabeli rizika)
- Obezbediti programeru podatke neophodne za testiranje proizvoda koji se razvija;
- Obezbediti neophodne resurse za testiranje i upravljati procesom testiranja kako u fazama razvoja (implementaciji) tako i u fazi isporuke projekta;
- Upravljanje postupkom prijema dobijanih materijala.
Krajnji korisnici
Korisnici su oni koji će koristiti sistem koji je nastao kao rezultat implementacije. Važno je uključiti ove ljude u fazu definisanja zahteva projekta, u fazu razvoja i u fazu testiranja.
Zainteresovane strane
Zainteresovane strane (eng. Stakeholders) – to su oni na koje će uticati rezultati projekta: rukovodioci preduzeća, strateški partneri, zakonodavci, konkurenti itd.
Uloge od strane Developera (Izvršilaca)
Voditelj projekta na nivou rukovodstva
Odgovornosti:
- Kontrolisati plan implementacije projekta na strateškom nivou;
- Ako je potrebno, učestvovati u rešavanju konfliktnih situacija između predstavnika strana.
Rukovodilac projekta od strane Developera (Izvršilaca)
Rukovodilac projekta od strane Developera (Izvršilaca) je svojevrsni „most“ između Naručioca i tima koji ustvari sprovodi razvoj. Rukovodilac projekta je osoba koja je odgovorna za pitanja „ko, šta, gde, kada i zašto“ u okviru plana realizacije projekta i koja obezbeđuje postizanje ciljeva projekta.
Osnovna zaduženja:
- Kontrolisati pitanja u vezi sa sferom projekta (termin, budžet, redosled prioriteta);
- Određivati vremenski plan za izradu projekta;
- Određivati plan komunikaciji;
- Upravljanje resursima projekta;
- Raspodela zadataka u okviru tima;
- Analiza izvršenja zadataka razvojnim timom u kontekstu sfere projekta;
- Definisanje i upravljanje promenama;
- Upravljanje rizikom;
- Izrada protokola sa sastanaka u okviru projekta;
- Priprema izveštaja o stanju implementacije;
- Upravljanje postupkom isporuke materijala.
Scrum master
Kada se radi u Agile metodologiji u okviru Scrum jedna od uloga od strane Developera (Izvršilaca) je Scrum Master (eng.: Scrum Master).
Osnovna zaduženja:
- Pratiti i kontrolisati pridržavanje glavnih pravaca Scrum-a tokom rada;
- Uklanjanje svih postojećih prepreka za realizaciju zadataka;
- Organizacija i vođenje protokola sastanaka u okviru projekta;
- Pružanje podrške Vlasniku proizvoda u definisanju zahteva i radnih zadataka.
U praksi, bez korišćenja specifičnog okvira uloge Scrum-a, specifične za ovu ulogu dužnosti obično preuzima Rukovodilac projekta.
UX dizajner i UI dizajner
Osnovna zaduženja:
- Analiza određenih funkcionalnih zahteva;
- Istraživanje i analiza korisnika;
- Definisati arhitekturu korišćenja rešenja (UX), optimizacija;
- Izrada vizuelnog prototipa rešenja;
- Testiranje upotrebljivosti;
- Određivanje smernica vizuelnog rešenja (UI);
- Dokumentirati odluke vezane za dizajn.
Fokus UI dizajna je korisnički interfejs: grafički dizajn, formatiranje sadržaja, stilistika. Odgovoran je za to kako sistem izgleda.
Glavni zadatak UX dizajna je da obezbedi besprekorno korisničko iskustvo kada se koristi razvijeni sistem. UX dizajneri analiziraju ponašanje korisnika i njihova očekivanja o radu sistema, stvarajući lako razumljivu arhitekturu korišćenja. Odgovoran za to koliko je sistem jednostavan za korišćenje.
Više o procesu razvoja dizajna možete pročitati ovre.
Poslovni analitičar
Poslovni analitičar je odgovoran za prenos poslovnih potreba u zahteve proizvoda i obezbeđivanje odgovarajuće dokumentacije pre početka procesa razvoja.
Osnovna zaduženja:
- Istraživanje i analiza poslovnih procesa;
- Prikupljanje, generalizacija, formalizacija zahteva i njihova koordinacija sa Naručiocem;
- Izrada predloga neophodnih promena u postojećim i planiranim procesima;
- Izrada dokumentacije.
Sistem analitičar
Glavni cilj ove uloge je prenošenje poslovnih zahteva u tehničke zahteve za programere, uz razvoj najprikladnijeg tehničkog dizajna za sistem.
U praksi se uloge Poslovnog analitičara i Sistemskog arhitekta često preklapaju.
Glavni razvojni inženjer
To je „most“ (veza) između razvojnog tima i Rukovodioca projekta i/ili Poslovnog analitičara koji projektu pruži tehnički pravac.
Sistemski arhitekt
Osnovna zaduženja: određivati tehničku i funkcionalnu arhitekturu sistema.
U praksi se često preklapa sa ulogama Sistemskog analitičara i Glavnog razvojnog inženjera.
Razvojni inženjeri ili programeri (back-end, front-end)
Glavne oblasti odgovornosti:
- Razvoj i implementacija projekta u skladu sa određenim poslovima i nadležnostima;
- Dokumentiranje procesa;
- Procena složenosti zadataka.
Front-end- programer, radi na vidljivom delu projekta, obezbeđujući nesmetanu komunikaciju interfejsa i poslovne logike.
Back-end- programer, radi na implementaciji poslovne logike na strani koja je nevidljiva za klijenta – na strani servera.
Inženjer QA
Osnovna zaduženja:
- Razvoj testova performansi, regresije i drugih automatizovanih testova;
- Sprovođenje code review rezultata rada kolega.
Tester
Osnovna zaduženja:
- Analiza ispunjenosti zahteva;
- Definisanje odgovarajućih test scenarija;
- Ručno testiranje i registracija otkrivenih grešaka.