Uloge i odgovornosti članova tima za IT projekat (softverski projekat)
Uspešni razvojni projekti zahtevaju pažljivo planiranje, talentovan tim i saradnju članova tima projekta, kako internih tako i eksternih (predstavnika klijenata).
Tehnološke inovacije poboljšavaju efikasnost, povećavaju produktivnost i podstiču rast poslovanja. Međutim, postizanje uspeha u tehnološkim projektima je prilično težak i izazovan zadatak. Studija upravljanja projektima iz 2018. godine otkrila je da je IT projektima izuzetno teško upravljati, da imaju najveće šanse za neuspeh i da će verovatno doći do prekoračenja troškova i rasporeda. Zato je umesto klasične metodologije za upravljanje projektima, kod IT projekata mnogo više u primeni agilna metoda vođenja projekata. Tako da klasična uloga projektnog menadžera biva zamenjena ulogom Scrum Mastera.

Mnogi projekti ne uspevaju iz raznih razloga. Najčešći razlozi su promene u prioritetima organizacije i promene ciljeva projekta. Prema istom istraživanju, neadekvatna ili loša komunikacija, odugovlačenje članova tima i neiskusni projektni menadžeri su ključni faktori koji utiču na propast projekta.
Softverski projekti napreduju samo kada su ključni članovi tima na svom mestu. Jedan od ključeva uspešne realizacije softverskog projekta je identifikovanje i dokumentovanje uloga i odgovornosti na IT projektu.
Među ključnim akterima softverskog projekta su sledećih deset ključnih uloga i njihove odgovarajuće odgovornosti. Ali nije ograničeno da tim za razvoj softvera ima samo ovih deset uloga, već su to osnovne uloge u timu. Ove uloge se razlikuju u zavisnosti da li projekat vodimo na tradicionalan način ili na agilan način.
Tradicionalan (waterfall) pristup vođenja projekta
SPONZOR PROJEKTA
Sponzori projekta igraju ključnu ulogu u svim projektima.
Sponzor projekta je osoba ili grupa koja obezbeđuje smernice i resurse, uključujući finansijska sredstva za softverski projekat.
Sponzor projekta radi sa timom za upravljanje projektom, pomažući u širim pitanjima projekta kao što su pojašnjenje obima, napredak, praćenje i uticaj na druge. Sponzor projekta vodi projekat kroz proces odabira dobavljača softvera sve dok nije formalno ovlašćen. Za pitanja koja su van kontrole vlasnika proizvoda, sponzor projekta služi kao eskalacija.
Sponzor projekta takođe može biti uključen u druga važna pitanja kao što su odobravanje promena u obimu, pregledi na kraju svake faze projekta i odluke ići ili ne ići kada su ulozi projekta posebno visoki. Sponzori projekata obično su viši menadžment ili rukovodioci na nivou direktora.
MENADŽER PROJEKTA (PM)
Menadžer projekta (PM) treba da poznaje zainteresovane strane na projektu i da bude u mogućnosti da efikasno komunicira sa svakim od njih.
Menadžer projekta je takođe odgovoran za kreiranje i upravljanje budžetom projekta i rasporedom, kao i procesima uključujući upravljanje obimom, upravljanje promenama i upravljanje rizikom. Neke od dužnosti menadžera projekta mogu uključivati:
- Izradu plana softverskog projekta
- Upravljanje isporukom prema planu softverskog projekta
- Regrutovanje osoblja za softverski projekat
- Vođenje i upravljanje timom softverskog projekta
- Utvrđivanje metodologije korišćene na projektu
- Uspostavljanje rasporeda projekta i određivanje svake faze
- Dodeljivanje zadataka članovima projektnog tima
- Pružanje redovnih ažuriranja višem rukovodstvu
Ključno je da menadžer projekta aktivno upravlja promenama. Promena ne treba da se doživljava kao negativna ili nešto što treba izbegavati. Promena je neizbežna i prihvatljiva je u softverskom projektu sve dok se njome upravlja. Uticaj bilo koje promene treba proceniti, izmeriti i saopštiti. Glavni faktori su obično vremenski okvir i budžet. Ako Sponzor projekta smatra uticaj prihvatljivim, onda se promena može uključiti.
Menadžer projekta takođe nadgleda testiranje softvera, isporuku i formalno prihvatanje od strane korisnika. Zatim menadžer projekta vrši pregled projekta sa timom za razvoj softvera kako bi dokumentovao sve lekcije naučene iz procesa razvoja softvera.

