
Kako smo preuzeli razvoj nišnih platformi – i na tom iskustvu izgradili developerski tim
Dugoročni projekti su maraton, ali donose neprocjenjivo domensko znanje, a u slučaju Kodiusa i priliku da okupite tim vrhunskih stručnjaka koji će svoja iskustva i znanja ugraditi i na druge izazovne projekte. Saznali smo kako je za Kodiusove developere izgledao proces preuzimanja i vođenja razvoja dvije veoma nišne platforme.
Razvoj FlexCareersa, platforme za traženje i oglašavanje poslova na području Australije i Novog Zelanda postao je u jednom trenutku prevelik za originalni tim… Marko Njavro, suosnivač i sudirektor FlexCareersa, stoga je potražio developere koji bi im pomogli izgraditi platformu do kraja. Pritom je naišao na developerski blog Krešimira Bojčića, osnivača i direktora Kodiusa, kojeg je kontaktirao za pomoć, objasnivši mu ideju iza cijele platforme.
Nakon uspješno odrađenog prvog zadatka, Krešimir i Marko uspostavili su dugoročnu suradnju. FlexCareers se posvetio poslovnoj strani priče i rastu broja korisnika, dok je Krešimir kompletno preuzeo developerski dio posla, što se pokazalo presudnim za daljnji razvoj Kodiusa. S obzirom na to da je ovaj projekt tražio kontinuirani angažman u pogledu razvoja i održavanja, Krešimir je morao promijeniti dotadašnji način rada – iz „solo karijere” prebacio se u lidera developerskog tima.
Sve veći Kodius tim, koji danas broji 30 zaposlenika, počeo se brinuti o cjelokupnom razvoju FlexCareers platforme i njenih specifičnosti. Od tada već dugi niz godina grade bazu inozemnih klijenata, većinom s britanskog i američkog tržišta.

U posljednjih šest godina, Kodiusovi developeri bili su zaslužni za sve ključne aspekte FlexCareers platforme: održavanje baze podataka, rad na unaprjeđivanju protoka podataka sa servera, povezivanje s vanjskim servisima i moderniziranje korisničkog sučelja, osiguravanje i testiranje sigurnosti platforme te zaštite privatnosti i podataka korisnika.
Platforma se bazira na Ruby on Rails frameworku u kombinaciji s JavaScript bibliotekama te CSS/SCSS-om i Foundation frameworku. Vrti se na Amazon Web Service cloudu, dok za strojnu obradu podataka za match-making koriste Burning Glassov LENS server.
Prošli smo tehničku pozadinu, a što je s platformom generalno?
Match-making za poslove s fleksibilnim radnim uvjetima
FlexCareers danas broji više od 195.000 posloprimaca i malo manje od 4.000 poslodavaca. Osim poslodavaca i posloprimaca, na platformi se također nalazi nekoliko desetaka FlexCoacheva – mentora koji pomažu posloprimcima u samopromociji.
Platforma je fokusirana na ponudu i potražnju poslova s fleksibilnim angažmanom (fleksibilni radni sati, rad od doma, rad na pola radnom vremena) pa je, osim tehničkog znanja, bilo potrebno zaroniti u problematiku tog novog, rastućeg tržišta rada.
Kodiusov tim trebao je izgraditi sustav koji će obuhvatiti sve potankosti o ponuđenim poslovima i u životopisima (lokacija posla, iskustvo, način i uvjeti rada) te tako omogućiti što bolji match-making poslodavaca i posloprimaca, kako u samostalnom traženju posla, odnosno radnika, tako i u automatski generiranim, ali personaliziranim tjednim newsletterima.
Također, developeri su bili zaduženi za izradu podsustava FlexHub, putem kojeg poslodavci – uz pomoć Hub Coacheva i distribucije prikladnih sadržaja – olakšavaju zaposlenicima onboarding te im pomažu u usavršavanju.
Specijalisti za domenu
Ivan Delaš, Ruby on Rails developer na FlexCareers projektu, kaže kako mu je tijekom rada na FlexCareersu svaka nova funkcionalnost, odnosno prvi susret s tehnologijom ili vrstom problema s kojom se prije nije susreo, pa čak i bug-hunting, predstavljao izazov, ali i zadovoljstvo.

Zahvaljujući dugoročnoj suradnji, Kodiusovi su developeri postali specijalisti za domenu te su i sami počeli predlagati niz inicijativa za poboljšanje iskustva korisnika.
Upitan da usporedi rad na kratkoročnim i dugoročnim projektima Ivan odgovara:
Kod kratkoročnih projekata, za aplikacije čija je struktura i čiji je sadržaj više-manje unaprijed određen specifičnim potrebama, tj. isključivo za određenu svrhu, pokazalo se najbitnijim što ranije se usuglasiti sa željama i marketinškom vizijom klijenta u pogledu UI/UX-a.
Na dizajnu je da zablista, pogotovo u prvoj fazi, dok se od development tima u pozadini, ovisno o vrsti stranice i tehničkim potrebama, putem već uigranih internih procesa i know-howa, očekuje da optimalno riješi pitanje funkcionalnosti aplikacije te da u dogovorenom vremenskom okviru kvalitetno poprati viziju klijenta, koja je dobila svoju opipljivu formu kroz razvoj dizajna.
Kada je klijent zadovoljan, konkretno – kad je suradnja na razini, uspostavilo se povjerenje, komunikacija ide tečno i u oba smjera, a klijentu je jasno da dijelimo zajednički interes da projekt bude uspješan, onda još i više uživam u ovom poslu.
Dežurstvo je obavezno, ali sastanci se ne forsiraju

Upravo su Kodius i FlexCareers tijekom dugoročne suradnje uspostavili obostrano povjerenje pa se, unatoč tome što su njihovi timovi nalaze na suprotnim krajevima svijeta, sastanci ne forsiraju i nema mikromenadžmenta.
Ipak, s obzirom na veliku razliku u vremenskim zonama (od +8 do +10 sati u odnosu na Hrvatsku), dogovorena je rotacija unutar tima kako bi barem jedan developer uvijek mogao biti dostupan i pravovremeno odgovoriti na sve potrebe timova iz Australije i Novog Zelanda.
Komunikacija se većinom odvija putem Jire i Slacka, a video i konferencijski pozivi rezervirani su mahom za dogovore o razvoju novih značajki ili o promjenama koji se tiču modernizacije izgleda te funkcioniranja platforme.
Optimiziranje kaosa opskrbnih lanaca
U međuvremenu, Kodius se nastavio ostvarivati na drugim projektima i u drugim domenama. Sa startupom Optilogic ozbiljno su ušli u nišu opskrbnih lanaca.
Optilogic razvija cloud aplikaciju Cosmic Frog koja pomaže poslovnim analitičarima i dizajnerima opskrbnih lanaca da što bolje optimiziraju troškove proizvodnje i prijevoza robe. Lokacija tvornica i kupaca, cijena prijevoza proizvoda, efikasnost proizvodnih pogona – samo su neki od tisuću parametara koje moraju uzeti u obzir.

Kroz jednostavno sučelje, Cosmic Frog omogućava korisnicima da brzo naprave model za opskrbni lanac, unesu sve relevantne podatke za poslovanje (korisnici, dobavljači, roba, procedure…) te na temelju toga testiraju model kroz različite scenarije: „Što ako potražnja poraste za 10%?”, „Što ako ugasimo tvornicu u Zagrebu?”, „Što ako otvorimo tri nove trgovine u Osijeku?” – samo su neki od primjera scenarija koje se lako mogu testirati u aplikaciji.
Svi mogući scenariji se istovremeno mogu paralelno vrtjeti u oblaku, a korisnik ne mora puno čekati na rezultate analize scenarija, zahvaljujući brzom optimizacijskom engineu, za koji je zadužen upravo Kodius.
Tin Ilijaš, operativni direktor Kodiusa te lead developer optimizacijskog tima, objasnio nam je kako je krajnji cilj optimizacijskog enginea da korisnik aplikacije nađe „sweet spot” proizvodnje, s obzirom na troškove, a da istovremeno kupci budu zadovoljni, tj. da robe ne bude ni previše, ni premalo.

Uz optimizacijski engine, Kodius je odgovoran i za simulacijski dio aplikacije. Simulacijski engine nastoji pružiti vjernu simulaciju stvarnog svijeta te korisniku dati odgovore na pitanja što bi se moglo dogoditi ako se jedan ili više ključnih parametara promijeni kroz različite scenarije te predložiti najbolju moguću odluku na temelju analize rezultata.
Na primjeru gore navedenih scenarija, simulacijski engine će dati prijedlog poput: „Zatvori proizvodnju u Zagrebu, osim ako potražnja ne poraste za 10%, a tri nove trgovine otvori u Sisku, ne Osijeku”.
Uz optimizacijski i simulacijski engine, Cosmic Frog poseban je i po svom engineu za procjenu rizika. U faktore rizika računa parametre poput političke ili ekonomske nestabilnosti zemlje u kojoj korisnik misli dići proizvodnju.
Bliska suradnja s osnivačima i internim timovima
Kodius je optimizacijski engine počeo raditi od nule, no pritom su tijesno surađivali s internim timovima i ključnim ljudima iz Optilogica. Osnivači Optilogica osigurali su tim za razvoj optimizacijskog algoritma i glavnog dizajnera. Imali su vrlo jasnu viziju kako bi aplikacija trebala izgledati i na koji način bi se trebala koristiti. I od početka su tražili partnera za dugoročnu suradnju.
Prije nego su Kodiusovi developeri započeli s radom, Optilogic ih je testirao nekoliko mjeseci, postavljajući im različite zadatke, kako bi bili sigurni da mogu dugoročno računati na njih. Nakon što su se dokazali, osnivači Optilogica došli su u Zagreb na tjedan dana, samo kako bi im što bolje objasnili proizvod.
Optimizacijski tim iz Kodiusa bio je zadužen za implementaciju vizuala te dijela backenda. U drugom dijelu developerskog tima, Darko Dujmić, backend developer, radio je na uspostavi mikroservisa za optimizacijski dio. Tech stack kojim se koristi za Optilogicov softver obuhvaća React, TypeScript, .NET i Python.

Tin naglašava kako je dobro poznavanje domene, specifičnih zakonitosti ove industrije i potreba njenih korisnika, bilo presudno za razvoj kvalitetne aplikacije. On stoga provodi nekoliko sati dnevno u komunikaciji s Product Ownerima iz Velike Britanije kako bi ostali usklađeni. Isto tako, Kodiusovi developeri prolaze kroz brojne radionice da ostanu u tijeku s novostima iz industrije opskrbnih lanaca.
Uspoređujući rad na kratkoročnim i dugoročnim projektima, Tin smatra da su kratkoročni odlični ako se sve odlično procijeni, no kriva procjena zna biti zeznuta. S druge strane, za Darka je dugoročni projekt maraton, ali mu je i draži jer se kroz rad na njima vidi puni sjaj kohezije tima.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.