Skip to content
Alle Beiträge

Architekturarbeit im Zeitalter Cloud-nativer Architekturen und DevOps Teams - Teil 2

Visual_ebook_achitekturarbeit

Allgemeine Aufgaben eines Softwarearchitekten

Bevor wir uns mit den Aufgabenstellungen der Softwarearchitekten im Cloud-native-Umfeld auseinandersetzen, lohnt sich ein Blick auf die Lehrmeinung bzgl. der Aufgaben eines Softwarearchitekten.

Softwarearchitekten sind verantwortlich für die Erreichung der Qualität und der gewünschten Funktionalität eines softwarebasierten Systems. Zwar ist diese Rolle in allen Phasen des Software Lifecycles beteiligt, i.d.R. aber nicht für die Umsetzung der Funktionalität verantwortlich.

System- und Schnittstellenentwurf

Ein wichtiger Bestandteil des Aufgabenspektrums befasst sich logischerweise mit dem abstrakten high-level Entwurf der Systemkomponenten und deren Beziehungen (in Form von Schnittstellen) zueinander. Es geht darum, eine Abstraktion mit einem geeigneten Modul-Schnitt zu finden, der einerseits möglichst verständlich und fachlich getrieben sein sollte, andererseits im Sinne von 'divide et impera' die Gesamtkomplexität des Zielsystems in verdaubare Häppchen zerlegt, denen sich einzelne Entwicklungsteams parallel und möglichst unabhängig voneinander widmen können.

Qualitätsziele

Die Architektur eines Systems sollte dabei nachweislich von den für das Produkt relevanten Qualitätszielen (siehe ISO 25010) beeinflusst werden (z.B. über den Aufbau von Qualitätsbäumen bzw. CTQ Analysen).

Dabei muss der Architekt anhand der Anforderungen und Gespräche mit den Stakeholdern entscheiden, welche Qualitätsziele priorisiert werden. Es gibt durchaus komplementäre, unverträgliche Ziele, für die es einen geeigneten Trade-Off zu finden gilt.

Qualitätsszenarien & Fitness Functions

Mit Hilfe von messbaren, konkreten Qualitätsszenarien ("das System sollte performant sein" vs. "die Antwortzeit bei 100 parallel arbeitenden Benutzern sollte im Schnitt unter 100 ms liegen") kann die Systemarchitektur jederzeit hinsichtlich Tragfähigkeit überprüfbar sein. Am Ende werden diese Entscheidungen pragmatisch in einer zielgruppengerechten Architekturdokumentation erfasst.

Für die kontinuierliche Einhaltung von Architekturzielen und -vorgaben haben sich Fitness Funktionen bewährt. Dabei handelt es sich um statische Analysen, eine Menge an Regeln und Tests auf Architekt-Ebene, die idealerweise als fester Bestandteil der CI/CD Pipelines verankert sein sollten und ergo immer mitlaufen.

Arbeitsalltag eines Architekten

Einen großen Teil ihrer Arbeitszeit verbringen Softwarearchitekten allerdings in der Funktion als Ansprechpartner oder Advokat bzw. Vermittler für die unterschiedlichsten Zielgruppen. Ein Softwarearchitekt kommuniziert u.a. „das (nicht) Mögliche“ (Realitätscheck, Erwartungs-Management), macht versteckte Risiken sichtbar und verhandelt notwendige technische/architektonische Investments in das System mit Sponsoren, Projektleitern,

Auftraggebern und Fachbereichen. Zusätzlich wird durch eine enge Zusammen- und Mitarbeit mit den Entwicklungs-, Qualitätssicherungs- und Betriebsteams dafür gesorgt, dass die Architekturvision in der Realität auch die gewünschten Ziele erfüllt. Dabei wird der Sinn der Architektur vermittelt, gegen die Erosion der Architektur gekämpft, es werden technische Hypotheken dokumentiert, neue und bessere Feedbackmechanismen (Logging, Monitoring, Alerting) etabliert und vieles mehr. Und manchmal werden auch naturwissenschaftliche Gesetze ausgehebelt, wenn der Auftraggeber sich das so gewünscht hat.

Soft Skills & Verhalten

Neben den oben aufgeführten, formaleren Kriterien hat sich noch zusätzlich und ergänzend ein "Knigge" für Architekten etabliert, der aus der Praxis gute und weniger gute Verhaltensweisen von Architekten widerspiegelt und kritisch reflektiert. So ist z.B. eine dogmatische, belehrende Haltung beim Umgang mit Entwicklerteams wenig zuträglich. Der Architekt sollte für Ideen und Impulse aus den Entwicklungs-Teams ein offenes Ohr haben - Stichwort Schwarm-Intelligenz: Hive Minds kommen schließlich meistens zu besseren Ergebnissen als einzelne Personen.

Ausblick

Welchen Einfluss haben Cloud-native Technologien und die daher eingehenden neuen Arbeitsweisen auf das Rollenverständnis, die Aufgaben und Arbeitsweisen eines Software-Architekten? Wie gestaltet sich die Zusammenarbeit insbesondere mit DevOps Teams, die zunehmend mehr Autonomie haben und was gibt es da zu beachten?

Das nächste Kapitel "Cloud-native Technologie schafft neue Möglichkeiten" liest du im nächsten Blogbeitrag am 25. November 2022.

Weitere Beiträge