Zajednički članovi tima i za waterfall i za scrum metodologiju
Bez obzir o kojoj metodologiji se radi, razvojni tim je taj koji služi za izradu softvera. Najčešće se sastoji od sledećih članova:
- SUBJECT MATTER EXPERT
- SOFTWARE ARCHITECT
- SOFTWARE DEVELOPERS
- TESTERI
- QA TIM
- UX/UI DIZAJNERI
Krenimo redom sa opisom uloga i odgovornosti svakog člana razvojnog tima koji je, standardno, cross functional, odnosno ima znanja i veština iz različitih oblasti.
SUBJECT MATTER EXPERT (SME) – ekspert
Stručnjak za predmetna pitanja (SME) ili ekspert je osoba koja je autoritet u određenoj oblasti ili temi.
Stručnjak za predmetna pitanja ima vrhunsko, stručno znanje o disciplini, tehnologiji, proizvodu, poslovnom procesu ili čitavoj poslovnoj oblasti. Uloga i odgovornosti SME u razvoju softvera mogu se sažeti na sledeći način: oni su obično ljudi od kojih se preuzimaju tehnički zahtevi.
Stručnjaci za predmetna pitanja su računovođe, finansijski kontrolori, prodavci, menadžeri proizvodnje. Oni znaju svoje uloge iznutra i spolja i nije obaveza da imaju tehničko znanje u razvoju softvera.
Naprotiv, njihov nedostatak tehničkog znanja je zapravo njihova snaga, jer nisu zaglibljeni u tehničkim detaljima i umesto toga su isključivo fokusirani na poslovne rezultate.
Imperativ je da se razgovori sa stručnjacima za predmetna pitanja vode u isto vreme kada se kreira izjava o viziji softverskog proizvoda. Povratne informacije od ove grupe stručnjaka mogu uštedeti mnogo posla i vremena. Međutim, s obzirom na to da stručnjaci za predmetna pitanja obično nisu tehnički podkovani, neophodna je pažljiva komunikacija sa njima kako ih ne bi preopteretili sa previše tehničkih detalja. Jedan od načina da ih uključite je da učestvuju u stvaranju prototipova.

SOFTWARE ARCHITECT – Arhitekta softvera
Arhitekta softvera je osoba odgovorna za definisanje kompletnog arhitektonskog sistema projekta. Oni prave izbore za dizajn visokog nivoa na osnovu nefunkcionalnih zahteva i diktiraju standarde kodiranja zajedno sa alatima i platformama. Oni su takođe odgovorni za pregled koda i garantovanje kvaliteta dizajna. Neka od osnovnih zaduženja arhitekte softvera su:
- Definisanje tehničke i funkcionalne arhitekture celokupnog sistema
- Uvođenje programera u dizajn i implementaciju rešenja
- Razvijanje najkritičnije komponente sistema
- Predlaganje najboljih alternativa, uzimajući u obzir inženjerske i poslovne aspekte
SOFTWARE DEVELOPERS – Programeri
Programeri softvera (front-end i back-end) su ključna karika razvojnog tima i bave se razvojem softvera, tk. kreiranjem gotovog proizvoda zbog je projekat inicijalno započet. Odgovorni su za procena troškova i vremenskog okvira.
Deveoperi su takođe odgovorni za izradu rezultata i saopštavanje statusa softverskog projekta menadžeru projekta ili scrum masteru. Od ključne je važnosti da drugi članovi tima efikasno saopšte tehničke zahteve programerima softvera kako bi se smanjio rizik projekta i obezbedile najveće šanse za uspeh projektu.

