1. Parallel-Landschaft aufbauen, anstatt existierende Landschaft zu erneuern
Zu Beginn stellt sich immer die grundlegende Frage, ob man die existierende Landschaft Stück für Stück von innen heraus erneuern sollte, oder ob man lieber ein komplett neues System von Grund auf aufsetzen sollte (“Grüne-Wiese-Ansatz”). In den meisten Fällen empfiehlt es sich aus unserer Erfahrung, hier klar eine neue Landschaft von Grund auf aufzubauen:
- Die neue Landschaft kann initial möglichst simpel, aber flexibel aufgebaut werden.
- Die neue Landschaft muss nicht in die komplexen, existierenden Strukturen integriert werden. Die Komplexität des existierenden Systems wird oftmals unterschätzt und der Austausch einzelner Teile, die in das existierende, undurchsichtige System integriert werden müssen, ist sehr häufig über 3-mal teurer und langwieriger in der Implementierung als ein konsequenter Neuaufbau.
- Beim Neubau muss nicht auf die alten Strukturen Rücksicht genommen werden. Ein Vergleich zum Hausbau: Eine Renovierung ist oft kostspieliger ist als ein Neubau, da man nie sicher sein kann, was sich hinter der nächsten Mauer versteckt.
2. Mit möglichst wenigen Systemen starten und bedürfnisorientiert erweitern
Eine verteilte Software-Landschaft mit mehreren beteiligten Systemen ist immer komplexer aufzubauen, zu betreiben und zu erweitern, als eine rein monolithische Landschaft – um eine hohe Flexibilität zu erlangen, allerdings auch unerlässlich. Die Empfehlung ist daher, eine Landschaft mit möglichst wenigen, verteilten Systemen aufzubauen. Für den Start ist die Komplexität des verteilten Systems so recht niedrig und handhabbar, die Architektur ist allerdings auf eine Flexibilisierung und Erweiterung in der Zukunft ausgelegt. Diese Landschaft sollte dann den größten Potentialen entsprechend kontinuierlich ausgebaut werden und weitere Systeme modular angedockt werden.
3. Stabiles Fundament aufbauen, anstatt sämtliche Funktionen gleichzeitig auszuprägen
Bevor man sich in den Details von Anforderungskatalogen mit vielen gewünschten Funktionalitäten verliert, sollte der Fokus darauf liegen, das richtige Fundament zu legen. Beim Hausbau muss zuerst der Keller stehen, bevor weiter in die Höhe gebaut wird, und das Parkett sollte nicht parallel zum Verputzen der Wände verlegt werden. Ähnlich verhält es sich mit der Architektur und dem Aufbau eines Systems. Wird versucht, zu viele Dinge gleichzeitig in der kompletten Tiefe auszuprägen, wird ein fragiles Gebilde konstruiert, an dem immer wieder Ausbesserungen vorgenommen werden müssen oder das im schlimmsten Fall zu einer nicht skalierbaren Lösung führt.
4. Flexibles und dynamisches Datenmodell als Schlüssel zum Erfolg aufsetzen
Das Datenmodell muss flexibel sein, da keine Gewissheit besteht, welche weiteren Informationen in Zukunft hinzukommen müssen, z.B. durch eine Anbindung eines weiteren Systems. Klassische, starre Datenbankstrukturen mit unflexiblen Business Objekten werden die Plattform schnell an ihre Grenzen bringen und einer Skalierung im Weg stehen, da Anpassungen immer komplexer und kostspieliger werden. Eine dynamisch erweiterbare und adaptive Datenstruktur ermöglicht überhaupt erst eine moderne und skalierungsfähige Architektur.
5. Event-basierte Kommunikation ermöglichen
Ein weiterer wichtiger Erfolgsfaktor ist eine event-basierte Kommunikation der Systeme untereinander. Es sollte dringend vermieden werden, dass starre Prozesse implementiert werden, die über mehrere Systeme hinweg laufen. Stattdessen sollte wenn möglich auf eine event-basierte Kommunikation zwischen den Systemen gesetzt werden. So kann z.B. System A seine Events an die darum liegenden Systeme kommunizieren und basierend auf den Events kann entschieden werden, welche weiteren Prozesse in einem anderen System angestoßen werden sollen.
Wenn du herausfinden möchtest, ob diese Ansätze auch für dein Unternehmen der richtige Weg sind, kannst du dich unverbindlich mit unseren Experten austauschen.