Zum Inhalt springen
iSAQB-blog-article-Agile-Toth

Agile Software­architektur: Von der Idee zum System – aber nie ganz wie geplant

Ein Artikel von Stefan Toth

Urlaub ist toll. Wochenlang habe ich mich darauf gefreut und Tage mit der Routen­planung und Hotel­bu­chungen verbracht. Nun stehe ich mit meiner Familie vor der Haustür, das Taxi kommt nicht und mein 5‑jähriger Sohn jammert über die Hitze und zu warten findet er langweilig.

Als das Taxi endlich auftaucht, fehlt der bestellte Kindersitz aber irgendwie schaffen wir es zum Bahnhof. Viel zu spät kommen wir am Urlaubsort an und erfahren vor erst Ort, dass die Unter­kunft wegen kurzfris­tiger Umbauten nicht wie geplant bewohnbar sei. Wir suchen uns ad hoc ein Hotel und sind uns nicht mehr ganz so sicher, wie toll Urlaub eigentlich ist…

Natürlich ist Urlaub toll. Aber man muss schon manchmal zugeben: So reibungslos und erholsam, wie gedacht, ist es dann doch nicht immer. Mit viel Reise­er­fahrung entwi­ckelt man eine gewisse Gelas­senheit und weiß mit Überra­schungen umzugehen. Es ist lässt sich eben nicht alles zu kontrol­lieren und Komödie ist schließlich nur Drama plus Zeit.

Software­architektur ist auch toll. Ich behaupte, dass Urlaube und Archi­tek­turen einige Paral­lelen aufweisen. Auch hier halten Pläne meist nur bis zum ersten Kontakt mit der Umsetzung. Was wir am Ende bauen, ist nie das, was wir anfangs auf ein White­board gemalt haben. Das ist kein Versagen, sondern Normalität.

Moderne Software­ent­wicklung ist schnell, verteilt und geprägt von ständigem Wandel. Neue Frame­works, Tools, Platt­formen und Paradigmen drängen sich auf, Entschei­dungen entfalten unerwartete Effekte und Techno­logien offen­baren ungeahnte Probleme. Hätten wir das nicht gleich richtig machen können? Hätte man das nicht vorher heraus­finden können? Doch mit viel Archi­tek­tur­er­fahrung entwi­ckelt man eine gewisse Gelas­senheit und weiß mit Überra­schungen umzugehen. Es ist eben nicht alles kontrol­lierbar und Komödie ist schließlich nur Drama plus Zeit.

 

Archi­tektur und Agilität als idealer Partner

Moderne Defini­tionen von Software­architektur haben eins gemeinsam: Sie behaupten, die Disziplin kümmere sich um zentrale und später nur schwer änderbare Kernele­mente eines Systems. Martin Fowler meint: „To me the term architecture conveys a notion of the core elements of the system, the pieces that are difficult to change. A foundation on which the rest must be built.“ In den 1980ern waren diese grund­le­genden, schwer änder­baren Entschei­dungen haupt­sächlich struk­tu­reller Natur. Wie zerfällt unser System sinnvoll in Kompo­nenten? Welche Schnitt­stellen sollte es geben? Wie legen wir Daten ab?

Program­mier­sprachen, Vernetzung und Virtua­li­sierung von Systemen nahmen in den 1990ern zu. IBM-Mainframes und Unix-Worksta­tions waren zuvor fast alter­na­tivlos. Neue Server­tech­no­logien tauchten auf. Und allein 1995 erblickten Windows NT, der Apache HTTP Server und Program­mier­sprachen, wie Java, PHP, JavaScript, Ruby, Delphi das Licht der Welt. Sie brachten auch neue Muster und Imple­men­tie­rungs­stra­tegien mit sich. Mit Etablierung des Internets wurden parallel die Nutzer­gruppen von Software größer und verteilter. Software musste nicht mehr nur wartbar, sondern auch sicher, zuver­lässig, benutzbar oder skalierbar sein – unter komple­xeren techni­schen Rahmenbedingungen.

