Dr Miloš Ojdanić, trenutno zaposlen kao Staff Data Scientist i istraživač u Goodyear Innovation Center-u u Luksemburgu, bio je gost Univerziteta Crne Gore, u okviru Dana naučne dijaspore 2024, organizovanih kao dio Festivala umjetnosti, nauke i kulture (FUNK). Događaj je organizovao Institut za multidisciplinarne i interdisciplinarne studije Univerziteta Crne Gore, a tom prilikom je dr Ojdanić podijelio svoja iskustva i razmišljanja o savremenim izazovima u oblasti softverskog inženjeringa, kao i o svojoj vezi s crnogorskom naučnom zajednicom.
Tim povodom, portal Univerziteta je organizovao intervju koji prenosimo integralno.
Svoje prve korake u sferi nauke započeo je u Podgorici, da bi nastavio u inostranstvu, a doktorsku disertaciju završio na Univerzitetu u Luksemburgu, u saradnji s kompanijom PayPal, gdje je radio na unapređenju DevOps praksi. Kao postdoktorand na Interdisciplinarnom centru za bezbjednost, pouzdanost i povjerenje, bavio se istraživanjem softverskog koda kroz grafičke neuronske mreže i mutacijsko testiranje. Njegova istraživanja su prepoznata na međunarodnim konferencijama i u prestižnim časopisima kao što su TSE, TOSEM, EMSE i ICSE.
UCG: Radite kao Data Scientist u Goodyear Innovation Center-u u Luksemburgu. Kako je tekao vaš profesionalni put do ovog centra? Kako vaša istraživanja utiču na svakodnevni rad u industriji i na razvoj inteligentnih sistema unutar jedne tako velike kompanije?
Dr Ojdanić: Profesionalni put je tekao, i dalje teče, sa oscilacijama u interesovanju. Pejzaž otvorenih problema u softverskoj oblasti raznovrsniji je nego ikada. Počeo sam sa Cetinja, a tokom studiranja u Podgorici radio sam u jednoj kompaniji, gdje sam se u prelijepom okruženju susreo sa ozbiljnošću, kompleksnošću i poslovnom stranom razvoja softvera. Nakon nekog vremena naginjao sam više ka nauci i odlučio da nastavim master studije u Švedskoj uz vrlo atraktivne stipendije Evropske unije, koje bih preporučio mlađim generacijama da istraže. Nakon toga, ugledajući se na prijatelje sa univerziteta, razvio sam želju za daljim obrazovanjem kroz Industrijske doktorske studije. Pronašla me je jedna kompanija iz Luksemburga koja je tek započela saradnju sa Univerzitetom u Luksemburgu. U narednih pet godina ukazala se prilika da sa znatiželjom istražujem globalne probleme u oblasti softverskog inženjerstva.
Nakon tog putovanja, ponovo sam se okrenuo malo drugačijoj industriji, u želji da se nosim sa različitim problemima. I da, trenutno sam Data Scientist. Lijepa strana istraživanja je da, kada jednom razvijete znatiželju i razmišljanje kroz naučnu metodologiju, vrlo je lako prenijeti to razmišljanje na drugačije probleme. Na čemu trenutno radim, nemam dozvolu da govorim, nadam se da ćete razumjeti.
UCG: Vaš istraživački put uključuje saradnju sa vodećim svjetskim kompanijama poput PayPal-a. Kako izgleda rad u takvoj kompaniji? Kako su ta iskustva doprinijela Vašem daljem radu na inovacijama u softverskom testiranju?
Dr Ojdanić: Upravo je PayPal ta kompanija koja je finansirala moje doktorske studije, tj. moj istraživački rad. Oni su bili istraživački partner i jedni su od najzaslužnijih zašto smo krenuli u istraživanje testiranja izmjena koda mutacijama. Oni su vrlo odgovorna kompanija koja ulaže mnogo resursa u poboljšanje svojih usluga i uvijek je u potrazi za novim inovativnim rješenjima. Zbog takvog načina razmišljanja o istraživanju i razvoju, orijentisanog ka ulaganju u budućnost, nemoguće je ne primijetiti njihov kvalitet. I u kodu i u tehnologijama s kojima rade, kod njih nema mnogo prostora za greške i vrlo su oprezni sa svakom odlukom koju donesu.
UCG: Vaše istraživanje fokusira se na kontinualno softversko testiranje i inovacije u ovoj oblasti. Šta Vas je motivisalo da se posvetite proučavanju softverskog testiranja, i zašto je ono važno za industriju i korisnike softvera?
Dr Ojdanić: Hvala na pitanju. U suštini, moja motivacija za proučavanje softverskog testiranja nastala je iz same znatiželje da razumijem više. Vjerujem da svi to imamo u sebi. Još od malih nogu javlja se želja da ne prihvatamo određene stvari kakve jesu, već da ih otvorimo, rastavimo, zavirimo unutra i postavljamo mnogo pitanja: „Zašto je to tako?“ Negdje tokom odrastanja ta pitanja ispadaju s puta. A idealno bi bilo da smo svi u nekoj mjeri testeri.
Softversko testiranje je važno kako korisnici softvera ne bi trpjeli posljedice neispravnih softverskih funkcionalnosti. Posljedice mogu biti raznovrsne, jer je sama upotreba softvera raznovrsna. Nije tako rijetko da jedna sekunda prije ili kasnije, ili jedna tačna ili netačna logička instrukcija, može voditi do ozbiljnih posljedica – na primjer, teških ekonomskih, a još gore, nanošenja povreda. Često s vremenom razvijemo komfor i zaboravimo da su greške moguće.
UCG: Možete li nam, jednostavnim riječima, objasniti šta je to „change-aware mutation testing“ i kako ova tehnika poboljšava otkrivanje grešaka u softveru?
Dr Ojdanić: Mogu pokušati. Ajmo početi od pretpostavke da je sljedeće potpuno jasno. Prvo, softverske greške su česta pojava i softver se kontinuirano unapređuje novim funkcionalnostima. Drugo, usljed kompleksnosti i obima softvera, moguće greške često izlaze iz okvira naših intelektualnih sposobnosti i mogućnosti da racionalizujemo dug niz operacija.
Sada, kako bismo se uvjerili da često unapređivanje, tj. izmjene u kodu, neće proizvesti određena neželjena ponašanja (posljedice), potrebno je sprovesti testiranje. Za taj proces postoje razne tehnike. Jedna koju sam pronašao vrlo interesantnom jeste testiranje kreiranjem mutacija u kodu (shvatite kao „vještačke greške“). To se radi s ciljem da, ukoliko postoji „prava greška“ u kodu, postoji i „vještačka greška“ koja će služiti kao osnova/putokaz za kreiranje testova koji će voditi do „prave greške“ – koja se često javlja usljed izmjena koda.
UCG: Vaš rad pokazuje da je ova tehnika 30% efikasnija u otkrivanju softverskih grešaka u odnosu na druge metode. Koje bi bile konkretne koristi od ovakvog pristupa za velike softverske kompanije i njihove proizvode?
Dr Ojdanić: Pa, ukoliko je jasna korist testiranja, onda je prilično jasna i korist od ~30% efikasnije tehnike u otkrivanju softverskih grešaka. Jedna stvar je zajednička za sve industrije, ne samo za velike softverske kompanije. Greške koštaju. Posebno greške koje se javljaju u proizvodima koji su dostupni korisnicima. Ukoliko niste čuli, potražite malo o CrowdStrike softverskoj grešci koja se dogodila ranije ove godine i posljedicama koje je imala za samo jedan dan (spoiler alert, procjenjuje se da je koštala preko 5 milijardi dolara).
I greške u proizvodima koji nisu dospjeli do krajnjeg korisnika isto tako koštaju. Potrebno je dati vrijeme grupi inženjera da pronađu uzrok greške. I to, naravno, košta. Kako zbog cijene vremena inženjera, tako i zbog odlaganja da proizvod izađe na tržište. Trenutno govorim samo o finansijskim implikacijama. Mislim da je nepotrebno govoriti o koristi kako ne bi došlo do posljedica po život i zdravlje.
UCG: U svom istraživanju koristite mašinsko učenje za optimizaciju testiranja softvera. Kako mašinsko učenje pomaže u procesu testiranja i koje su njegove najveće prednosti u poređenju sa tradicionalnim metodama?
Dr Ojdanić: Možda sam malo dosadan, ali i u ovom slučaju bitan faktor je vrijeme. U slučaju mog istraživanja, mašinsko učenje na osnovu duge istorije podataka softverskog koda može nam „preporučiti” koje mutacije u kodu su prioritetne i koje mogu voditi do testova od veće „važnosti“. Mašinsko učenje je, u suštini, tehnika optimizacije koja nam smanjuje skup potrage za kandidatima od interesa, za koje bi nam u suprotnom bilo neophodno uložiti značajan napor i vrijeme.
UCG: U okviru svog rada bavili ste se i primjenom grafičkih neuronskih mreža u poboljšanju vještačkih grešaka u softveru. Možete li nam reći nešto više o tome i kako ovo može unaprijediti kvalitet softverskih proizvoda?
Dr Ojdanić: Grafovske neuronske mreže su samo jedna od mnogih klasa neuronskih mreža. U suštini, ono što ove mreže odvaja od ostalih jeste to što imaju vrlo dobre performanse na kompleksnim nestrukturiranim strukturama podataka. Najpoznatija nestrukturirana struktura podataka, vjerujem, jesu sami grafovi. Mnogi će rado diskutovati da veliku većinu (ako ne sve) odnosa u prirodi možemo na neki način predstaviti grafovima. Tako se i jedan softverski kod najbolje predstavlja upravo grafovima. U zavisnosti od vrste grafova o kojima govorimo, čvorovi mogu biti instrukcije, dok veze između čvorova predstavljaju logički tok izvršavanja instrukcija. Ta struktura je vrlo prirodna za softverske inženjere.
Odgovor na pitanje kako možemo unaprijediti kvalitet softverskih proizvoda jeste da upravo možemo analizirati te strukture i, uz pomoć matematičkih modela, tj. grafovskih neuronskih mreža, doći do lokacija problema (nelogičnosti) ili optimalnih lokacija vještačkih grešaka pogodnih za testiranje. Međutim, važno je još shvatiti da nam ove mreže omogućavaju još mnogo toga. Možemo automatizovati popravku softvera, poboljšanje i održavanje, automatsko kompletiranje koda i mnoge druge operacije koje inženjeri koriste svakodnevno.
UCG: „Dani naučne dijaspore“ na Univerzitetu Crne Gore, u okviru Festivala umjetnosti, nauke i kulture, okupljaju naučnike iz raznih oblasti. Kakvo je vaše iskustvo i kakva je vaša spona sa Crnom Gorom? Kako ocjenjujete značaj ovog događaja za povezivanje istraživača iz regiona i kako se vaša istraživanja uklapaju u ovu širu naučnu zajednicu? Da li sarađujete sa naučnicima UCG?
Dr Ojdanić: Odakle da počnem. Prvo, povezivanje istraživača, inženjera, lokalne industrije i akademije i te kako je važno za sve zemlje u svijetu, ne samo za Crnu Goru. Na ovaj način razvijaju se nove ideje, formiraju saradnje, postavljaju vizije i planira intelektualna i kreativna budućnost jedne države. Tokom ovogodišnjeg simpozijuma „Dani naučne dijaspore“ imali smo priliku da čujemo profesore sa najvećih svjetskih institucija, ostvarene istraživače iz nekih od najvećih svjetskih kompanija. Govorili su o fascinantnim temama i impresivnim radovima iz medicine i genetike, biologije i mikrobiologije, hemije, fizike, vještačke inteligencije i raznih drugih oblasti. Lično sam mnogo toga novog naučio. Iznenađen sam, i žao mi je, što je bilo prisutno vrlo malo studenata koji su trebali da „ukradu“ to znanje koje se nesebično dijelilo.
Uzimajući u obzir da je ovo jedna od prvih verzija, događaj je bio vrlo uspješan. Potrebno je vrijeme kako bi se uklopile discipline, ostvarile veze i stvorile saradnje.
Vrlo je važno reći da naša zemlja, zajedno sa zemljama iz regiona, ima mnogo izuzetnih naučnika koje je zadovoljstvo slušati, koji su mentori i koji trebaju služiti kao uzori, kako zbog svog intelekta, tako i zbog svoje skromnosti! To su ljudi na koje treba usmjeriti pažnju!
Do ovog događaja nisam imao komunikaciju sa naučnicima sa UCG. Moja veza sa Crnom Gorom je isključivo vezana za porodicu i prijatelje.
UCG: Šta biste savjetovali studentima i mladim istraživačima koji žele da se bave softverskim inženjeringom i vještačkom inteligencijom? Koje vještine i znanja su, po Vašem mišljenju, najvažniji za uspjeh u ovim oblastima?
Dr Ojdanić: Nisam siguran da mogu sebi dati za pravo da nekog savjetujem. Uspjeh treba da bude lično osjećanje, a ne mišljenje zajednice. Svi smo mi različiti, a pogotovo studenti u svojim željama, razmišljanjima i shvatanju svijeta. Želio bih samo da ukažem na nešto, prvo generalno studentima u Crnoj Gori, a zatim i onima koji dijele istu strast kao ja za oblast softverskog inženjerstva i vještačke inteligencije.
U suštini, ukoliko se uklone svi ograničavajući faktori na putu ka nečijim snovima, sve što preostaje jeste jednostavna formula – koliko je neko spreman da uloži vremena da ostvari ono što želi. Studenti moraju biti iskreni sa sobom, hrabri, i spremni da prihvate ponekad nažalost nepovoljan položaj i nezavidne resurse s kojima rade u poređenju sa kolegama. Međutim, studenti moraju znati da znatiželja, sanjarenje, vizija, disciplina i posvećenost cilju nemaju cijenu. To je besplatno i lično. A taj skup vještina, i isključivo samo taj skup, može ih dovesti do svega što žele da ostvare, koliko god njihove želje izgledale daleko.
Studentima želim da imaju uzore u oblastima u kojima zamišljaju sebe. Želim im da ciljaju visoko. Želim im da kontaktiraju osobe za koje misle da im mogu dati dobar savjet. Danas smo toliko dobro umreženi da je sve što je potrebno usuditi se postaviti pitanje.
Studentima koji žele da se bave softverskim inženjeringom i vještačkom inteligencijom želim da ukažem na važnost praktičnog rada i čitanja. Srećni smo što imamo tu mogućnost da praksu stičemo na Open Source softveru. Biti istaknuti i pouzdani saradnik (contributor) je jednosmjerna karta u najveće svjetske kompanije i institucije. Internet i mediji često su mjesta prepuna buke stvorene od ljudi ubjeđenih da postoji pozitivna korelacija između „biti glasan“ i „biti pametan“. Od toga bih želio da se studenti distanciraju i da pronađu materijal i predivne knjige koje će ih zainteresovati i pomoći im da sortiraju misli.