Axel Feix spricht im Interview darüber, was Anpassungsfähigkeit für ihn als Softwarearchitekten bedeutet, warum sie für den Projekterfolg so wichtig ist und welcher Druck damit auch verbunden sein kann.

Axel Feix hat langjährige Projekterfahrung als Analyst und Softwarearchitekt. Er unterstützt Kunden als Senior Consultant und Trainer bei der Einführung und Umsetzung von Software-Engineering, Requirements-Engineering, Softwarearchitektur-Management und Architekturdokumentation. Er interessiert sich für was fliegt, alles was man visualisieren und spielen kann, und was die Welt zusammenhält.

Was bedeutet es für dich als Softwarearchitekt anpassungsfähig zu sein?

Feix: Nachdem die Definitionsphase im Projekt abgeschlossen ist und feststeht, wie die Softwarearchitektur grundsätzlich aussehen soll, sind die Leitplanken für den Softwarearchitekten vorgegeben. Wenn die Entscheidung auf eine Web-Anwendung gefallen ist, dann wird daraus keine Embedded-Anwendung mehr. Die Softwarearchitektur muss in dem festgelegten Rahmen aber trotzdem verhandelbar bleiben, ohne dabei den Blick auf das Endprodukt zu verlieren. Welches Framework wird in welcher Version verwendet? Welche API wird eingesetzt? Das sind Fragen, über die noch diskutiert werden kann und muss.

Als Softwarearchitekt finde ich es wichtig, mir darüber im Klaren zu sein, dass ich nicht die Weisheit mit Löffeln gefressen habe. Lösungen werden nicht nur fachlich, sondern auch technisch im Team entschieden und das heißt, sich auf gute Argumente einzulassen und aufgeschlossen zu sein. Wenn ein Entwickler oder eine Entwicklerin etwas Cleveres auf die Beine gestellt hat, dann sollte das innerhalb der Leitplanken auch umgesetzt werden. Nur so entsteht am Ende eine gute und vor allem langlebige Softwarearchitektur.

Warum ist die Anpassungsfähigkeit für einen Softwarearchitekten so wichtig?

Feix: Anpassungsfähigkeit für mich als Softwarearchitekt ist wichtig, weil heutzutage alles agil entwickelt wird. Dabei kommt es immer wieder vor, dass Dinge wichtig werden, an die anfangs nicht gedacht wurde oder die keinen hohen Stellenwert hatten. Da denke ich zum Beispiel an die neuen Anforderungen, die es seit der Pandemie in Bezug auf Behörden gibt. Diverse Angelegenheiten, die Bürgerinnen und Bürger immer vor Ort geregelt haben, müssen jetzt auch auf den mobilen Endgeräten funktionieren.

Der technische Wandel ist schnell. Es heißt, etwa alle zwei Jahre werden die alten Technologien durch neue Technologien ersetzt und das Know-how bedarf einer Auffrischung. Wer sich bemüht, immer vorne auf der Buchwelle mitzuschwimmen, um auf dem neuesten Stand zu bleiben, der kann auch anpassungsfähig auf den technischen Wandel reagieren. Neu ist aber nicht immer besser. Anhand von Erfahrungswerten sollte kritisch hinterfragt werden, ob und wie neue Technologien zum eigenen Vorhaben passen und wie sie gewinnbringend eingesetzt werden können. Was heute gehypt wird, kann in wenigen Jahren schon wieder von der Bildfläche verschwinden.

Deshalb müssen Softwaresysteme von Anfang an anpassungsfähig gebaut werden, aber auch als Softwarearchitekt sollte ich mich auf neue Entwicklungen einlassen. Anpassungsfähigkeit ist ein lebenslanger Lernprozess.

In welchen Phasen des Projekts oder in welchen Situationen braucht ein Softwarearchitekt besonders viel Anpassungsfähigkeit?

Feix: Als Softwarearchitekt brauche ich zu Beginn des Projekts besonders viel Anpassungsfähigkeit, bis die Softwarearchitektur durch das Board genehmigt ist. Im Board gibt es viele Stakeholder und alle Interessen sollten angemessen berücksichtigt oder wegdiskutiert werden. Wenn die Softwarearchitektur dann auf die Projektwirklichkeit trifft und das umgesetzt werden soll, was konzipiert wurde, dann müssen die nicht-funktionalen Anforderungen wie Barrierefreiheit, Skalierbarkeit und IT-Sicherheit bedacht werden. Dazu sind eine Reihe von Workshops notwendig, um die Entwicklungsteams auf ihre Aufgaben vorzubereiten und für die Herausforderungen zu sensibilisieren. Gute Ideen vonseiten des Teams sollten in die Detaillierung der Softwarearchitektur einfließen und in der Architekturdokumentation dokumentiert werden. Außerdem kann es Überraschungen organisatorischer Art geben, weil ein Framework oder eine API nicht mehr verfügbar ist, auf die man gesetzt hat. Oder Vertragspartner wurden gewechselt, sodass mit neuen Datenbanken und Produkten gearbeitet werden muss.