Die heutige Menge an Program­mier­frame­works, ‑umgebungen und ‑werkzeugen ist enorm. Im KI-Bereich kommen täglich neue Frame­works hinzu. Alle relevanten Techno­logien zu überblicken ist schwierig – geschweige denn, tiefe Expertise in allen Bereichen zu besitzen.

Es entstehen verwobene Designauf­gaben und Personen mit unter­schied­lichen Exper­tisen müssen dynamisch zusam­men­ar­beiten, um gute Software zu bauen. Spätestens seit dem agilen Manifest von aus dem Jahr 2000 begleitet Agilität die notwendige Vernetzung von Rollen und die Feedback-orien­tierte Arbeit an Software. Sie wird damit zum idealen Partner einer zeitge­mäßen Architekturdisziplin.

 

Abbildung 1

Abbildung 1 – Das Manifest agiler Archi­tek­tur­arbeit [1]

 

Abbildung 1 zeigt das „Manifest“ für moderne Archi­tek­tur­arbeit mit den vier zentralen Werte­paaren: konti­nu­ier­liche Verbesserung, zielori­en­tiertes Handeln, Kolla­bo­ration und breit gestreute Verant­wortung. Die Basis dafür bilden u.a. Arbeiten von David J. Snowden [2]. In seinen Beschrei­bungen zum Umgang mit komplexen Problem­stel­lungen empfiehlt er eine Arbeits­weise, die auf Experi­mente optimiert ist: Auspro­bieren – Beobachten – Reagieren. Diese breit gedachten theore­ti­schen Grund­lagen lassen sich gut auf Software­architektur übertragen. Das Manifest zeigt einige Grund­ideen auf: die engma­schige Vernetzung von Konzep­tions- und Umsetzungsarbeit.

 

Die zwei Modi agiler Architekturarbeit

Wer Software­architektur in einem agilen Umfeld betreibt, bewegt sich idealer­weise zwischen zwei Arbeitsmodi.

Modus 1: Struktur durch Guardrails

Teil von Archi­tek­tur­arbeit ist es, Leitplanken (Guard­rails) zu etablieren, um die Software­ent­wicklung über die Zeit hinweg in eine gewünschte Richtung lenken. Das können grund­le­gende Entschei­dungen zu Program­mier­sprachen, Infrastruktur, Daten­haltung oder Sicher­heits­mo­dellen sein:

  • Technische Prinzipien: „Alle internen Aufrufe müssen verschlüsselt sein.“
  • Nicht-funktionale Anfor­de­rungen: „Latenz­zeiten müssen immer unter 200 ms liegen.“
  • Referenz­muster: „Diese Docker-Base-Images sind immer zu verwenden.“
  • Automa­ti­sierte Prüfungen: „In der CI/CD-Pipeline werden Abhän­gig­keiten zu Fremd­bi­blio­theken geprüft.“

Guard­rails verhindern Wildwuchs und sollen Teams Orien­tierung geben, sie in der Umsetzung entlasten und Raum für fokus­sierte Kreati­vität schaffen. Würde man NUR in diesem Modus verharren, käme Archi­tektur sehr klassisch daher und würde bald auch als abgehoben und bremsend wahrge­nommen werden. In agilen Kontexten wollen wir Guard­rails deshalb stetig hinter­fragen und weiter­ent­wi­ckeln. Dafür sollten sie schlank ausge­prägt sein und nicht zu viele Ressourcen binden.

Modus 2: Archi­tektur durch Emergenz

Oft wissen Teams erst in der Umsetzung oder nach Auslie­ferung, ob ein Service wirklich skaliert, eine neue Idee prakti­kabel ist oder eine Änderung auf Dauer trägt. Statt eines ausge­feilten Plans brauchen wir Erfah­rungs­aufbau. In diesem zweiten Modus wird Archi­tektur zur Hypothese, die getestet wird:

  • durch kleine Experi­mente (Spikes),
  • durch Auswerten von Telemetrie und Logs,
  • durch Feature Flags oder Shadow Deployments,
  • durch bewusste Kommu­ni­kation der Erkennt­nisse (z. B. in Commu­nities oder ADRs).

