"Hogyan tanultam meg szeretni egy legacy enterprise rendszert"

Címkék

Lassan tíz éve veszünk részt egy Google Drive alapú enterprise dokumentumkezelő rendszer fejlesztésében. Hogyan éljük túl a technológiai változásokat, hogy nem omlik össze az egész a technical debt súlya alatt? Mégis hogyan lehet egy tízéves legacy rendszer élhető és szerethető még úgy is, hogy nem minden nap színtiszta élvezet rajta dolgozni? Ebből a legacy projektből nagyon sok tapasztalat esett ki az évek során, előadásomban ezeket szeretném bemutatni, hiszen sokan vagyunk, akik nem zöld mezős fejlesztéseken dolgozunk.

Scipiades Ármin (Aliz) előadása a HWSW free! meetup-sorozat 2021. június 9-i Java / Kotlin állomásán hangzott el.

Hozzászólások

Szerintem meredek allitas, hogy egy java alkalmazas = enterprise = legacy.
Az lehet hogy a java most nem divatos, de attol meg nem legacy. A legacy nalam azt jelenti, hogy nem fejlesztik, csak minimalis karbantartas van, vagy olyan technologiara epul amit szinten nem fejlesztenek vagy nincs jovoje.

Az enterprise definicioja hogy nagyvallalati kornyezetbe integralhato, jol skalazodik, HA, failover es egyeb dolgok jol mukodnek, van ra rendes support, security kovetelmenyeknek megfelel, release es bugfix eletciklus stb ...

Lehet nagyon nem is tudnék olyan nyelvet/frameworkot mondani, ami egy méretesebb zöldmezős enterprise projekthez igazán jó lenne. Ami elég kiforrott már de 10 év múlva vélhetően nem lejtmenet még. Vagy ha esetleg nem is lejtmenet, de maga a nyelv/framework változik ennyi idő alatt annyit, hogy a régi kód full elavul és már fintorogva piszkálja bottal mindenki (lásd pl. Streamek, lambda kifejezések bevezetése Javaban).

Az enterprise egyik jellemzõje az, hogy hosszú az életciklusa. Ergo, ép ésszel nem kezd valaki olyasmiben ilyet fejleszteni, amirõl nem tudja biztosan, hogy a kódbázisát nem kell kidobnia mondjuk 20 év múlva, mert addigra a hiper-szuper fancy technológiát már kb. nem használja senki, és ami a fontos nem tartja karban senki.

Ez attól is függ, hogy az adott enterprise éppen hol tart architektúrában.

Ha még nagyon monolitban gondolkozik akkor igaz amit írsz.

Ha legalább elkezdték a darabolást (ne hívjuk microservice-nek mert attól sokaknak joggal lábrázása lesz) akkor inkább az interfészek lesznek fontosak, azok legyenek jól megtervezve, hogy miben van megírva az kevésbé lesz fontos.

zászló, zászló, szív

Léteznek olyan rendszerek (nagybanki backend pl) amik 30-40 éves szoftverek, akkori technológiával.

Nagyon nagyok, nagyon bonyolultak és hibátlanul teszik a dolgukat, tudják azt ami a specifikációban le van írva. Naná hiszen 30-40 év és számolatlan emberóra volt rá hogy kijavítsák. És közben sem a szoftver sem a hardver környezet nem változott alattuk drámaian. 

Érthető, hogy ezzel szemben a mai technológiákkal, mai “szakembergárdával”, mai “módszertanokkal” irdatlan nehéz - kb esélytelen - versenyezni, nagyon könnyű kimondani hogy “nem éri meg”.

Józanul gondolkodó ember nem ígéri meg (és nem hiszi el) hogy majd az új technológián alapuló új verzió hasonlóan hibátlan lesz. Dehogy lesz. 

Ezért aztán a legacy nem áll meg egész addig amíg az utolsó hozzáértő az utolsó munkanapja végén le nem kapcsolja a villanyt. Na akkor lesz a pánik.

zászló, zászló, szív

Az nem igaz, hogy a kornyezet nem valtozott. Ma mar az AS400-as rendszerek nagyon dragak, joval olcsobb x86 alapon a fejlesztes es az uzemeltetes is. Nem veletlen hogy az uj funkciokat nem AS400-on implementaljak, hanem csak hozzaintegraljak amennyire lehet. A mai modern vilagban nincs olyan hogy akkor reggelig fut a napi zaras, konyveles es addig semmi nem tortenik. A modern rendszerek 7/24-ben mukodnie kell teljes funkcionalitasban. Nem veletlen hogy az ujabb rendszerek tudnak folyamatos konyvelest. Az mas kerdes hogy a magyar piacon erre nincs igeny, Marika neninek videken jo lesz az ami van. Ezert a bankok nem erdekeltek a valtozasban, a fintech cegeknek meg kicsi a piac.

"környezet nem változik"-t úgy értettem hogy a mainframe-en belül nem nagyon változott. Van ott is fejlődés persze de nagyon vigyáznak arra hogy minden régi is menjen.

Ne húzzuk le nagyon a magyar bankszektort, máshol sem jobb, sőt. A több pénz, nagyobb rizikó miatt még kisebb a motiváció a valódi változásra.

zászló, zászló, szív

Nem akarom lehuzni, csak feltem hogy nem lesz fejlodes. 12 evet huztam le a penzugyi szektorban a fejlesztesen, mar mast csinalok szerencsere. Nyugaton a fintech cegek ra fogjak kenyszeriteni a regi szereploket a valtozasra, vagy atveszik a piac egy reszet. Ami mar jol latszik pl Wise, Revolut.