U suradnji s Omega Softwareom objavljujemo intervju s njihovim voditeljem razvoja za ePoslovanje Omega softwarea Igorom Gorečanom.
Kako si se odlučio za Omegu?
Kada firma uspješno posluje već preko 20 godina, na dinamičnom tržištu kakvo je IT, onda znate da to nije samo eksperiment nego da postoji dokazana kvaliteta, vrijednost i stabilnost. Ponosno mogu reći da nudimo specijalizirane stručnjake, primijenjeno pravo hrvatsko znanje u domeni digitalne transformacije, smart city i custom rješenja. Naši proizvodi Centrix2 i Pismohrana za uredsko poslovanje, kao i ERP rješenje BGA (proračunsko računovodstvo), koriste se u institucijama od državne razine do lokalne samouprave. Skoro pa je sigurno da je svatko od nas zaprimio neki dokument koji je bio obrađen putem Omeginih rješenja. Uz to – budućnost je već tu – naš IoT Complete koristi se za pametno upravljanje uređajima i donosi značajne uštede, primjereno 21. stoljeću, a posebno trenutnim geopolitičkim okolnostima koje zahtijevaju racionalno upravljanje energentima.
Kako se ti uklapaš u tu ambicioznu priču?
Pojednostavljeno, ja sam menadžer i developer – vodim razvoj. Nije tu titula bitna. To je kao kormilarenje između želja korisnika te mogućnosti budžeta i rokova. Pri tome uvijek postoji zov „privlačnih, a neiskušanih tehnologija“ – to je istovremeno prilika i opasnost za enterprise aplikacije koje moraju živjeti godinama kao core sustavi. Kod ozbiljnih poslovnih aplikacija, stabilnost procesa i integritet podataka utječu na sve nas i kao građane i kao zaposlenike. Programiram, debugiram, educiram, pišem i revidiram dokumente i procese. Iako sam u svim segmentima software development lifecycle-a od osmišljavanja arhitekture pa skroz do go-live i podrške sustava u produkciji, od strateškog do vrlo operativnog, uz mene je cijela vojska sjajnih ljudi spremnih nadjačati svaku prepreku. Prije svega želim da moji ljudi imaju tehnički oslonac u meni kao developeru, da znaju da sam tu za i uz njih.
Kako ste izgradili tu, kako kažeš, vojsku?
Omegina agilna transformacija traje nešto manje od dvije godine te je dio mojeg posla upravo osnaživanje naših developera. Činit će se očitim, no važan dio transformacije je postavljanje „fiksnih timova“ – timova koji se ne rekombiniraju od projekta do novog projekta, nego dugotrajno profesionalno rastu zajedno i rade na vlastitim klijentima i rješenjima. Timovi moraju biti dobar miks starijih, iskusnih te mladih, žednih novih znanja i dokazivanja. Moraju imati priliku odlučivati o svojem načinu rada, riskirati, ponekad i pogriješiti, ali prije svega naučiti. To je dio rasta za pojedince osobno, a onda i za firmu.
Sjajni ljudi, no ima li zanata bez alata?
Mi kombiniramo Microsoft i web development - uglavnom open source. Od .NET-a, Angulara do naših vlastitih rješenja kao što su Rhetos i ngx-Floyd. Rhetos je Domain Specific Language platforma specijalizirana za izradu enterprise poslovnih aplikacija koja ubrzava razvoj standardnih funkcionalnosti. Omogućava da definiramo i proširujemo programske koncepte, a potom ih koristimo kroz deklarativno orijentiranu DSL sintaksu kojom možemo generirati kompletni backend aplikacije: shemu i objekte na bazi, C# poslovni i podatkovni sloj, web API za pristup. Sve uz poslovna pravila kao što su validacije entiteta, vremensku logiku, autorizacijski model uz row-level security itd. Rhetos je integriran u Visual Studio, a redovito ga koristimo uz Azure Devops pipeline za verzioniranje tj. upgrade baze od lokalnih do produkcijskih okolina.
Spomenuo si Floyd – gledate li svijet kroz "pink" perspektivu?
Nastojimo spojiti optimizam i pragmatičnost. Tvrtke se bore za developerski kadar. Mi želimo omogućiti rapid application development ne samo seniorima nego i juniorima. Stoga nam alati kao ngx-Floyd i Rhetos koriste upravo u tome da već juniori lagano i efikasno mogu sudjelovati u izgradnji kompleksnih sustava kakve poslovne aplikacije redovito jesu.
Bitno je da su ngx-Floyd i Rhetos library-i, ne framework. To znači da ne zamjenjujemo znanje koje developeri već imaju, nego ga dopunjujemo: korištenje library-a je moguće uz osnovne frameworke kao Angular i .NET, a naravno moguće je paralelno korištenje drugih UI i backend librarya. Također, bitno je istaknuti da se library može zaobići kad je to potrebno. Nismo pokušavali napraviti univerzalni alat, da napravim analogiju s poznatom pričom o čekiću i „general-purpose tool-building factory factory factory“.
Dobro ako nije factory factory, što jest?
Glavna nam je jednostavnost korištenja. Klasični problem je: imam aplikaciju - nebitno je li klasična višeslojna, moderno prozvana "monolit" ili mikroservisi, mikrofrontendi - želim novi podatak uz validaciju. Kako si ubrzati rad, da ne moram to implementirati na pet različitih mjesta, u pet različitih tehnologija, s pet timova?
ngx-Floyd omogućava kreiranje i konfiguriranje formi korištenjem typescripta i fluent-like programskom konfiguracijom, umjesto standardnog angular pisanja HTML templatea. Možemo na jednom mjestu konfigurirati feature forme, doslovce enableati kodom cijele dijelove forme umjesto da održavamo i HTML i typescript kod. Naravno, ngx-Floyd se naslanja na API sučelja generirana u Rhetosu pa odmah imamo generirane klase u typescriptu.
Što slijedi?
Imamo predavanje o ngx-Floydu na debugu. Nama predavačima je to prilika da čujemo mišljenja i iskustva iz publike. Želimo pokazati zašto smo ga razvili i kako ga koristimo, želimo pokazati da on služi da rastereti developera, da mu oslobodi vrijeme koje može utrošiti na doista kreativno rješavanje konkretnih poslovnih problema. Zanima nas i želimo motivirati publiku da nam se pridruže u razvoju, da podijele s nama svoju, bolju ideju kako rješavati ovakve probleme.