Diese Form der Archi­tek­tur­arbeit lebt vom Beobachten, Probieren und Lernen. Die besten Ideen entstehen dabei nicht im Meetingraum – sondern beim Debuggen, Reflek­tieren über System­ver­halten, beim Reiben an einem schwie­rigen Problem. Die Arbeit am echten Problem erzeugt über die Zeit neue Guard­rails, weicht ggf. bestehende auf oder erzeugt eine „gelebte Archi­tek­tur­praxis“, die Teams weicher leitet als es Leitplanken täten.

Zur Ermög­li­chung dieser Bottom-Up Archi­tektur bedarf es ausrei­chend Zielver­ständnis und Kontext bei den Umset­zenden, genügend Raum für Austausch zwischen Teams und rigoros gelebte Feedback­me­cha­nismen auf techni­scher Ebene. Das ist jener Teil von Archi­tek­tur­arbeit, der seit dem Jahr 2000 stetig wichtiger wird. Die meisten Praktiken, die wir „agiler Archi­tek­tur­arbeit“ zuordnen, versuchen diesen Modus effektiv und prakti­kabel zu machen.

 

Abbildung 2 – die zwei Modi moderner Architekturarbeit

 

Konkrete Praktiken zur Verzahnung

Die erfolg­reiche Etablierung emergenter Archi­tek­tur­praxis als Ergänzung zu klassi­schen Leitplanken, bedarf einiger Praktiken. Zum Abschluss seien einige genannt, ohne sie erschöpfend zu betrachten, wobei Inter­es­sierten besonders [1] ans Herz gelegt sei:

  • Konti­nu­ier­liche Architektur‑Hypothesen: Archi­tektur wird als laufende, messbare Serie von Experi­menten statt als einma­liges Design verstanden. Explo­rative Spikes mit Rückkopplung testen neue Ideen realis­tisch aus.
  • Quali­täts­ziele als Treiber: Quali­täts­ziele sind zentral für Archi­tek­tur­arbeit und deshalb auch allen Mitwir­kenden bekannt. Sie sind auch in Backlogs sichtbar.
  • Feedback‑First: Health‑ & Statistik‑Checks sind zentral, Archi­tek­tur­regeln werden konti­nu­ierlich technisch geprüft.
  • Weiche Standards, harte Grenzen: Nicht alles wird vorge­schrieben. Es gibt verbind­liche Prinzipien und Best Practices neben expli­zitem Freiraum für Innovation.
  • Leicht­ge­wichtige Reviews und Entschei­dungs­formate: Niedrig­schwellige Austausch­formate wie Peer Reviews, Archi­tektur-Office-Hours oder Entschei­dungs-Workshops fördern Reflexion ohne Bürokratie.
  • Orga‑Arch‑Kopplung: Gute Archi­tektur braucht auch auf organi­sa­to­ri­scher Seite Voraus­set­zungen. So muss z.B. der Teamschnitt den fachlichen Grenzen gehorchen oder die Verant­wortung der Teams zur erwar­teten Innova­ti­ons­be­tei­ligung passen.

 

Quellen

[1]  Toth, Stefan: „Vorge­hens­muster für Software­architektur. Kombi­nierbare Praktiken in Zeiten von Agile und Lean“; Carl Hanser Verlag, 2025

[2]  Snowden, David J.; Boone, Mary E.: „A Leader’s Framework for Decision Making“; in: Harvard Business Review, 2007

 

Autor

Stefan Toth ist Gründer der embarc GmbH und Autor zahlreicher Artikel sowie der Bücher „Vorge­hens­muster für Software­architektur“ und „Software-Systeme reviewen“. Als Berater begleitet er Start-ups, Mittel­ständler und Großkon­zerne bei der organi­sa­to­ri­schen, metho­di­schen und techni­schen Neuausrichtung.

Teilen Sie diesen Artikel:

Zum Thema passende Artikel

Bleiben Sie informiert mit dem iSAQB®-Newsletter!

Nach oben scrollen