Finansije

Od starog sistema do modularne platforme.

Radili smo na modernizaciji platforme koja podržava hipotekarne poslove i transakcije nekretninama, a koriste je zajmodavci i advokatske kancelarije. Zadržavajući rad postojećeg sistema, aplikaciju smo preoblikovali korak po korak i proširili je modulima koji su kasnije mogli da se koriste i u drugim proizvodima.

Programeri koji danas rade u timu operandor na ovom projektu su sarađivali još pre osnivanja firme. Na tom zajedničkom iskustvu gradimo i današnje zadatke.
Naš doprinos
Tehničko projektovanje, razvoj i uvođenje testiranja u razvojni proces
Period
2025–2026
Tadašnji projektni tim
Tokom projekta narastao je sa 3 na 7–8 osoba
Arhitektura
Modularni monoliti, Clean Architecture
.NETASP.NET CoreSQL ServerAzure FunctionsAzure OpenAIAzure Data FactoryMCP

Dalji razvoj starog sistema bivao je sve teži.

Aplikacija je radila na .NET Frameworku, njeni delovi su se povezivali preko WCF-a, a veliki deo poslovne logike nalazio se u uskladištenim procedurama baze podataka. Zbog toga je bilo teško pratiti koje delove sistema neka izmena zahvata, a dalji razvoj je zahtevao mnogo usaglašavanja i opreza.

Bilo je potrebno rešenje uz koje svakodnevni rad može da se nastavi, dok sistem postepeno postaje lakši za održavanje i proširivanje.

Arhitekturu smo menjali korak po korak.

Isplanirali smo pravac modernizacije, a važne tehničke odluke smo dokumentovali i usaglasili sa klijentom. Novi moduli su postepeno preuzimali zadatke starog koda, pa tokom preoblikovanja nije bilo potrebno odjednom zameniti celu aplikaciju.

Izgradili smo više modularnih monolita sa kodom organizovanim po principima Clean Architecture i sa jasno razdvojenim odgovornostima. Komunikaciju između modula organizovali smo preko medijatora, kako bi njihov rad bio pregledniji, a dalji razvoj lakši za vođenje.

Testiranje smo učinili delom razvojnog procesa.

U razvojni proces uveli smo okvir za testiranje koji je pokrivao celu piramidu testiranja. Rad sistema proveravali smo na više nivoa, od jediničnih testova preko integracionih do testova koji proveravaju cele procese.

Tako je testiranje pratilo i modernizaciju i razvoj novih funkcija. Provere su pomagale u otkrivanju grešaka i u proceni da li je postojeće ponašanje uz izmene ostalo ispravno.

Razvili smo module za višekratnu upotrebu.

Upravljanje ovlašćenjima napravili smo kao samostalan modul za višekratnu upotrebu, koji je kasnije uveden i u tri druga proizvoda tadašnjeg naručioca. Učitavanje podataka za modul izveštavanja realizovali smo pomoću Azure Data Factoryja.

Na ta dva modula razvili smo i novi proizvod. Tako su rešenja nastala tokom modernizacije mogla da se iskoriste i van postojeće platforme.

Automatizovali smo obradu podataka iz dokumenata.

Napravili smo zaseban Azure Functions servis koji je pomoću Azure OpenAI-ja izdvajao strukturirane podatke iz otpremljenih dokumenata i prosleđivao ih u bazu podataka. Time smo obradu dokumenata povezali sa procesom upravljanja podacima na platformi.

Razvojni rad podržali smo i AI alatima.

U svakodnevnom razvoju koristili smo GitHub Copilot i Claude. Pored toga, napravili smo sopstveni MCP server koji je agentima za kodiranje pomagao da pronađu delove koda i informacije o projektu potrebne za zadatak.

Te alate smo uklopili u rad tima, uz tehničko projektovanje, razvoj i testiranje.

Modernizacija je postavila temelje i za dalji razvoj.

Od stare aplikacije postepeno smo izgradili modularnu platformu koja može da se proširuje korak po korak. Moduli za višekratnu upotrebu podržali su razvoj daljih proizvoda, a ugrađeni okvir za testiranje pomagao je da se rad sistema proverava na više nivoa.

Iskustvo stečeno u tom zajedničkom radu prenosimo i u projekte firme operandor: razumevanje postojećeg sistema, postepeno preoblikovanje i razvoj koji može da se proveri.

Došlo je do neočekivane greške. Ponovo učitaj