CCD in Brownfield Projekten – Teil 5

Bereits Anfang des Monats haben Stefan Lieser und Ralf Westphal Teil 5 ihrer siebenteiligen Artikelserie CCD in Brownfieldprojekten veröffentlicht. Dieses mal dreht sich alles um die Planung, die vor dem großen Refaktorisieren von Brownfieldprojekten erfolgen sollte. Und natürlich nicht nur in Brownfield- sondern auch in Greenfieldprojekten am Anfang stehen sollte.

Am Anfang machen die beiden Autoren unmissverständlich klar, dass sich ein Softwareunternehmen auf seine Core Domain konzentrieren und beschränken muss. So wird verhindert, dass kostbare und meist knappe Entwicklerressourcen mit unnützem und am Ende das Tages kein Gewinn einfahrenden Tätigkeiten verbraten wird. Nächster Punkt auf der Artikelagenda ist die „Abgrenzung von Implementierung und Modell“. Hier zeigen die beiden Berater auf, was im Vorfeld der Implementierung, auf Architekten und Modelliererseite zu geschehen hat. Themen wie funktionale und nichtfunktionale Anforderungen, Bounded Contextes, Partition bis hin zu Komponenten werden angerissen.

Einen wichtigen Aspekt, den ich an anderer Stelle bereits des öfteren gelesen habe, ist die „Zerlegung in Schnittchen“. Damit meinen die Autoren die Zerlegung komplexer Aufgaben in kleinere Teile. Diese Teile sollten idealerweise in vertikaler Richtung geschnitten und so klein gehalten sein, dass sie das Entwicklerteam an einem Tag umsetzen kann. Vertikal deshalb, damit die Funktionalität sofort vom Anwender validiert werden kann. Sprich es wird nicht erst das komplette UI implementiert und dann die Logik oder umgekehrt, sondern eben kleine Teile der Funktionalität vom UI, über die Logik bis hin zur Persistierung. Das hat den Vorteil, dass der Kunde den Projektfortschritt in kleinen Schritten beobachten und validieren kann sowie bei Bedarf, lenkend einschreiten kann.

Der letzte Punkt geht auf Flow-Design-Modellierung und Event-Based-Components ein. Ein Steckenpferd von Ralf Westphal, der dazu bereits viele lesenswerte Blogposts verfasst hat. Ziel hier ist die lose Kopplung und die Verringerung der Abhängigkeiten zwischen Modellen. Das wird durch die Modellierung mit Flow-Design erreicht. Dabei fliessen, vereinfacht ausgedrückt, die zu verarbeitenden Daten von Funktionseinheit zu Funktionseinheit. Den Austausch der Daten zwischen diesen Funktionseinheiten übernehmen andere Funktionseinheiten, die wiederum auf Events reagieren. Strikt ist hier die Trennung zwischen den Funktionseinheiten, die Daten verarbeiten und denen die Daten verteilen, sprich die Verbindung zwischen den ersten Funktionseinheiten darstellen.

Die Lektüre von Teil 5: Explizite Architektur als Ziel für Refaktorisierungen kann ich jeden Entwickler, Architekten oder Projektleiter nur wärmstens empfehlen.

CCD in Brownfield Projekten – Teil 5
Markiert in: