ERP Systeme sind naturgemäß modular aufgebaut, datengetrieben, prozessorientiert und über Jahrzehnte im Einsatz! Aber welche Anforderungen werden an Dich als Entwickler / Berater solcher Systeme gestellt ? Welche Aufgaben kommen auf dich zu?
Eines möchte ich gleich vorweg nehmen! Nicht nur Softwareentwickler entwickeln ein ERP System. Wirtschaftsinformatiker, Business Analysten und Consultants sind ebenfalls maßgeblich an der Entwicklung beteiligt.
More...
Wartbarkeit
Du hast sicherlich schon ein Mal von Softwarewartung (engl. software maintenance) gehört. Aber hast du Softwarewartung schon einmal erlebt? Hast du mal versucht, mit wenig Dokumentation, kaum automatisierten Tests und ohne klare Vorstellung von der fachlichen Anforderung, Änderungen an einem Modul mit 1000+ Zeilen Quellcode durchzuführen ?
Falls ja, dann weißt du ja bereits warum das richtige Maß an Dokumentation, der Einsatz von automatisierten Tests bzw. Testgetriebener Entwicklung und Versionskontrolle wertvoll für die tägliche Arbeit ist!
Als Entwickler musst du dir im Klaren darüber sein, dass dein Quellcode kein Wegwerfprodukt ist, sondern einige Jahre im Einsatz sein wird. Im Fall von ERP Systemen oft sogar Jahrzehnte!
Du solltest frühzeitig damit beginnen, "wartbaren Code" bzw. "Clean Code" zu schreiben und Standard-Frameworks wie bspw. das Spring Framework zu nutzen.
Datenorientierung
Bei der täglichen Arbeit mit einem ERP System ist es wichtig, dass benötigte Informationen bedarfsgerecht, also in der richtigen Menge und angemessener Zeit zur Verfügung stehen. Dies gilt für aktuelle wie für historische Daten.
Als Entwickler solltest du verstehen, welche Informationen zu welchem Zeitpunkt in welcher Menge entlang der Prozesse im Unternehmen benötigt werden. Du benötigst folglich die Fähigkeit dich in die Welt der Anwender hineinzudenken und deren Probleme und Herausforderungen zu verstehen.
Aus technischer Sicht solltest du in der Lage sein, Daten performant abfragen und aufbereiten zu können. Für diese Aufgaben sind Kenntnisse in relationalen Datenbanksystemen, der Abfragesprache SQL, Datenbankperformanceanalyse sowie Object-Relational-Mapping (kurz. ORM) absolut pflicht.
Im Zuge von Big Data und Machine Learning haben zudem graphenorientiete Datenbanken sowie die Programmiersprache Python immer mehr an Bedeutung gewonnen. Kenntnisse in diesem Bereichen sind ebenfalls von Vorteil.
Neuigkeiten gefällig?
[cleverreach_signup]
Modular
Da ERP Systeme in der Regel für große, kleine, produzierende aber auch für reine Handelsunternehmen entwickelt werden, ist klar, dass sie modular aufgebaut sein müssen. Nur so ist es möglich einem Kunden ein passendes System zum adequaten Preis anzubieten.
Wo Module entworfen und in ein System integriert werden, müssen auch wohldefinierte Schnittstellen existieren, die über lange Zeiträume stabil sind. Dies gilt insbesondere für Schnittstellen zu externen Systemen, da hier Anpassung nicht ohne Weiteres vorgenommen werden können.
Konzepte wie Messaging, Serviceorientierung und Webservices aus dem Bereich Enterprise Application Integration (kurz EAI) sind definitiv hilfreich, wenn man sich mit der Integration von Modulen und anderen Applikationen beschäftigen darf.
Spring Integration ist ein tolles Java Framework um Enterprise Application Integration Szenarien zu realisieren.
Prozessorientiert
Die Prozesse bilden das Nervensystem eines Unternehmens. Sie lösen Handlungen aus, sorgen dafür, dass die richtigen Akteure ihre Aufgaben erledigen und informieren über wichtige Ereignisse.
Diese Abläufe sind im ERP System abgebildet. Von der Erstvorstellung, über die Einführung bis hin zum Betrieb müssen immer wieder Prozesse analysiert, vorgestellt, besprochen und optimiert werden. Idealerweise landen die Ergebnisse dieser Workshops unmittelbar im System. Mindestens jedoch sollten sie dokumentiert und zum besseren Verständnis visualisiert (modelliert) werden.
Als Entwickler eines solchen Systems bedeutet das für dich, dass Kenntnisse zur Prozessmodellierung in BPMN, zur Business Rules Modellierung aber auch allgemeine Modellierungs- und Visualisierungstechniken wie UML und Sketch Noting zu deinem Werkzeugkasten gehören sollte und den Erfolg des ERP Systems und die damit verbundenen IT Projekte maßgeblich beeinflussen.
Da ausführbare, modellierte Prozesse in das bestehende System integriert werden, stellen diese ebenfalls Module dar. Somit müssen auch hier Schnittstellen für den Datenaustausch zwischen Prozess- und Systemebene geschaffen werden.