Architektur

Was Software-Architekten von der Soziologie lernen können

Software wird von Menschen gemacht – Gruppen von Menschen meist, die miteinander kommunizieren. Nun ist die Wissenschaft, die sich mit Gruppen von Menschen beschäftigt, die Soziologie. Doch wie kann die junge Disziplin der Software-Entwicklung von den gesammelten Erkenntnissen der Soziologie profitieren? Die Software-Architekten Dr. Christian Mennerich und Frederick Meseck (synyx GmbH & Co KG) wagen auf der JAX 2020 den Blick über den Tellerrand. In ihrer Session Softwareentwicklung – systemisch-agil gedacht bringen sie die soziologische Systemtheorie nach Luhmann mit Software-Entwicklungsthemen wie Agilität, DevOps und Domain-driven Design zusammen. Wir haben nachgehakt!

Gegen den Trend: Ein Plädoyer für mehr ganzheitliche Architekturarbeit in der IT

Architekturarbeit in der IT ist seit vielen Jahren ein schwieriges und häufig missverstandenes Thema. Dazu kommt, dass die Effekte der Hyperspezialisierung und Technologieexplosion dazu führen, dass IT-Architekturen die eigentliche Problemstellung oft immer schlechter unterstützen. Man findet immer häufiger One-Size-fits-all-Lösungen oder rein hypegetriebene Architekturen. Trotzdem deutet nichts auf eine Umkehr dieses Negativtrends hin. Zeit für eine Bestandsaufnahme und einen Blick auf die daraus resultierenden Probleme für die Architekturarbeit.

Softwarearchitektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Softwaresystems und ist zentral für den Erfolg eines Projekts. Deswegen ist Softwarearchitektur so wichtig. Aber in Wirklichkeit ist Softwarearchitektur noch viel mehr, und eine erfolgreiche Softwarearchitektur erfordert viele, teilweise überraschende Maßnahmen.

Gegen den Trend: Plädoyer für mehr ganzheitliche Architekturarbeit in der IT

Architekturarbeit in der IT ist seit vielen Jahren ein schwieriges und häufig missverstandenes Thema. Dazu kommt, dass die Effekte der Hyperspezialisierung und Technologieexplosion dazu führen, dass IT-Architekturen die eigentliche Problemstellung oft immer schlechter unterstützen. Man findet immer häufiger One-Size-fits-all-Lösungen oder rein hypegetriebene Architekturen. Trotzdem deutet nichts auf eine Umkehr dieses Negativtrends hin. Zeit für eine Bestandsaufnahme und einen Blick auf die daraus resultierenden Probleme für die Architekturarbeit.

Hearts ist Trumpf! Entwurf einer funktionalen Softwarearchitektur

Der Entwurf von nachhaltigen Softwarearchitekturen ist eine Herausforderung: Mit der Größe steigt in vielen klassisch objektorientierten Softwareprojekten die Komplexität überproportional an. Durch viel Disziplin und regelmäßige Refaktorisierungen lässt sich das Problem eine Weile in Schach halten, aber die wechselseitigen Abhängigkeiten und komplexen Abläufe von Zustandsveränderungen nehmen mit der Zeit trotzdem zu. Die funktionale Softwarearchitektur geht an die Strukturierung großer Systeme anders heran als objektorientierte Ansätze und vermeidet so viele Quellen von Komplexität und Wechselwirkungen im System.

Vom Monolith über modulare Architekturen zu Microservices mit DDD

In jedem Unternehmen gibt es große Softwaresysteme, die über viele Jahre weiterentwickelt wurden und deren Wartung Jahr für Jahr immer zäher und teurer wird. Vor dem Hintergrund neuer Architekturparadigmen wie Microservices sollen diese Systeme nun modern, skalierbar und flexibel werden. Dabei ist die Hoffnung, dass man sich der großen, schwerfälligen Monolithen entledigen kann, indem man sie in kleinere, besser zu beherrschende Microservices zerlegt.

DDD: Taktisches Design – Architektur innerhalb eines Bounded Context

In Teil 2 dieser Serie [1] haben uns Carola Lilienthal und Michael Plöd gezeigt, wie man eine Domäne in mehrere Bounded Contexts aufteilt. Dabei erhalten wir statt einem großen, schwer verständlichen und schwer wartbaren Domänenmodell nun mehrere, besser handhabbare Domänenmodelle. In diesem Teil der Serie schauen wir darauf, wie man das einzelne Domänenmodell konkret implementieren kann.

Abwärtskompatible APIs in der Praxis

Wenn ein API erst einmal live ist, ist es nicht mehr so einfach, es zu ändern. Doch jede noch so gut definierte Schnittstelle kommt irgendwann an den Punkt, an dem sie weiterentwickelt werden muss; sei es nur, weil sich die Anforderungen geändert haben. Hier kommt die Abwärtskompatibilität in Spiel. Arne Limburg erklärt in seiner Session auf der JAX 2019, welche Herausforderungen bei APIs zu bewältigen sind.