Blog

Software-Architektur-Trends 2021: „Modernisierung bestehender Systeme“

Feb 5, 2021

Software-Architektur steht aktuell hoch im Kurs. Kein Wunder, hat die Cloud doch viele traditionelle Architektur-Muster auf den Kopf gestellt. Sind Microservices die Lösung? Was bedeuten die verteilten Backends fürs Frontend? Welche Trümpfe halten Event-getriebene und reaktive Anwendungen bereit? Und wie bringen wir die vielen Legacy-Anwendungen sinnvoll in diese Schöne neue Welt? Der Software Architecture Summit diskutiert diese und weitere Fragen konzentriert an drei Konferenztagen. Wir haben uns vorab mit Stephan Pirnbaum über seinen Begriff einer zeitgemäßen Architekturarbeit und die Architektur-Trends 2021 unterhalten.

Zeitgemäße Software-Architektur

Entwickler: Der Software-Architektur-Summit stellt verschiedene Ansätze für zeitgemäße Software-Architekturen in den Fokus. Wenn wir zunächst einmal beim Wort „zeitgemäß“ bleiben: Was macht eine zeitgemäße Architektur aus?

Stephan Pirnbaum: Zeitgemäß ist für mich eine nachhaltige und angemessene Architektur, welche es ermöglicht, die fachlichen Anforderungen umzusetzen. Dabei stehen weder spezifische Technologien noch Architekturstile im Vordergrund. Vielmehr sollten erprobte, zukunftssichere Technologien passend zu den Anforderungen eingesetzt werden. Das gleiche gilt auch für Architekturstile: Während für eine Anwendung eine wohlstrukturierte, monolithische Architektur perfekt passt, mag für eine andere eine hochverteilte, Event-getriebene Microservices-Architektur notwendig sein.

Entwickler: Welche Herausforderungen an Software-Architekturen sind in den letzten Jahren neu hinzugekommen?

Stephan Pirnbaum: Da immer größere Teile der Prozesse in Unternehmen digitalisiert werden, stehen an dieser Stelle zunächst die Erweiterung und Modernisierung bestehender Software-Landschaften als große Herausforderungen. Selbst wenn neue Prozesse in zusätzliche Services umgesetzt werden, ist es nicht unwahrscheinlich, dass sich diese mit den bestehenden Systemen integrieren müssen. Durch das Wachstum der Software-Landschaften und steigende Skalierungsanforderungen rückte auch der Infrastruktur-Aspekt in den Fokus. Das konnten wir an der Entwicklung von Orchestrierungsframeworks und Service Meshes sehen.

 

LUST AUF MEHR SOFTWARE ARCHITEKTUR?

Zahlreiche aktuelle Themen wie KI, LLMS und Machine Learning, sowie Frontend-Architektur, für Tools zur Softwarearchitektur, Cloudlösungen und Software beweisen.

 

Architektur-Trends 2021

Entwickler: Was ist dein Thema auf dem Summit, und was findest du persönlich spannend daran?

Stephan Pirnbaum: Ich stelle den Teilnehmern „Software Analytics“ vor. Das kann man sich wie Data Analytics, nur eben für Software-Systeme, vorstellen. Dabei ist das Ziel, Informationen aus verschiedenen Quellen wie dem Source Code oder der Änderungshistorie zu aggregieren und Wissen über die Anwendung aufzubauen. Durch die Unterstützung von Open-Source-Tools erhält man eine ganz neue Sicht jenseits der IDE auf der Anwendung. So können z. B.  die Entwicklungsarbeit unterstützt sowie Featureentwicklung oder Modernisierungen geplant und abgeschätzt werden. Spannend für mich als Consultant ist insbesondere, dass man so auch als „Neue*r“ im Projekt schnell einen guten Überblick über die strukturellen Probleme in der Anwendung erhält.

Entwickler: Welcher Trend der Software-Architektur wird deiner Einschätzung nach im Jahr 2021 Fahrt aufnehmen?

Stephan Pirnbaum: Ich sehe hier zwei Richtungen: Zum einen ist es das Ins-Zentrum-Rücken der Domäne bei der Erarbeitung einer technischen Lösung. Wir beobachten in den letzten Jahren ein immer stärker werdendes Interesse an Domain-driven Design und der sich darum anordnenden Methodiken. Das erscheint auch logisch, wenn man sich bewusst wird, dass Softwaresysteme fachliche Anforderungen umsetzen und damit zur Erreichung von Geschäftszielen beitragen. Dieser Trend wird sich sicher verstärkt fortsetzen.

Zum anderen ist es das Behandeln von Diagrammen und Dokumentation als wäre es Source Code. Letztes Jahr hat es schließlich „Diagrams as code“ bereits in die Trial-Phase des Technology Radars von ThoughtWorks geschafft [1]. Durch die Verortung der Dokumentation im Repository sinkt einerseits die Hürde für Entwickler*innen, Dokumentation zu lesen und schreiben; andererseits befindet sich diese dann selbst unter Versionskontrolle, wodurch das Nachvollziehen von Änderungen vereinfacht wird. Mit Tools wie jQAssistant [2] ist es zudem möglich, Dokumentation auf Basis der implementierten Strukturen zu generieren bzw. Soll-Dokumentation und Ist-Implementierung miteinander abzugleichen.

Jenseits der Trends

Entwickler: Welches Architektur-Thema abseits der Hypes sollte deiner Meinung nach eine größere Beachtung finden?

Stephan Pirnbaum: Ganz klar die Modernisierung bestehender Systeme. Zu häufig wird bei all den Trendthemen vergessen, dass die meisten Teams an Softwaresystemen entwickeln, welche bereits seit Jahren bestehen und auch die nächsten Jahre noch weiterentwickelt werden. Dabei ist dieser Bereich besonders spannend, da bestehende Systeme in Zeiten der Digitalen Transformation essentiell sind, um die anstehenden Herausforderungen bewältigen zu können. Neue oder erweiterte Anforderungen müssen in diesen abgebildet werden und auch die Integration neuer Systeme in die Landschaft erfordert Anpassungen. Das alles erfolgt einfacher, wenn die Systeme ordentlich strukturiert und von Altlasten weitgehend befreit sind.

Entwickler: Was ist das wichtigste Take-away deines Workshops, das die Teilnehmer mit nach Hause nehmen sollten?

Stephan Pirnbaum: In Software-Systemen steckt mehr Information, als wir in der IDE sehen können. Eine Sicht von außen, bei der all diese Informationen aggregiert und aufbereitet werden, gibt Wissen über Strukturen und Probleme preis und quantifiziert diese, wo wir als Entwickler*innen sonst höchstens ein Bauchgefühl haben.

Entwickler: Vielen Dank für dieses Interview!

Die Fragen stellte Hartmut Schlosser

Der Experte im Interview

Stephan PirbaumStephan Pirnbaum ist Consultant bei der buschmais GbR. Er beschäftigt sich leidenschaftlich gern mit der Analyse und strukturellen Verbesserung von Softwaresystemen im Java-Umfeld. In Vorträgen und Workshops präsentiert er seine gesammelten Erfahrungen und genutzten Methodiken.

[1] https://assets.thoughtworks.com/assets/technology-radar-vol-23-en.pdf

[2] https://jqassistant.org/

 

Alle News zum Software Architecture Summit!