Blog

S šéfem vývoje o zrychlování ABRA Gen

12. 12. 2018
Zdrojový kód ERP aplikace

Rychlost informačního systému ABRA Gen je aktuální téma, které hýbe celým jeho vývojem. Změny, které mají za cíl zjednodušit a zrychlit práci uživatelům, provádíme průběžně. Do toho však vstoupilo GDPR, které vývoj zdrželo od již potřebných úprav a vylepšení. Jaké jsou priority ve zrychlování systému v nadcházejících měsících? Na otázky o zrychlování ABRA Gen odpověděl přímo šéf oddělení vývoje Michal Ježek.

Kde a v čem bude ABRA Gen rychlejší. Jaký je váš cíl?

Chceme, aby zákazníci mohli bez obav zpracovávat velké množství dat a nemuseli čekat na odezvu systému. Když nyní uživatel otevře agendu, musí počkat na načtení číselníků. A když potřebuje Občerstvit číselník, protože do něj kolega přidal novou položku, tak čeká znovu. Pak čeká na uložení velkého dokladu.

Plánujeme zrychlení Adresáře firem. Jednak vás nebude zdržovat při startu, a jednak nabídne chytrý našeptávač, abyste třeba při zadávání faktury číselník firem vůbec nemuseli otvírat. „Pod kapotou“ se musí odehrát spousta změn. Následně tuto technologii aplikujeme na další číselníky, nedočkavě ji budou vyhlížet hlavně tam, kde mají hodně položek v adresáři osob nebo miliony šarží.

Proč je vlastně tak složité ABRA Gen zrychlit?

Data v ERPu nepřipomínají fotky v albu, kde stačí nalistovat správnou stránku, ale spíš mozek se spoustou synapsí, které jsou skoro důležitější než ty samotné neurony, a právě ta propojení a práce s nimi vyžadují chytrý a rychlý program.

K dosažení požadované rychlosti je potřeba zkombinovat několik přístupů. V první řadě změnit algoritmy a datové struktury, aby se s narůstajícím objemem dat lépe vypořádaly, tj. aby časová a paměťová náročnost nerostla s množstvím dat příliš rychle (třeba exponenciálně). Také aby dokázaly využít moderní hardware a jeho schopnost paralelizace. Dále chceme navrhnout systém chytře, aby se časově náročné operace odehrály na pozadí, ať už předem v noci, nebo zatímco se uživatel věnuje dalšímu dokladu.

S čím jste začali? Co bylo v první fázi nejobtížnější?

Nejdřív jsme museli zjistit, co zrychlit. Ze všeho nejdřív jsme proto vyrazili k zákazníkům měřit. Stáli jsme uživatelům za zády se stopkami a nechali je pracovat s ABRA Gen. Současně jsme naším profilerem zaznamenávali, co Gen dělá. Někdy jsme jim dokázali rovnou poradit, třeba že mají požádat konzultanta, aby jim nechal report generovat automaticky každý den.

Po návratu jsme museli analyzovat data z profileru. Někdy jsme poukázali na pomalý skript, ale často byl problém přímo v jádře ABRA Gen. Vlastně se nám potvrdilo, co jsme čekali: číselníky a velké doklady.

Jakým způsobem se musí změnit práce s databázemi, objekty, popř. v samotném kódu?

To se právě snažíme vymyslet 😊 Primárně chceme najít způsob, jak obejít současné načítání celých číselníků dopředu do paměti. To znamená, že tam, kde se dosud mohlo přímo sáhnout do číselníku v paměti, se nově bude Gen muset zeptat databáze. Aby to vše nepřineslo víc škody než užitku, budeme některé dotazy kešovat, aby se Gen zdlouhavě neptal pořád na to samé (třeba na sazbu DPH na každém řádku faktury).

Jak se muselo přizpůsobit fungování a organizace celého vývoje?

Pro každou klíčovou úlohu jsme nadefinovali, kdo za ni bude zodpovědný a kdo další na ní bude pracovat. Protože normálně by všechno kolem zrychlení, ale třeba i dotažení přechodu na Delphi 10 (což nám rovněž umožnilo zrychlení systému), náleželo týmu Jádra, snažili jsme se jim maximálně uvolnit ruce a rozdat úkoly i ostatním.

Během léta se ukázalo, že zrychlení číselníků je opravdu velká a těžká úloha, vyžadující plné soustředění. Rozhodli jsme proto na konci prázdnin, že z týmu Jádra se dočasně stal tým Číselníků a jejich povinnosti jaderných inženýrů kompletně přebral tým Finance, resp. nově „Finance & Core“ doplněný o posily.

Jak se práce na rychlosti posunuly s blížícím se koncem roku?

Protože chápeme, že na přelomu roku mají všichni plné ruce práce, soustředili jsme se na úpravy uvnitř systému, které urychlí operace, ale nijak nemění chování a nevyžadují zásahy do zakázkových úprav. Některé první úpravy jsou k dispozici již od verze 18.13.06. Druhá sada vylepšení právě prochází testováním. Chceme ji zákazníkům nabídnout v legislativní verzi 19.0, aby krom nových povinností od státu dostali do rukou také něco přínosného. V roce 2019 představíme další změny – některé z nich již budou viditelné, např. zmiňovaný nový číselník s chytrým našeptávačem. V každé řadě verzí (18.13, 19.0, 19.1) plánujeme vedle dalších vylepšení přinést i zvýšení výkonu.

Děkujeme za rozhovor a těšíme se na rychlejší ABRA Gen.

ABRA Gen R&D Director
Michal Ježek ABRA Gen R&D Director