Evolutionäre Architekturen
VERÄNDERUNGEN IM CODE VON ANFANG AN MITDENKEN
Softwareentwicklung ist kein linearer Prozess
Digitale Umgebungen und Anforderungen verändern sich mittlerweile rasend schnell. Software muss daher immer anpassungs- und zukunftsfähiger werden. Ihre Entwicklung ist kein linearer Prozess, an dessen Anfang ein bestimmter Bauplan steht, der dann konsequent umgesetzt wird. Evolutionäre Software-Architektur vollzieht sich vielmehr in Schleifen: Nach dem Ausliefern einer kleinen, überschaubaren und damit beherrschbaren Änderung wird Feedback eingeholt, auf dessen Basis Entscheidungen für die Weiterentwicklung getroffen werden können.
Wir bei SEITENBAU wissen, dass Veränderung in Software-Projekten unausweichlich ist, also denken wir die Architektur von Anfang an als evolutionäres System, dass sich kontinuierlich an neue Anforderungen anpassen kann. Dazu sind zwei Denkansätze essentiell: Modulare Entwicklung mit loser Kopplung der einzelnen Software Komponenten (z.B. der Microservices-Ansatz) und die kontinuierliche Durchführung von Experimenten in der Entwicklung.
Microservices funktionieren deswegen so gut, weil jeder Service einen möglichst geringen, domänenspezifischen Funktionsumfang hat und von anderen Services auf struktureller Ebene entkoppelt ist. Ersetzt man also einen Service mit einer neueren Version, sind die Auswirkungen auf die gesamte Architektur kaum spürbar. Experimente führen wir z.B. in Form von Spikes durch, um Änderungen an der Architektur auszuprobieren und validieren zu können.
Durch den Einsatz von Evolutionären Architekturen in Kombination mit Agilem Requirements Engineering und Continuous Delivery können wir bei SEITENBAU auf neue, geänderte Anforderungen spontan reagieren und damit Software entwickeln, die gewappnet ist für die (unvorhersehbare) Zukunft.