Die vier Prinzipien erfolgreicher Software-Entwicklung

Zunehmender Wettbewerb, steigende regulatorische Anforderungen und immer anspruchsvollere Kunden erfordern bessere, schnellere und flexiblere Applikationen. Diese lassen sich jedoch nur mit optimierten Designprinzipien erstellen, pflegen und weiterentwickeln.

Entwickler und Unternehmensleiter sehen sich heute mit einer zunehmenden Komplexität auf allen Ebenen konfrontiert. Während generische Websites, auf die von einem Desktop aus zugegriffen wird, durch personalisierte, geräteunabhängige Erlebnisse ersetzt wurden, drängen neue Wettbewerber mit agilen und disruptiven Geschäftsmodellen auf die Märkte. Das setzt die Entwickler unter einen noch nie dagewesenen Druck, monolithische Altsysteme zu aktualisieren und anzupassen, die möglicherweise nicht flexibel genug sind, um dem gerecht zu werden.

Kunden werden zudem immer anspruchsvoller und erwarten, dass sie entlang ihrer Customer Journey an jedem Touchpoint die richtigen Informationen und Angebote erhalten. Gleichzeitig steigen die regulatorischen und gesetzlichen Anforderungen. Vorgaben wie die Datenschutzgrundverordnung (DSGVO) verlangen, dass die Erfassung und Verarbeitung personenbezogener Daten lĂĽckenlos nachvollziehbar und jederzeit auditierbar ist.

Vier Prinzipien fĂĽr eine moderne Applikationsentwicklung

Um diesen Anforderungen gerecht zu werden, müssen Unternehmen Anwendungen schnell entwickeln, erweitern und umbauen können. Das gelingt jedoch nur mit einer zeitgemäßen ereignisgesteuerten Architektur, die auf den folgenden vier Prinzipien beruht:

  1. Domain-driven Design (DDD): Software hat nur dann einen Sinn, wenn sie Probleme der realen Welt löst. Allzu häufig erfolgt die Entwicklung allerdings entlang theoretischer Konzepte wie Datenklassen oder Zugriffsmethoden. DDD stellt dagegen die fachlichen Anforderungen der Anwendungsdomäne in den Mittelpunkt. Ziel ist es, Software entlang der Geschäftslogik zu entwickeln, um so für jeden Fachbereich passgenau Lösungen anbieten zu können. „DDD hilft Unternehmen, sich bei der Softwareentwicklung auf das zu konzentrieren, was wirklich wichtig ist“, erklärt Allard Buijze, Gründer und CTO von AxonIQ, Anbieter einer ereignisgesteuerten Entwicklungsumgebung. „Das verbessert die Kommunikation und trennt den geschäftlichen Wert von den technischen Belangen einer Applikation.“
  2. Event-driven Microservices: Die Aufteilung großer monolithischer Software-Blöcke in kleine, unabhängige Services, die jeweils einen bestimmten Prozess adressieren, hat die Softwareentwicklung revolutioniert. Durch den modularen Aufbau lassen sich Applikationen schneller entwickeln, einfacher erweitern und besser skalieren. Die Zusammenarbeit erfolgt über Events, Command und Queries. „Neue Funktionen können so agil hinzugefügt, obsolet gewordene Bestandteile einfach abgeschaltet werden“, erläutert Buijze das Prinzip.
  3. Command Query Responsibility Separation (CQRS): CQRS trennt lesende Zugriffe (Queries) auf eine Datenbank von schreibenden (Commands). Das vereinfacht das Applikationsdesign und erlaubt größtmögliche Skalierbarkeit und Flexibilität. „CQRS verringert die Komplexität eines Domänenmodells deutlich“, sagt AxonIQ-CTO Buijze.
  4. Event Sourcing: Event Sourcing ist ein Analysemuster, bei dem sämtliche Zustandsveränderungen (Events) in einer Software aufgezeichnet werden. So können alle Vorgänge jederzeit nachvollzogen werden, etwa um Fehler besser zu verstehen oder Audit-Vorgaben zu erfüllen. „Beim Event Sourcing wird der Zustand einer Software als eine zeitlich geordnete Abfolge von Ereignissen festgehalten“, erklärt Buijze.

Best Practice: Wie Toyota die vier Prinzipien erfolgreich umsetzte

Wie sich Kundenbeziehungen durch eine moderne ereignisgesteuerte Software-Architektur nachhaltig verbessern lassen, zeigt das Beispiel von Toyota Motors Europe (TME). TME hatte das Ziel, seine Marketing-Aktivitäten von den üblichen unpersönlichen Angeboten an Informationsmaterial, Newsletter und Werbesendungen zu einer personalisierten Customer Journey zu transformieren. Statt passiv auf Interessenten zu warten, die sich das Material herunterladen oder einen Newsletter abonnieren, wollte TME Kunden aktiv ansprechen und mit individuell angepassten Informationen versorgen. Für das Projekt kam das Axon-Framework zum Einsatz, das auf den vier zuvor skizzierten Prinzipien basiert. Auf dieser Grundlage entwickelte das Marketing-Team den Vehicle Order Tracker (VOT), der Kunden die Zeit zwischen der Bestellung eines Autos und dessen Auslieferung angenehmer machen sollte. Ziel war es, die Begeisterung für das neue Auto auch nach Vertragsabschluss aufrechtzuerhalten.

Über den „Engagement Hub“, der auf dem Axon-Framework beruht, wird nun bei Bestellung automatisch ein personalisierter Account angelegt, der alle Informationen über die Fertigungsfortschritte sammelt und Kunden in regelmäßigen Status-Updates zur Verfügung stellt. Erste Tests in Finnland zeigten eine sehr hohe Öffnungsrate der Status-Mails und vor allem eine überdurchschnittliche Click-Through-Rate. Dies zeigt deutlich, dass die individuell zugeschnittenen Informationen eine hohe Relevanz für die Adressaten haben. Das bestätigt auch eine Umfrage unter den Testteilnehmern: 90 Prozent fanden die zugesandten Informationen nützlich und mehr als drei Viertel erzählten Freunden und Bekannten davon. Für über 90 Prozent wurde zudem die Wartezeit auf das neue Auto wie beabsichtigt deutlich kurzweiliger und angenehmer.

Fazit: Auf dem Weg zur modernen Applikation

Die vier Prinzipien der ereignisgesteuerten Software-Architektur sind der Schlüssel für eine agile, skalierbare Applikationsentwicklung. Sie selbst umzusetzen ist allerdings komplex, teuer und zeitaufwändig. „Unternehmen sollten damit rechnen, dass sie einen beträchtlichen Teil ihres Entwicklungsaufwands für den Aufbau eines Frameworks und seiner Infrastrukturkomponenten aufwenden müssen“, so Allard Buijze von AxonIQ. „Zeit und Geld, die besser für die Schaffung eines echten geschäftlichen Mehrwerts verwendet werden sollten.“

Es empfiehlt sich daher, auf bestehende Lösungen wie das Axon Framework und den Axon Server zurückzugreifen. Sie ermöglichen eine evolutionäre Weiterentwicklung von monolithischer Software hin zu einer Microservice-basierten Applikation. „Die lose Kopplung von Microservices über eine nachrichtenbasierte Kommunikation vereinfacht den Transformationsprozess drastisch und macht die Umstellung auf einen Microservices-Ansatz einfacher und schneller“, betont Buijze.

Sie wollen mehr ĂĽber die vier Prinzipien moderner ereignisgesteuerter Applikationsentwicklung erfahren? Dann informieren Sie sich jetzt!

kommentar field