Suche
Interview mit Andreas Weigel

„Software-Architekten sind überwiegend Change Manager“

Hartmut Schlosser

Andreas Weigel

Wie verändert sich in Zeiten von Agile, DevOps und DDD die Rolle des Software-Architekten? Andreas Weigel (synyx GmbH & Co. KG) gibt Antworten im Interview zur W-JAX 2018.

JAXenter: Wie schafft man es, als Software-Architekt den richtigen Mix aus Stabilität und Flexibilität zu finden? 

Andreas Weigel: Stabilität und Flexibilität spielt an unterschiedlichen Stellen eine Rolle. Generell treffen wir viele Entscheidungen, die darauf einzahlen, ein autarkes Entwicklungsteam zu sein. Das betrifft insbesondere Schnittstellen zu anderen Teams sowie den vertikalen Schnitt der Software, um ein Feature ganzheitlich ausliefern und verantworten zu können. Die dadurch gewonnene Stabilität nach außen gibt uns auf der anderen Seite die Flexibilität innerhalb den von uns verantworteten Produkten. Außerdem streben wir stets nach Einfachheit in unserem Architekturdesign, etwa durch das Verfolgen von Prinzipien wie YAGNI und KISS.

JAXenter: Einerseits ist man als Software-Architekt also eine Art Change Manager, andererseits eine Art Kirchenbauer, bei dem es um Dinge wie Planbarkeit, Langlebigkeit und Sicherheit geht. Wie siehst du dich?

Agilität ist die Antwort auf die sich ständig verändernden Anforderungen heutzutage.

Andreas Weigel: Beides hat Anteile an meiner Arbeit, die Rolle des Software-„Change Managers“ überwiegt jedoch. Ein agiler Entwicklungsprozess ist unsere Antwort auf die sich ständig verändernden Anforderungen der schnelllebigen Branchen heutzutage. Im Kern gibt uns der iterative Charakter dieser agiler Prozesse die Chance, früh Feedback zu erhalten und darauf mit Anpassungen zu reagieren. Damit muss die Architektur stets flexibel und erweiterbar gedacht werden. Dennoch gehört eine Architekturvision als grobe Leitplanke dazu, um zu gewährleisten, dass das Team ein einheitliches Bild hat und ein gemeinsames Ziel ansteuert. Also einige Impulse als Kirchenbauer, aber tatsächlich überwiegend als Change Manager.

JAXenter: Wie hat die DevOps-Bewegung die Rolle des Software-Architekten verändert?

Andreas Weigel: Nicht nur ein Architekt, sondern das gesamte Team muss sich den Betriebsthemen öffnen und die DevOps-Bewegung als Chance wahrnehmen, das entwickelte Produkt ganzheitlich zu verantworten. Aus dem Entwicklungsteam wird ein crossfunktionales Produktteam mit sinkenden Abhängigkeiten bzw. sinkendem Kommunikationsaufwand und folglich schnellerer Reaktionszeit.

„Infrastructure-as-Code“-Werkzeuge erleichtern den Einstieg in die Betriebsthemen und ermöglichen gleichzeitig einen hohen Automatisierungsgrad. Natürlich sieht sich das Team mit neuen Aufgaben konfrontiert. An dieser Stelle sollte die Architektenrolle Offenheit gegenüber der neuen Thematik vorleben. Abhängig von vereinbarten Service Level Agreements, könnte zum Beispiel eine (Ruf-)Bereitschaft zum Aufgabengebiet des Teams werden, was aus Erfahrung positive Auswirkungen auf die Stabilität des Systems hat, da niemand nachts geweckt werden will.

JAXenter: Ein weiterer Trend ist aktuell, das Design einer Software an den fachlichen Domänen auszurichten. Dafür muss man Entwickler und Fachexperten an einen Tisch bringen. Ist man da als Software-Architekt nebenbei auch ein Projektmanager?

Andreas Weigel: Für den Erfolg eines Produktes sind manchmal Prozessänderungen erforderlich, die aus dem Team heraus z.B. von einem Architekten gefordert werden. Wie hoch der notwendige Aufwand ist, hängt von der Flexibilität der Organisation ab. Maßgeblich sind dabei die Länge der Kommunikationswege sowie das Vertrauen untereinander. Beide Faktoren nehmen zu Projektbeginn mehr Zeit in Anspruch. Durch zunehmende direkte Kommunikation auf der einen Seite und Projekterfolge auf der anderen Seite nimmt der Aufwand für Aufgaben neben der reinen Softwareentwicklung über die Projektlaufzeit ab.

Im aktuellen Kundenprojekt haben wir etabliert, dass Akzeptanztests zusammen mit dem Product Owner, dem Functional Owner und einem Entwickler erstellt werden. Die Tests dienen als Contract zwischen den Parteien, schärfen das Problemverständnis und schaffen Vertrauen in die Software und das Team. Zu Beginn hat der ungewohnte Prozess mit den neuen Beteiligten mehr Zeit in Anspruch genommen. Mittlerweile ist er fester Bestandteil des Sprints. Ich sehe den Architekten weniger als Projektmanager, auch wenn er vor allem zu Beginn eines Projektes neue Prozesse etablieren oder bestehende Prozesse adaptieren muss. Der Projektmanager bettet das Produkt in einen größeren Kontext ein und verantwortet weitere Themen wie Personal und Budget.

JAXenter: „Observability in einer Microservice-Welt“ lautet dein Talk auf der W-JAX. Dabei beschreibst du eine Migration einer bestehenden Anwendung zu einer verteilten Systemarchitektur. Weshalb ist dabei das Thema „Observability“ so wichtig?

Aktuell beschäftigen mich Fragestellungen in Bezug auf die Vertikalisierung eines Produktes, die auf autarke Teams abzielen.

Andreas Weigel: „Observability“ als Ausdruck der unterschiedlichen Beobachtungsmöglichkeiten ist in verteilten Systemarchitekturen wichtig, um das Verhalten der Software nachvollziehen zu können. Während man bei monolithischen Anwendungen eine einfache Möglichkeit hat, die Anwendung zu debuggen, ist die Analyse über Servicegrenzen hinweg ein höherer Aufwand. Damit sieht man sich schon in der Entwicklungsphase mit neuen Herausforderungen konfrontiert.

In dem Talk beschreiben wir, welchen Informationsgehalt Techniken wie zentrales Logging, Metrics und Tracing haben und wie sie sich unterscheiden. Außerdem, wie sie dabei helfen können, Anomalien zu entdecken und zu verstehen, ob sich die Software in Produktion so verhält, wie es erwartet wird.

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

Andreas Weigel: Aktuell beschäftigen mich Fragestellungen in Bezug auf die Vertikalisierung eines Produktes, die auf autarke Teams abzielen. Der fachliche oder organisatorische Schnitt, sowie die Implikation auf die Architektur sind nur eine Facette davon. Die eventuell folgende Integration auf Frontendebene oder ein Betrieb, der definierten Service Level Agreements genügt, sind dabei weitere wichtige Themen.

JAXenter: Vielen Dank für dieses Interview!

Andreas Weigel ist Softwareentwickler und Berater bei synyx GmbH & Co. KG, wo er seit mehreren Jahren verschiedene Kunden bei der Entwicklung von Softwarelösungen im agilen Umfeld unterstützt. Dabei beschäftigt er sich primär mit Architekturentscheidungen, der vollumfänglichen Automatisierung des Entwicklungsprozesses sowie der Umsetzung von individuellen Lösungen.
Geschrieben von
Hartmut Schlosser
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
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: