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
[1] https://assets.thoughtworks.com/assets/technology-radar-vol-23-en.pdf