Blog

Software-Architektur 2018: „Im Zusammenwachsen von Architektur und Organisation versteckt sich ungeahntes Potential“

Aug 6, 2018

Michael Plöd

In Zeiten von Agile, DevOps und DDD verändert sich auch die Rolle des Software-Architekten. JAXenter hat sich mit Michael Plöd, Principal Consultant bei innoQ und Sprecher auf dem Software Architecture Summit, darüber unterhalten, was es mit Tactical Design und Aggregates auf sich hat. Außerdem sprachen wir über den richtigen Mix aus Stabilität und Flexibilität im Bereich der Software-Architektur.

JAXenter: Software-Architektur galt lange als die Disziplin, in Software-Projekten für einen kohärenten Zusammenhang zu sorgen: Es geht darum, Stabilität und Langlebigkeit zu gewährleisten, Standards einzuführen, für Sicherheit zu sorgen, Pläne und Dokumentationen zu erstellen, etc. Heute wird Software-Architektur oft auch anders diskutiert, und zwar im Sinne eines Change Management: Architekturen sollen flexibel, erweiterbar, austauschbar sein. Wie siehst du dich: Wie viel in deiner Arbeit ist Kirchenbauer, wie viel Change Manager?

Michael Plöd: Ich denke die Situation von Software-Architekt(innen) ist immer stark getrieben von der Ausgangslage, in der man tätig ist. Es wird sicherlich viele Kolleginnen und Kollegen geben, deren Arbeit zu einem großen Teil „Kirchenbauer(in)“ ist und das Gleiche gilt für das Thema Change Management. Unabhängig von der Ausgangslage ist für mich die wichtigste Tätigkeit die Kommunikation mit unterschiedlichen Stakeholdern, welche wiederum unterschiedliche Informationsbedarfe haben und meist sogar unterschiedliche „Sprachen“ sprechen: von fachlich bis hin zu technisch.

Man muss Qualitätskriterien ernst nehmen.

JAXenter: Wie schafft man es, den richtigen Mix aus Stabilität und Flexibilität zu finden? Hast du da vielleicht einen Tipp aus deinen langjährigen Erfahrungen?

Michael Plöd: Nehmt Qualitätskriterien ernst und verhandelt diese explizit mit Euren Stakeholdern. Aus diesen könnt Ihr als Architektinnen und Architekten häufig sehr brauchbare Indikationen für den richtigen Mix aus Stabilität und Flexibilität ableiten.

JAXenter: Im Zuge der DevOps-Bewegung erweitert sich das Bild des Software-Architekten noch um eine weitere Facette: Es geht nämlich nicht nur um Anwendungsentwicklung, sondern immer mehr auch darum, wie sich Anwendungen in einer Continuous-Delivery-Landschaft einbetten. „You build it, you run it“ heißt da das Stichwort. Wie hat die DevOps-Bewegung die Rolle des Software-Architekten verändert? Was musst du als Architekt heute anders machen, als früher, als man die Anwendungen noch einfach über den Zaun hin zum Ops-Team geworfen hat?

Michael Plöd: Ich denke ehrlich gesagt, dass auch früher nichts „einfach“ zum Ops-Team rübergeworfen werden konnte. Im Gegenteil, das war meist ein komplexer und von vielen Missverständnissen geprägter Vorgang, welcher stark davon lebt, wie gut die Architektinnen und Architekten den Stakeholder-„Betrieb“ in ihre Diskussionen eingebunden haben. Eigentlich hätte das Berücksichtigen von Ops-Anforderungen ständig stattfinden müssen, was natürlich unter der organisatorischen Trennung litt. Ich denke, durch DevOps werden viele dieser vormals implizit versteckten Themen zu expliziten Treibern für die Arbeit von Architektinnen und Architekten.

