Suche
JAX Countdown

Der Agile Architekt: Warum es nicht genügt, ein guter Programmierer zu sein

Hartmut Schlosser

JAXenter: Auf der JAX sprechen Sie auch über emergente Architekturen. Architekturen, die aus dem Nichts erscheinen?

Uwe Friedrichsen: Emergenz ist laut Wikipedia als die spontane Herausbildung von neuen Eigenschaften oder Strukturen eines Systems infolge des Zusammenspiels seiner Elemente definiert. Anders ausgedrückt ist mit Emergenz das gemeint, was umgangssprachlich mit “Das Ergebnis ist mehr als die Summe der Teile” umschrieben wird. Im Zusammenhang mit Architektur bedeutet Emergenz, dass man eine Reihe einfacher Prinzipien und Praktiken befolgt und dadurch eine gute – manche behaupten auch: optimale – Architektur erhält, ohne diese Architektur jemals explizit designed zu haben. Konkret werden als Praktiken meistens ein ständiger Zyklus aus Implementierung und Refactorings angeführt und als Prinzipien bekannte Design-Prinzipien wie z.B. die SOLID-Patterns.

JAXenter: Wo liegen die Grenzen am Ansatz der emergenten Architektur?

Uwe Friedrichsen: Das Problem liegt darin, dass der emergente Ansatz einen wichtigen Teil der Architekturaufgaben ausblendet. Der Emergenzansatz fokussiert darauf, eine möglichst gut verständliche Software-Struktur zu finden. Das ist eine wichtige Aufgabe von Architektur, da man überhaupt nur sinnvoll an einem System arbeiten kann, das man versteht. Arbeitet man an einem System, das man nicht versteht, dann fängt man an zu raten, was konkret zu machen ist, und die Folgen sind meist – freundlich formuliert – suboptimal.

Es gibt aber eine weitere, große Aufgabe, derer sich Architektur annehmen muss: Ein System soll möglichst leicht änderbar sein, d.h. es soll mit möglichst wenig Aufwand möglich sein, die Mehrzahl der zukünftigen Änderungsanforderungen umzusetzen. Es reicht also nicht, eine verständliche Systemstruktur zu haben; das System soll auch noch so strukturiert sein, dass die zukünftigen Änderungen kostengünstig und möglichst einfach umsetzbar sind. Diese Anforderung erfüllt aber bei weitem nicht jede verständliche Struktur, sondern nur eine sehr kleine Teilmenge aus der Menge der verständlichen Strukturen.

Emergente Architekturentwicklung liefert (irgend)eine verständliche Struktur, wobei es eher zufällig ist, welche der vielen möglichen verständlichen Strukturen erreicht wird. Ob diese Struktur dann aber auch änderungsfreundlich bzgl. der zukünftigen Anforderungen ist, weiß man nicht, da emergente Architektur dieses Thema nicht adressiert: Manchmal hat man Glück, meistens aber nicht.

Um verständliche und änderungsfreundliche Systeme zu bekommen, reicht emergente Architektur alleine also nicht. Wir benötigen hierfür zusätzlich explizite Architekturarbeit. Der gute Teil der Nachricht ist: Das heißt nicht, dass wir Modellmonster und Elfenbeintürme brauchen. In meinem Vortrag werde ich auch ein wenig darüber erzählen, mit wie wenig zusätzlichem Aufwand man auskommen kann. Nur an diesem zusätzlichen Aufwand kommt man meiner Erfahrung nach nicht vorbei.

JAXenter: Vielen Dank für dieses Gespräch!

Uwe Friedrichsen hat langjährige Erfahrung als Architekt, Berater und Projektmanager. Als CTO der codecentric AG beschäftigt er sich mit neuen Konzepten, Ansätzen und Trends, insbesondere in den Gebieten Architektur, Agilität und moderne Technologien. Er ist außerdem Autor diverser Artikel und diskutiert seine Ideen regelmäßig auf Konferenzen.
Geschrieben von
Hartmut Schlosser
Kommentare

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.