TESTERI SOFTWERA – Testeri softvera
Testeri softvera osiguravaju da softversko rešenje ispunjava poslovne zahteve i da nema bugova (grešaka i nedostataka).
U fazama planiranja testiranja i pripreme za testiranje softvera, testeri softvera treba da pregledaju i daju doprinos planovima testiranja, kao i da analiziraju, pregledaju i procenjuju tehničke zahteve i specifikacije dizajna.
Testeri softvera su uključeni u identifikaciju uslova testiranja i kreiranje dizajna testova, test slučajeva, specifikacija testnih procedura i podataka o testiranju i mogu da automatizuju ili pomognu u automatizaciji testova.
Neke od dužnosti testera softvera mogu uključivati:
- Oni često postavljaju testna okruženja ili pomažu osoblju za administraciju sistema i upravljanje mrežom u tome
- Kako izvršavanje testa počinje, broj testera se često povećava, počevši od posla koji je potreban za implementaciju testova u okruženju za testiranje
- Testeri izvršavaju i evidentiraju testove, procenjuju rezultate i dokumentuju pronađene probleme
- Oni nadgledaju testiranje i okruženje za testiranje, često koriste alate za ovaj zadatak i često prikupljaju metriku učinka
- Tokom životnog ciklusa testiranja softvera, oni međusobno pregledaju rad, uključujući specifikacije testiranja, izveštaje o greškama i rezultate testiranja
QA TEAM
QA (Quality Assurance) tim je grupa profesionalaca sa iskustvom u softverskom inženjeringu koji pruža podršku projektima kako bi potvrdili da se adekvatne prakse koriste tokom procesa razvoja. Njihov cilj je da osiguraju kvalitet na projektima. Unutar tima možete imati QA leadera, koji je odgovoran za uspostavljanje odgovarajućeg odnosa između članova QA tima, pomaže u ublažavanju bilo kakvih sukoba i podstiče dobar timski rad. Tu je i QA inženjer, osoba odgovorna za pripremu alata koji omogućavaju automatizaciju procesa koji verifikuju kvalitet softvera.
Osnovna zaduženja su:
- Procena izvršenje procesa i proizvodnje rezultata prema definisanom softverskom procesu
- Identifikovanje i dokumentovanje odstupanja u korišćenju standarda i procedura
- Pružanje povratnih informacija o rezultatima zadataka osiguranja kvaliteta da bi se preduzele potrebne korektivne mere
UX/UI DIZAJNERI
Dizajneri UX/UI su odgovorni za dizajniranje korisničkog interfejsa za aplikaciju ili softverski proizvod koji se može razviti. Analiziraju funkcionalnost koju proizvod treba da ima, kao i karakteristike namenjene krajnjim korisnicima. Oni predlažu dizajn interfejsa i definišu model navigacije, sekvence interakcije, vizuelnu organizaciju sadržaja i grafički stil.
Postoje dve vrste dizajnera, iako često postoje oni koji su specijalizovani za obe oblasti:
- UI dizajner – dizajner korisničkog interfejsa: fokusira se na dizajniranje korisničkog interfejsa. To znači prenošenje sadržaja, stila i grafike koji povezuju klijenta ili proizvod sa slojem sistemske prezentacije.
- UX dizajner – dizajner korisničkog iskustva: odgovoran je da obezbedi da krajnji korisnici imaju najbolje moguće iskustvo dok koriste aplikaciju. Oni analiziraju ponašanje korisnika i uzimaju u obzir šta konkurencija radi.
Dok je dizajn korisničkog interfejsa (UI) posvećen načinu na koji je aplikacija postavljena, dizajn korisničkog iskustva (UX) se fokusira na način na koji krajnji korisnici komuniciraju sa aplikacijom.
Jednostavno definisan, UI korisnički interfejs predstavlja način na koji stvari izgledaju, a UX korisničko iskustvo je način na koji stvari funkcionišu.
U suštini, UI/UX dizajneri pretvaraju ideju projekta u vizuelnu stvar. Jedna stvar koju treba imati na umu: vaš dizajner treba da ima sposobnost da sarađuje sa biznisom i razvojnim timom tokom celog životnog ciklusa projekta. Osnovna zaduženja:
- Analiziranje funkcionalnih zahteva namenjenih korisnicima
- Definisanje informacione arhitekture i modela navigacije
- Generisanje prototipova za validaciju predloga tokom procesa projektovanja
- Učestvovanje u implementaciji web i desktop interfejsa
- Dokumentovanje svake odluke o dizajnu interfejsa
Agilni pristup – scrum metodologija
Kada je reč o scrum metodologiji, projektni tim se sastoji od tri dela:
- PRODUCT OWNER
- SCRUM MASTER
- RAZVOJNI TIM (gore opisan, sastavljen od nekih ili svih gore navedenih članova)
PRODUCT OWNER – VLASNIK PROIZVODA
Vlasnik proizvoda se odnosi na pojedince koji ima znanje o tome kako bi konačni proizvod trebalo da izgleda. Imaju pravu predstavu o tome šta se želi ovim projektom i kako će koristiti rezultati projekta. Štaviše, razumeju zahteve klijenata, pa su u dominantnoj poziciji da vode razvoj ka adekvatnom konačnom proizvodu. Faktički predstavljaju klijenta i trude se da se zahteve klijenta ispune u toku projekta.
Vlasnik proizvoda je takođe odgovoran za prioritetne zaostatke i maksimiziranje povrata ulaganja (ROI) softverskog projekta. Deo odgovornosti ove uloge uključuje dokumentovanje korisničkih priča (user stories) ili zahteva za softverski projekat.
Vlasnik proizvoda deluju kao glavna tačka kontakta za sve odluke u vezi sa projektom i kao takav mora biti ovlašćen da obavlja svoje odgovornosti bez potrebe da traži previše prethodnog ovlašćenja od sponzora projekta. Imenovanje prave osobe za ovu ulogu, sa odgovarajućim delegiranim ovlašćenjima za napredak projekta, je od suštinskog značaja za uspeh projekta. Vlasnik proizvoda je posebno odgovoran za:
- obezbeđivanje da se poštuje izjava o viziji softverskog proizvoda
- donošenje konačne odluke o svim odlukama koje se odnose na delokrug
- održavanje i ažuriranje zaostatka proizvoda na kontinuiranoj osnovi
- prečišćavanje novih zahteva
- uklanjanje zahteva koji izlaze iz delokruga
- dodavanje novih zahteva identifikovanih kao neophodnih za postizanje izjave o viziji softverskog proizvoda
- pregled i postavljanje prioriteta dodeljenih zaostatku proizvoda i vođenje svih sastanaka za planiranje projekta
- rešavanje bilo kakvih sporova sa timom za razvoj softvera ili interno
Ako nemate vlasnika proizvoda kao posebnu ulogu na projektu, dolazi do velikog zastoja jer developeri čekaju na ključne povratne informacije. Usporavanje zamaha softverskog projekta može imati dugoročne posledice, ne samo propuštene prekretnice i rokove. Nikada ne potcenjujte važnost uloge vlasnika proizvoda u uspehu vašeg projekta razvoja softvera.
SCRUM MASTER
Scrum Master je jedna od ključnih uloga Agilne metodologije. Oni deluju kao fasilitatori tima i odgovorni su za rešavanje svih problema koji mogu da ometaju razvojni tim da ostvari ciljeve proizvoda. Oni su takođe zaduženi da obezbede da članovi tima poštuju Scrum metodologiju o čemu detaljno pričamo na Scrum Master treningu.
Osnovna zaduženja Scrum Mastera su:
- Osiguravaju da se prate Agile vrednosti i da se primenjuje ispravna metodologija
- Vode, planiraju i prate sve sastanke
- Uče tim o svim najboljim praksama i konceptima Agile metodologije
- Posrednik su između tima i vlasnika proizvoda ili bilo kog spoljnog učesnika
- Prate prepreke u timu i pomažu u prevazilaženju prepreka
- Propagiraju, obučavaju i objašnjavaju zaposlenima značaj scruma
- Pomažu timu da se fokusira na najvrednije aktivnosti i rezultate, izbegavajući spoljašnje prekide i ometanja
Kako god bilo, koju god metodologiju upotrebili, jasno je da, na kraju krajeva, sve zavisi od tima.
Tim za razvoj softvera ima veliku ulogu da oživi bilo koju softversku aplikaciju. Struktura softverskog tima sastoji se kao što smo videli od različitih članova iz različitih oblasti koji imaju specifične odgovornosti. Počevši od dizajna i razvoja do finalne isporuke, u svakoj fazi softverski projekat zavisi od tima. Kada tim za razvoj softvera bude bolji, ishod će uvek biti najbolji. Zato se u timu za razvoj softvera prati odgovarajuća hijerarhija koja pomaže u održavanju boljih međusobnih odnosa.
Srodne teme: