So šéfom vývoja o zrýchľovaní ABRA Gen

12. 12. 2018
Zdrojový kód ERP aplikace
Rýchlosť informačného systému ABRA Gen je aktuálnou témou, ktorá hýbe celým jeho vývojom. Zmeny, ktoré majú za cieľ zjednodušiť a zrýchliť prácu používateľom, realizujeme priebežne. Do tohto procesu nám však vstúpilo GDPR, ktoré vývoj zdržalo od už potrebných úprav a vylepšení. Aké sú priority v zrýchľovaní systému v nadchádzajúcich mesiacoch? Na otázky o zrýchľovaní ABRA Gen odpovedal priamo šéf oddelenia vývoja Michal Ježek. Kde a v čom bude ABRA Gen rýchlejší. Aký je váš cieľ? Chceme, aby zákazníci mohli bez obáv spracovávať veľké množstvo dát a nemuseli čakať na odozvu systému. Aktuálne keď používateľ otvorí agendu, musí počkať na načítanie číselníkov. A ak potrebuje občerstviť číselník, pretože do neho kolega pridal novú položku, tak čaká znova. Následne čaká na uloženie veľkého dokladu. Plánujeme zrýchlenie Adresára firiem.  V prvom rade vás nebude zdržiavať pri štarte, a ponúkne inteligentný našepkávač, aby ste číselník firiem vôbec nemuseli otvárať, napríklad pri zadávaní faktúry . „Pod kapotou“ sa musí odohrať mnoho zmien. Následne túto technológiu aplikujeme na ďalšie číselníky, najviac očakávaná bude hlavne tam, kde je veľa položiek v adresári osôb alebo milióny šarží. Prečo je vlastne tak náročné ABRA Gen zrýchliť? Dáta v ERP nepripomínajú fotky v albume, kde stačí nalistovať správnu stránku, ale skôr mozog s množstvom synapsií, ktoré sú skoro dôležitejšie než samotné neuróny, a práve prepojenia a práca s nimi si vyžadujú inteligentný a rýchly program. K dosiahnutiu požadovanej rýchlosti je potrebné skombinovať niekoľko prístupov. V prvej rade zmeniť algoritmy a dátové štruktúry, aby sa s narastajúcim objemom dát lepšie vyrovnali, tj. aby časová a pamäťová náročnosť nerástla s množstvom dát príliš rýchlo (napríklad exponenciálne). Taktiež aby dokázali využiť moderný hardware a jeho schopnosť paralelizácie. Ďalej chceme navrhnúť systém účelne, aby sa časovo náročné operácie odohrali na pozadí, či už počas noci, alebo zatiaľ kým sa používateľ venuje ďalšiemu dokladu. S čím ste začali? Čo bolo v prvej fáze najnáročnejšie? Najprv sme museli zistiť, čo zrýchliť. Preto sme išli k zákazníkom realizovať merania. Stáli sme používateľom za chrbtom so stopkami a nechali ich pracovať s ABRA Gen. Súčasne sme našim profilerom zaznamenávali, ako Gen pracuje. Niekedy sme im dokázali rovno poradiť, napríklad, že je vhodné požiadať konzultanta, aby im nechal report generovať automaticky každý deň. Po návrate sme analyzovali dáta z profileru. Niekedy sme poukázali na pomalý skript, ale často bol problém priamo v jadre ABRA Gen. Vlastne sa nám potvrdilo, čo sme čakali: číselníky a veľké doklady. Akým spôsobom sa musí zmeniť práca s databázami, objektmi, príp. v samotnom kóde? To sa práve snažíme vymyslieť Primárne chceme nájsť spôsob, ako obísť súčasné načítanie celých číselníkov dopredu do pamäti. To znamená, že tam, kde sa doteraz mohlo priamo siahnuť do číselníka v pamäti, sa po novom bude Gen musieť spýtať databázy. Aby to všetko neprinieslo viac škody ako úžitku, budeme niektoré otázky kešovať, aby sa Gen zdĺhavo nepýtal dokola na to isté (napríklad na sadzbu DPH na každom riadku faktúry). Ako sa muselo prispôsobiť fungovanie a organizácia celého vývoja? Pre každú kľúčovú úlohu sme nadefinovali, kto za ňu bude zodpovedný a kto ďalší na nej bude pracovať. Za bežných okolností by všetko okolo zrýchlenia, ale napríklad aj dotiahnutia prechodu na Delphi 10 (čo nám rovnako umožnilo zrýchlenie systému), náležalo tímu Jadra, snažili sme sa im maximálne uvoľniť ruky a rozdeliť úlohy aj ostatným. V priebehu leta sa ukázalo, že zrýchlenie číselníkov je naozaj veľká a ťažká úloha, vyžadujúca si úplné sústredenie. Rozhodli sme sa preto na konci prázdnin, že z tímu Jadra sa dočasne stane tím Číselníkov a ich povinnosti kompletne prebral tím Financie, resp. nový „Financie & Core“ doplnený o posily. Ako sa práce na rýchlosti posunuli s blížiacim sa koncom roka? Pretože chápeme, že na prelome roka majú všetci plné ruky práce, sústredili sme sa na úpravy vo vnútri systému, ktoré urýchlia operácie, ale nijak nemenia správanie a nevyžadujú si zásahy do zákazkových úprav. Niektoré prvé úpravy sú k dispozícii už od verzie 18.13.06. Druhá sada vylepšení práve prechádza testovaním. Chceme ju zákazníkom ponúknuť v legislatívnej verzii 19.0, aby okrem nových povinností od štátu dostali do rúk taktiež niečo prínosného. V roku 2019 predstavíme ďalšie zmeny – niektoré z nich už budú viditeľné, napr. spomenutý nový číselník s inteligentným našepkávačom. V každej rade verzie (18.13, 19.0, 19.1) plánujeme vedľa ďalších vylepšení priniesť aj zvýšenie výkonu. Ďakujeme za rozhovor a tešíme sa na rýchlejší ABRA Gen.
ABRA Gen R&D Director
Michal Ježek ABRA Gen R&D Director