Vom 4. bis 8. November fand in München die W-JAX 2019 statt – eine Konferenz für Java-Entwickler, Architektur- und Software-Innovation.
Wir haben es uns nicht nehmen lassen, in die Talks und Workshops hineinzuhören und uns einen Überblick über die aktuellsten Trends und Best Practices im Bereich Java und JavaScript zu verschaffen.
Domain Driven Design (DDD) – Ein Hauptthema der W-JAX
Eines der Hauptthemen der W-JAX 2019 war Domain Driven Design (DDD), welches in verschiedenen Talks beleuchtet wurde.
Domain Driven Design ist eine spezielle Herangehensweise an die Modellierung komplexer Software.
Kernfrage in den Talks war vor allem, wie man es am besten schafft, DDD in einem Projekt einzuführen. Speaker waren sich einig: „Bei Domain Driven Design handelt es sich um einen fortlaufenden Prozess, dem alle Projektbeteiligten folgen müssen.“, denn DDD ist kein reines Entwicklungsthema, sondern bezieht auch das Projektmanagement sowie die Kundenseite mit ein.
Klares Ziel von DDD ist es, Softwareprojekte für alle Beteiligten transparenter zu machen.
Ein großer Punkt ist dabei, eine gemeinsame Sprache („Ubiquitous Language“) zu sprechen, also die gleichen Worte für die einzelnen Bereiche der Fachlichkeit zu verwenden. Dies dient dazu, Missverständnisse zu vermeiden und dadurch wertvolle Zeit zu sparen, die andernfalls später dazu aufgewendet werden müsste, bereits entwickelte Features wieder anzupassen bzw. im schlimmsten Fall sogar komplett neu zu bauen.
Kommunikation – ein wichtiges Stichwort in der Entwicklung
Das Konzept der Ubiquitous Language ist nicht ohne Grund einer der Grundpfeiler im Domain Driven Design. Kommunikation ist nämlich ein sehr wichtiges Stichwort in der Softwareentwicklung. Genau deswegen war dieses Thema auch sehr prominent vertreten.
„Learn from yesterday, live for today, hope for tomorrow – Agile in der Praxis“
So der Titel eines sehr interessanten Talks in diesem Zusammenhang!
In dem Talk gingen Diana Breternitz und Christopher Neuwirth, von der MHP Management- und IT-Beratung GmbH, auf die Erfahrungen eines Projektteams ein, das über die Entwicklung einzelner Microservices in einzelne kleine Teams unterteilt wurde. Hier wurde von den Tücken des Alltags berichtet, die dazu führten, dass die Kommunikation der Teams untereinander litt und, in Folge dessen, das Projekt als Ganzes zu scheitern drohte.
Schlussendlich wurde eine – im Rückblick wohl relativ naheliegende – Lösung gefunden: Es wurden zusätzliche Meetings eingeführt. Die Meetings hatten den Zweck, die Teams dazu zu bewegen, wieder mehr miteinander – anstatt übereinander – zu sprechen.