Wann herrscht ein ‚zu viel‘ an Anpassungsfähigkeit und wie lässt sich dieses Problem in der Praxis vermeiden?

Feix: Ein „zu viel“ an Anpassungsfähigkeit in der Softwarearchitektur herrscht dann, wenn es keine klaren Strukturen und Verantwortlichkeiten mehr gibt. Wenn es mehrere APIs gibt, die das Gleiche tun, nur an anderen Stellen in der Softwarearchitektur. Das verschlammt die ganze Struktur. Bei Problemen sollte der Softwarearchitekt meiner Meinung nach immer auf das Team zurückgreifen. Er ist bestenfalls Teil eines Querschnittteams oder einer Community of Practice (COP) mit den wichtigsten Vertretern aus Entwicklung, UX-Design, Test und so weiter. Insbesondere die Lead Entwickler spielen eine wichtige Rolle. Die Softwarearchitektur sollte vorgestellt werden, sodass das Team Feedback geben kann und Kompromisse gefunden werden, die die Entwickler und den Architekten zufriedenstellen. Dabei kann dann auch mal klassisch über Optionen abgestimmt werden. Auch hier ist wichtig: Immer im Rahmen der Leitplanken und das vereinbarte Endprodukt nicht vergessen!

Ich finde es generell wichtig, dass man sich auf eine gemeinsame Softwarearchitektur einschwört und das Architekturmanagement im Team am Leben erhält. Wenn dann mal neue Leute dazukommen, lassen sich schnell mithilfe des Teams und der Architekturdokumentation alle auf den gleichen Wissensstand bringen. So gibt es nicht nur einen gemeinsamen Code, sondern auch eine gemeinsame Softwarearchitektur. Wenn ich als Entwicklungsteam an der Entstehung und der Entwicklung von etwas beteiligt bin, kann ich mich auch besser daranhalten.

Die Welt verändert sich immer schneller. Verspüren Softwarearchitekten einen Druck anpassungsfähig zu sein und wenn ja, ist dieser über die letzten Jahre gewachsen?

Feix: Ich glaube, dass der Druck gewachsen ist, weil das IT-Management gerne sagt, dass Softwarearchitekten nur im ersten Teil eines Projekts notwendig sind. Wenn die Softwarearchitektur erst mal steht, haben sie nichts mehr zu tun, aber das stimmt natürlich nicht. Bis das Projekt live geht, gibt es ständig neue Anpassungen, die Prüfungsbedarf haben. Neben Frameworks, die evaluiert und Architekturentscheidungen, die getroffen werden müssen, achtet der Softwarearchitekt im Sprint darauf, dass nicht nur fachliche, sondern auch technische Anforderungen umgesetzt werden. Gerade das Refactoring ist wichtig, damit eine Softwarearchitektur klar bleibt und nicht versumpft. Mit jedem Sprint lagert sich ein kleines bisschen Bodensatz an, der aus neuen Anforderungen und neuen Funktionalitäten besteht. Der Softwarearchitekt schöpft diesen Bodensatz ab, damit neue Anforderungen umgesetzt werden können. Neue Anforderungen vom Fachteam müssen zusammen mit dem PO und dem Entwicklungsteam natürlich auch auf Umsetzbarkeit und notwendige Änderungen an der Architektur geprüft werden.

Bei all diesen Aufgaben ist es von großem Vorteil, als Softwarearchitekt anpassungsfähig zu sein, um verschiedene Rollen einnehmen zu können. Für das Team ist es beispielsweise wichtig, den Softwarearchitekten als starken Fürsprecher zu haben, wenn es um technische Schulden geht und der dann auch vor der Projektleitung dafür eintritt, die Softwarearchitektur sauber zu halten.

 

Vielen Dank an Axel Feix für dieses Interview.

 

Was sagen Sie zum Thema Anpassungsfähigkeit bei Softwarearchitekt:innen?

Wie würden Sie auf die Fragen antworten? Wir freuen uns auf den Austausch in den Kommentaren!