Gespräch mit dem R&D-Chef über die Beschleunigung von ABRA Gen

12. 12. 2018

Die Geschwindigkeit des Informationssystems ABRA Gen ist ein aktuelles Thema, das das gesamte Entwicklungsteam bewegt. Änderungen, die die Arbeit der Anwender vereinfachen und beschleunigen sollen, nehmen wir kontinuierlich vor. Dann kam jedoch die DSGVO, die das Team von bereits geplanten Anpassungen und Verbesserungen abhielt. Wie lauten die Prioritäten bei der Beschleunigung des Systems in den kommenden Monaten? Auf Fragen zur Beschleunigung von ABRA Gen antwortete der Chef der Entwicklungsabteilung, Michal Ježek.

Wie und wo wird ABRA Gen schneller? Was ist Ihr Ziel?

Wir möchten, dass unsere Kunden ohne Stress große Datenmengen verarbeiten können und nicht auf Systemantworten warten müssen. Wenn der Benutzer derzeit einen Sachbereich öffnet, muss er warten, bis die gesamte Liste eingelesen werden. Und wenn die Liste aktualisiert werden soll, weil der Kollege einen neuen Posten hinzugefügt hat, muss er wieder warten. Dann wartet er, bis ein großer Beleg gespeichert wurde.

Wir planen, das Unternehmensadressbuch zu beschleunigen. Zum einen soll es beim Programmstart nicht aufhalten, zum anderen bietet es einen smarten Assistenten, einen „Vorsager“, mit dem der Anwender z. B. bei der Eingabe einer Rechnung die Unternehmensliste gar nicht erst öffnen muss. „Unter der Haube“ müssen dafür viele Änderungen vorgenommen werden. Anschließend wenden wir diese Technologie auf andere Listen an; das können vor allem die nicht erwarten, die mit vielen Einträgen in den Adressbüchern oder Millionen von Chargen arbeiten.

Warum ist es eigentlich so kompliziert, ABRA Gen zu beschleunigen?

Die Daten im ERP erinnern nicht so sehr an ein Fotoalbum, bei dem man einfach auf die richtige Seite blättert, sondern eher an ein Gehirn mit vielen Synapsen, die fast schon wichtiger sind als die Neuronen selbst. Und gerade diese Verknüpfungen und die Arbeit damit erfordern ein schnelles und smartes Programm.

Damit die gewünschte Geschwindigkeit erzielt werden kann, müssen mehrere Ansätze kombiniert werden. Zuerst müssen die Algorithmen und Datenstrukturen geändert werden, damit sie besser mit dem wachsenden Datenvolumen klar kommen, d. h. damit die Ansprüche an Zeit und Arbeitsspeicher mit zunehmenden Datenmengen nicht zu schnell (z. B. exponentiell) wachsen. Zudem müssen sie moderne Hardware und deren Fähigkeit zur Parallelisierung nutzen. Außerdem möchten wir das System clever strukturieren, damit zeitlich anspruchsvolle Vorgänge im Hintergrund abgewickelt werden – entweder im Voraus nachts oder z. B. während der Benutzer den nächsten Beleg eingibt.

Womit haben Sie bereits begonnen? Was war in der ersten Phase am schwierigsten?

Wir mussten zuerst feststellen, was eigentlich beschleunigt werden soll. Daher sind wir zuerst einmal zu den Kunden gegangen und haben gemessen: Wir haben den Benutzern mit der Stoppuhr in der Hand über die Schulter geschaut und sie mit ABRA Gen arbeiten lassen. Gleichzeitig haben wir mit unserem Profiler aufgezeichnet, was Gen so macht. Manchmal konnten wir ihnen gleich Tipps geben, zum Beispiel, dass sie ihren Berater darum bitten sollen einzurichten, dass ein Bericht automatisch jeden Tag generiert wird.

Nach unserer Rückkehr mussten wir dann die Daten aus dem Profiler analysieren. Manchmal wiesen sie uns auf ein langsames Skript hin, aber vorwiegend lag das Problem direkt im Kern von ABRA Gen. Im Prinzip wurde uns bestätigt, was wir erwartet hatten: Probleme gibt es bei Listen und großen Belegen.

Wie muss der Umgang mit Datenbanken, Objekten bzw. dem Code selbst geändert werden?

Das versuchen wir gerade auszubaldowern. Wir wollen vor allem einen Ansatz finden, wie wir umgehen können, dass die Listen wie derzeit komplett in den Arbeitsspeicher eingelesen werden müssen. Das bedeutet, dass dort, wo man bisher direkt auf die Liste im Arbeitsspeicher zugreifen konnte, ABRA Gen jetzt erstmal in der Datenbank nachfragen muss. Damit dadurch nicht mehr Schaden als Nutzen angerichtet wird, werden wir bestimmte Abfragen cachen, damit ABRA Gen nicht dauernd zeitaufwändig immer das Gleiche abfragt (z. B. den Mehrwertsteuersatz in jeder einzelnen Zeile einer Rechnung).

Wie musste die Funktionsweise und die Organisation des ganzen Entwicklungsteams angepasst werden?

Wir haben für jede Schlüsselaufgabe definiert, wer dafür verantwortlich sein wird und wer noch daran mitarbeiten wird. Weil normalerweise alles im Bereich der Beschleunigung, aber auch der Abschluss des Übergangs auf Delphi 10 (was uns ebenfalls eine Beschleunigung des Systems ermöglichte) in den Aufgabenbereich des Teams „Core“ fällt, haben wir versucht, ihnen den Rücken freizuhalten und auch anderen Aufgaben zuzuweisen.

Im Sommer hat sich gezeigt, dass die Beschleunigung der Listen eine wirklich große und komplizierte Aufgabe ist, die unsere ganze Konzentration erfordert. Wir haben uns daher am Ende der Ferien entschieden, dass das Team „Core“ vorübergehend zum Team „Listen“ wird und ihre ursprünglichen Aufgaben komplett vom Team „Finanzen“ (bzw. jetzt „Finanzen & Core), das etwas verstärkt wurde, übernommen werden.

Wie sind die Arbeiten an der Geschwindigkeit mit dem näherkommenden Jahresende vorangegangen?

Uns ist klar, dass am Jahresende jeder alle Hände voll zu tun hat. Daher haben wir uns auf Anpassungen im System konzentriert, die die Vorgänge beschleunigen, aber das Verhalten nicht ändern und keine Eingriffe in maßgeschneiderte Systeme erfordern. Die ersten Änderungen sind bereits ab Version 18.13.06 verfügbar. Die nächste Verbesserungswelle wird gerade getestet. Wir möchten sie den Kunden in der Version 19.0 anbieten, damit sie neben den in der Version enthaltenen neuen gesetzlichen Verpflichtungen auch etwas Sinnvolles in die Hand bekommen. Im Jahr 2019 stellen wir auch weitere Änderungen vor – einige davon werden dann schon sichtbar sein, z. B. die bereits erwähnten assistentengestützten Listen. In jeder neuen Nebenversion (18.13, 19.0, 19.1) planen wir neben weiteren Verbesserungen auch eine Leistungserhöhung.

Wir danken für das Gespräch und freuen und auf ein schnelleres ABRA Gen.

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