Dolaskom sve više rješenja za automatizaciju rada i pomoć pri razvoju aplikacija, postavlja se i pitanje – hoće li developeri biti prisiljeni sve manje kodirati, a više se baviti nekim drugim (ne toliko im dragim) zadacima. Kako bismo razriješili neke dvojbe oko toga, porazgovarali smo sa Sašom Ivičevićem, voditeljem razvoja RAD alata FIYU u Serengetiju…
Počnimo s vašim iskustvom u Serengetiju. Možete li nam reći kako ste završili tamo i što vas je motiviralo da se prijavite za posao koji se razlikuje od vaše prethodne karijere?
U Serengeti sam došao u travnju 2018. godine kada je ideja bila da budem Tech Lead za jednu specifičnu tehnologiju, odnosno platformu u kojoj sam imao bogato iskustvo. Zadatak je bio da oformim tim koji će samostalno izvoditi projekte vezane za tu platformu. Međutim, kako je firma rasla, s vremenom su se prioriteti izmijenili te sam radio na inozemnim i domaćim projektima za klijente u različitim industrijama. Započeo sam kao Senior developer, a kasnije sam napredovao na poziciju Team Lead. Nedugo nakon toga sam unaprijeđen na poziciju Site Lead za development centar u Varaždinu. Moja karijera u Serengetiju se nastavlja razvijati te sam u rujnu 2021. godine promoviran na poziciju Direktora internog razvoja. U to vrijeme je Serengeti plasirao i svoj prvi produkt te sam dobio čast voditi razvoj i proboj na tržište naše platforme odnosno produkta za brzi razvoj aplikacija, FIYU.
Budući da imate više od 20 godina iskustva u developmentu, možete li s nama podijeliti neke izazove koje ste iskusili u ranim danima, kada niste imali pristup RAD alatima ili online repozitorijima kôda?
Ne mogu se složiti s konstatacijom da prije 20 godina, odnosno u početcima moje karijere, nisu postojali RAD alati i online repozitoriji koda. Ideje vezane uz ubrzani razvoj aplikacija sežu još od početka 80-tih godina prošlog stoljeća kao metodologija, a zatim su na tržište počeli izlaziti i prvi RAD alati.
Dakle, priča postoji već dugo, međutim meni ti alati nisu bili toliko interesantni zato što sam tada, kao mladi developer, želio naučiti kodirati i raditi na projektima koji imaju za cilj rješenje potpuno prilagođeno korisnicima i koje je skalabilno. Takva rješenja se najčešće kodiraju, odnosno razviju, bez pomoći RAD alata. Kao i većina mladih developera, u tom periodu low-code i no-code alati mi nisu bili u fokusu. Što se repozitorija koda tiče, oni su također bili dosta zastupljeni kao alati za dijeljenje koda i kolaboraciju u timovima. Bilo je više takvih alata, a koliko se sjećam najzastupljeniji je bio SVN. U to vrijeme je Git bio u povojima, a danas je Git sa svojim inačicama najzastupljeniji i teško je danas zamisliti neki projekt razvoja software-a bez Git-a.
Međutim, gledajući iz današnje perspektive zaključujem da bi u to vrijeme korištenje full code platforme, kao što je FIYU, uvelike ubrzalo razvoj i olakšalo cijeli proces razvoja. Osim toga, i dalje bi imali potpunu kontrolu nad razvojnim procesom što bi nam pomoglo u rješavanju specifičnih problema korisnika. Ono što je također super, je da danas za većinu alata postoje free trial verzije, pa tako i za FIYU.
FIYU je opisan kao “full-code platforma”. Što točno to znači i kako korisnici mogu imati koristi od takvog pristupa razvoju softvera, nasuprot “low-code” alata?
Točno, samo iz izraza „full-code“ može se zaključiti da se radi o softverskom alatu koji omogućuje da se izvorni kod brzo pretoči u funkcionalnu aplikaciju. FIYU je koncipiran kao platforma koja razvojnom timu pruža sve što je potrebno vezano za infrastrukturu. Drugim riječima, to znači da developeri ne moraju razmišljati o tome kako postaviti kompletnu infrastrukturu, od repozitorija, preko CI/CD procedura i serverskih resursa, jer je to već postavljeno. Tu FIYU ima veliku prednost nad ostalim projektima koji se rade „od nule“ i zahtijevaju postavljanje kompletne infrastrukture od početka. Na taj način, grubo rečeno, projekt može uštedjeti od nekoliko tjedana do nekoliko mjeseci vremena i to na samom početku razvoja.
U kontekstu full-code platforme, za FIYU korisnike to znači da do krajnjeg softverskog rješenja razvojni timovi dolaze na način na koji su naviknuli i koji im najbolje odgovara, a to je kodiranjem. Isto tako to znači da je FIYU namijenjen developerima odnosno da je potrebno znati kodirati. Kroz full-code paradigmu, developeri tako imaju apsolutnu i potpunu kontrolu nad svim aspektima razvoja što za posljedicu ima prilagodljivo rješenje prema potrebama klijenta. Riječ je o skalabilnom rješenju koje zadovoljava i najkompleksnije projekte. Naposljetku imate optimizirano i „clean code“ rješenje koje počiva na najboljim praksama i metodologijama razvoja.
To je bila i tema Vašeg predavanja na .debugu ove godine, zar ne?
Tako je. Kolega Nenad Pečanac, Lead backend developer na FIYU, i ja imali smo čast prezentirati FIYU i njegove benefite zainteresiranoj publici. Sudeći prema pitanjima i razgovorima nakon prezentacije, imam dojam da smo dosta zainteresirali posjetitelje tako da spomenuto izlaganje smatram uspješnim.
Kako FIYU ubrzava proces razvoja softvera, i koliko značajno se može ubrzati razvoj projekata korištenjem ove platforme?
Dvije glavne karakteristike FIYU platforme, a to su već pripremljena infrastruktura te ugrađeni moduli koji pokrivaju sve bitne i zajedničke funkcionalnosti koje ima svaka poslovna aplikacija, značajno ubrzavaju razvoj na samom početku projekta. To znači da se postižu značajne uštede i vremena i budžeta. Koliko točno će se razvoj nekog određenog softvera ubrzati, odnosno skratiti, to ovisi o dosta varijabli. Primjerice, koja je razina kompleksnosti problema koji se rješava, koja je razina stručnosti developera, koliki je tim i od kojih profila stručnosti se sastoji. Zatim, je li tim uigran ili ne. Varijabli ima mnoštvo, a od projekata na kojima smo radili ističe se projekt u kojem smo klijentu razvoj ubrzali za 80%. Odnosno, u samo nekoliko mjeseci smo isporučili funkcionalnu poslovnu aplikaciju koja bi se tradicionalnim metodama razvijala oko godinu dana. Upravo ugrađeni moduli FIYU-a, a koji pokrivaju bitne zajedničke funkcionalnosti svake poslovne aplikacije, kao što je na primjer upravljanje korisnicima, njihovo organiziranje u definirane cjeline ili organizacije prema željama korisnika i upravljanje cijelom platformom kao takvom, omogućuju da se developeri već na početku projekta bave razvojem onog dijela softverskog rješenja koje rješava specifičan poslovni slučaj, odnosno poslovni problem.
Drugim riječima, najveća ušteda je zapravo posljedica činjenice da se razvojni tim već na samom početku može fokusirati na rješavanje samog poslovnog problema, dok su sve ostale stvari koje čine softverski produkt već riješene.
Možete li nam dati primjere idealnih business ili developerskih „use caseova“ za korištenje te platforme?
Kada razgovaramo o idealnim „use casevima“, u smislu da se postižu vrlo značajne uštede, FIYU je jako dobar za projekte modernizacije legacy sustava, zatim za razvoj MVP-a te za projekte s fiksnim opsegom tj. projekte pod uvriježenim nazivom „fix price“ projekti.
Kod projekata u kojima se radi o modernizaciji legacy sustava, ne samo da se ubrzava razvoj i štede resursi, nego je FIYU odličan alat za razvoj specifičnih i kompleksnih rješenja. Kako se radi o modernim open source i široko raširenim tehnologijama kao što su Spring Boot i Angular, gledano s tehnološke strane, FIYU osigurava i trajnost produkta. To znači da klijent ne mora brinuti hoće li platforma zastarjeti ili da uskoro neće biti podrške za te tehnologije.
Kada se radi na razvoju MVP-a, a koje najčešće razvijaju startup-i, iskustvo nam je pokazalo da je tada naglasak na razvoju osnovnih funkcionalnosti koje rješavaju određeni problem, popularno „customer pain point“, a koje kao takve trebaju zainteresirati investitore. Praksa je pokazala da kada se investitori zainteresiraju, startupi često moraju raditi produkt iz početka kako bi zadovoljili sve preduvjete. S FIYU to nije potrebno, zato što FIYU osigurava sve preduvjete za razvoj zrelog produkta koji može zadovoljiti sve prohtjeve dinamičnog i zahtjevnog tržišta.
Također, jednako važan primjer gdje se mogu iskoristiti FIYU benefiti su projekti koji se razvijaju od nule tj. od početka, i imaju fiksan opseg odnosno fiksno definiranu cijenu. Takvi projekti često znaju predstavljati velik rizik za izvođača, odnosno razvojni tim. Kada se kod takvih projekata upotrijebi FIYU, može se ostvariti značajna ušteda s kojim izvođač, odnosno razvojni tim, ne samo da smanjuje rizik krive procjene projekta nego može povećati i konkurentnost nad drugim ponuđačima u procesu natjecanja za dobivanje projekta.
Hoće li, dakle, developeri uz FIYU “prestati kodirati” i samo se baviti “klikanjem” po tom softveru?
Nikako, ne. To nam nikada nije niti bila namjera. Serengeti je developerska tvrtka i logično je da razvijamo full-code produkte koju omogućuju još napredniju primjenu znanja developera. Uštede vremena se postižu, prvenstveno, kroz predefinirane module i kroz pripremljenu platformu odnosno infrastrukturu.
Kod „no code“ i „low code“ alata developeri zapravo nemaju, ili imaju vrlo ograničene, mogućnosti pristupa i uređivanja koda. To za posljedicu ima značajno smanjenu kontrolu nad razvojem produkta i prilagodbom nekih dijelova. Upravo to smo riješili korištenjem full code pristupa, tako da developeri sami mogu kontrolirati sve aspekte razvojnog procesa.
Kako FIYU doprinosi smanjenju troškova razvoja softvera i povećava konkurentske prednosti tvrtki koje ga koriste? Možete li navesti neke konkretne primjere?
Ranije sam opisao nekoliko idealnih poslovnih slučajeva u kojima FIYU može značajno ubrzati razvoj, ali generalno je riječ o tome da u samo nekoliko mjeseci možete razviti funkcionalnu aplikaciju nad čijim kodom imate potpunu kontrolu. To je moguće upravo zahvaljujući načinu na koji je riješena sama infrastruktura, koja je, kao i inicijalni moduli, neophodna kod svakog softvera. Dodatno, nema vendor lock-ina. Tvrtke same biraju hoće li softver razvijati njihovi developeri ili partnerska firma. Tu je i dokumentacija koja značajno ubrzava i olakšava onboarding proces. U kontekstu rada s FIYU, i sloboda izbora tehnologija je jednako važna. Na primjer, ukoliko trebate promijeniti tehnologiju, uz FIYU se relativno brzo i lako možete preorijentirati na drugu tehnologiju, naravno dokle god je riječ o rest based tehnologijama. Zaključio bih kako postoje razne opcije koje u konačnici omogućuju da se razvoj ubrza za i do 80%.
Kao netko s bogatim iskustvom u developmentu, što biste savjetovali mladim developerima koji ulaze u industriju danas? Kako se pripremiti za izazove budućnosti?
Ovo mi je teško pitanje zato što je IT industrija oduvijek bila nepredvidiva i dinamična. Rekao bih da je to danas puno izraženije i to je nešto na što uvijek možemo računati. Međutim, ista ta nepredvidivost u našoj struci nudi i mnoštvo prilika koje treba znati prepoznati. Zato je bitno držati korak s tehnološkim napretkom, biti otvorenog uma i u svemu pokušati prepoznati svoju priliku. Teško je ovdje ne spomenuti i AI kao trend čije se mogućnosti tek naslućuju i mislim da će budućnost developmenta dosta ovisiti i o načinu na koji će se AI kao takav razvijati. Osobno, tu vidim mogućnost za FIYU i da u tom smjeru nastojimo usmjeriti fokus kad je u pitanju razvoj i budućnost same platforme.