Während die Skyline unserer Softwarewelt nach wie vor von Monolithen geprägt ist, hat sich der Trend zu flexiblen Architekturmodellen mit Microservices, Continuous Deployment, DevOps und hohen Automatisierungsgraden auf möglichst allen Ebenen inzwischen durchgesetzt. Und in der Tat: kompaktere, weitestgehend autarke Softwaremodule mit eigenen spezialisierten Teams bieten eine Menge Vorteile – von der Konzeption über Entwicklung und Testen bis in die Wartung. Verbesserte Stabilität, adaptive Reaktion auf veränderliche Anforderungen, Effizienz- und Kostenvorteile in der Weiterentwicklung sind Argumente, bei denen jedes Entscheiderherz höher schlagen sollte.
Aus architektonischer Sicht ist eine flexible Sortwarearchitektur allerdings leichter gesagt, als getan. Welche Methodik ist für mein Projekt die richtige? Anhand welcher Kriterien lassen sich Module zielführend abgrenzen? Wie kann ich von Anfang an vermeiden, dass sich bei zusätzlichen oder sich verändernden Anforderungen mit der Zeit der berühmt-berüchtigte Big Ball of Mud bildet?
Vorteile
- Fokussierung auf die Fachlichkeit des Unternehmens
- Vereinfachte Modularisierung in Microservices
- Verbesserte Stabilität
- Adaptive Reaktion auf veränderliche Anforderungen
- Effizienz- und Kostenvorteile
Für viele Softwarearchitekten ist Domain Driven Design (DDD) die Antwort auf diese und andere gängige Fragestellungen im Vorfeld einer flexiblen Architektur. DDD setzt konsequent auf die Fachlichkeit, und die liegt im Business des Unternehmens begründet, nicht im technischen Jargon des Entwicklerteams. Aus dem Business heraus lassen sich bereits in frühen Phasen des strategischen Designs inhaltliche und funktionale Einheiten als Bounded Contexts separieren. Aber auch im taktischen Design können sich sinnvolle Modularisierungsoptionen ergeben. So bildet die Fachlichkeit letztendlich die Basis für die Abgrenzung der Microservices und die Herausbildung dedizierter Teams.
Architekten, die ihr Handwerk in diese Richtung entwickeln möchten, finden in den iSAQB-akkreditierten Trainings Flexible Architekturmodelle, Microservices & Self-Contained Systems (FLEX) und Domain Driven Design (DDD) ein starkes Doppelpack, in denen alle relevanten Grundlagen anschaulich und praxisnah vermittelt werden. In unserer ITech Academy zählt die Kombination von FLEX und DDD bereits seit über zwei Jahr zu den am stärksten nachgefragten, oft und gerne ergänzt durch das Modul Agile Softwarearchitektur (AGILA).