JAXenter: Ein weiterer Trend ist aktuell, das Design einer Software stark an den fachlichen Domänen auszurichten. Neben DDD als Theorie erobern gerade Microservices-Architekturen die Praxis. Neben den technologischen Aspekten, die Domänen-fokussierte Anwendungen mit sich bringen, geht es hier zentral auch darum, die beteiligten Leute erst einmal in ein Boot zu holen: Fachexperten, Entwickler und natürlich auch die Geschäftsleitung und Anwender bzw. Kunden. Ist man da als Software-Architekt nicht eigentlich zu 80% Projektmanager? Wie hältst du das persönlich: Wie stark nimmst du die Rolle des Projektmanagers ein, wie viel konzentrierst du dich auf Technologien?

Michael Plöd: Software-Architektur und Projektleitung bleiben weiterhin zwei getrennte Disziplinen. Ich als Software-Architekt sehe mich hier eher in einer coachenden Rolle für die Projektleitung. Ich vermittle, warum integrierte Teams eine gute Idee sind, ich gebe Hinweise und Pro-/Contra-Argumentationen im Hinblick auf die Kombination von Organisation und Entwicklung / Architektur. Aber ich halte mich weitestgehend aus Themen wie Budgets oder Timesheets heraus.

 

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.

 

JAXenter: Auf dem Software Architecture Camp hältst du einen Workshop namens „Deep Dive-Modellierung von Aggregaten, Entities und Value Objects.” Dabei wirst du den Bereich des Tactical Designs von DDD behandeln, insbesondere in Bezug auf Aggregates. Was hat es mit Tactical Design und Aggregates auf sich, und wie setzt du sie ein, um eine losere Kopplung der fachlichen Bereiche zu erhalten?

Michael Plöd: Generell geht es beim Tactical Design um die Ausgestaltung der so genannten „Internal Building Blocks“. Diese stellen als Architekturmuster den internen Aufbau eines Bounded Contexts dar. Es geht hierbei somit primär um eine interne Entkopplung einzelner Teilbereiche und nicht um eine externe. Letztere wird üblicherweise durch den Bounded Context abgedeckt.

Ich sage immer wieder gerne, dass man mit Aggregates sehr gute und wartbare Monolithen bauen kann.

Aggregates sind eine fachliche Klammer um Entities und Value Objects. Sie besitzen eine Root Entity, die häufig als „Aggregate Root“ bezeichnet wird und die den Lebenszyklus des Aggregates steuert. Im Laufe der Zeit haben sich Aggregates auch ein wenig weiterentwickelt, so betrachtet die DDD Community Aggregates inzwischen auch als Konsistenz- und Transaktionsgrenze. Kombiniert man diese Idee mit gutem objekt-orientiertem Design und berücksichtigt man hierbei zudem noch das Geheimnisprinzip, dann erhält man eine potentiell sehr saubere Entkopplung innerhalb einer Applikation.

Ich sage immer wieder gerne, dass man mit Aggregates sehr gute und wartbare Monolithen bauen kann, was trotz des derzeitigen Microservices-Trends für einige Teams eine bessere Option darstellt. Im Rahmen meines Workshops werden wir anhand einer Fallstudie ein komplexes Beispiel in Bezug auf Aggregates zerlegen und modellieren.

JAXenter: Welchen Trend außer DDD findest du im Bereich der Software-Architektur momentan besonders spannend – und warum?

Michael Plöd: Generell finde ich ein Rückbesinnen auf zahlreiche Grundlagen spannend. Dazu gehören zum Beispiel Event-getriebene Systeme, die an sich nichts neues sind, aber gerade im Bereich lose gekoppelter Microservices viele Vorteile aufweisen. Weiterhin finde ich das Zusammenwachsen von Architektur und Organisation sehr interessant, weil sich hierbei viele noch ungehobene Potentiale verstecken.

JAXenter: Vielen Dank für dieses Interview!

 

Software Architecture Summit vom 11. - 13. März in München

Technische und methodische Themen, Kommunikationstrends, Cloudlösungen, MLOps, Design und Psychologie

 

Geschrieben von: Hartmut Schlosser

Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser

Alle News zum Software Architecture Summit!