A régi rendszer továbbfejlesztése egyre nehezebb volt.
Az alkalmazás .NET Frameworkön működött, a különböző részek WCF-en keresztül kapcsolódtak egymáshoz, az üzleti logika jelentős része pedig az adatbázis tárolt eljárásaiban kapott helyet. Emiatt nehéz volt követni, hogy egy módosítás a rendszer mely részeit érinti, és a továbbfejlesztés sok egyeztetést és körültekintést igényelt.
Olyan megoldásra volt szükség, amely mellett a napi működés folytatódhatott, miközben a rendszer fokozatosan könnyebben karbantarthatóvá és bővíthetővé vált.
Lépésenként alakítottuk át a felépítést.
Megterveztük a korszerűsítés irányát, a fontos műszaki döntéseket pedig dokumentáltuk és egyeztettük az ügyféllel. Az új modulok fokozatosan vették át a régi kód feladatait, így az átalakítás során nem kellett egyszerre lecserélni a teljes alkalmazást.
A fejlesztés során több moduláris monolitot alakítottunk ki, Clean Architecture szerint szervezett kóddal és elkülönített felelősségekkel. A modulok közötti kommunikációt mediátoron keresztül szerveztük meg, hogy a működésük átláthatóbb és a továbbfejlesztésük kezelhetőbb legyen.
A tesztelést a fejlesztési folyamat részévé tettük.
Tesztelési keretrendszert építettünk be a fejlesztési folyamatba, amely a teljes tesztpiramist lefedte. Az egységtesztektől az integrációs teszteken át a teljes folyamatokat ellenőrző tesztekig több szinten vizsgáltuk a rendszer működését.
Így a tesztelés végigkísérte a korszerűsítést és az új funkciók fejlesztését. Az ellenőrzések segítették a hibák felismerését és annak vizsgálatát, hogy a módosítások mellett a meglévő működés is helyes maradjon.
Újra felhasználható modulokat fejlesztettünk.
A jogosultságkezelést önálló, újra felhasználható modulként készítettük el, amely később az akkori megrendelő három másik termékébe is bekerült. A riportmodul adatbetöltését Azure Data Factory segítségével valósítottuk meg.
A két modulra építve új terméket is fejlesztettünk. Így a korszerűsítés során létrehozott megoldások a meglévő platformon túl is hasznosíthatók voltak.
Automatizáltuk a dokumentumokból érkező adatok feldolgozását.
Külön Azure Functions-szolgáltatást készítettünk, amely Azure OpenAI segítségével strukturált adatokat nyert ki a feltöltött dokumentumokból, majd azokat az adatbázisba továbbította. Ezzel a dokumentumfeldolgozást a platform adatkezelési folyamatához kapcsoltuk.
A fejlesztői munkát AI-eszközökkel is támogattuk.
A napi fejlesztésben GitHub Copilotot és Claude-ot is használtunk. Emellett saját MCP-szervert készítettünk, amely segített a kódolóügynököknek megtalálni a feladathoz tartozó kódrészleteket és projektinformációkat.
Ezeket az eszközöket a csapat munkájába illesztettük, a műszaki tervezéssel, fejlesztéssel és teszteléssel együtt.
A korszerűsítés az új fejlesztéseknek is alapot adott.
A régi alkalmazásból lépésenként bővíthető, moduláris platformot alakítottunk ki. Az újra felhasználható modulok további termékek fejlesztését is támogatták, a beépített tesztelési keretrendszer pedig több szinten segítette a működés ellenőrzését.
A közös munka során szerzett tapasztalatot visszük tovább az operandor projektjeibe is: a meglévő működés megértését, a fokozatos átalakítást és az ellenőrizhető fejlesztést.