Suche
Interview mit Dr. Carola Lilienthal

„Entwickler müssen Freude daran entwickeln, Experten für ein Anwendungsgebiet zu sein“

Hartmut Schlosser

Dr. Carola Lilienthal

Domain-driven Design ist eines der großen Themen in aktuellen Debatten um Software-Architektur. Wir haben uns mit W-JAX-Sprecherin Dr. Carola Lilienthal darüber unterhalten, wie Architekten von DDD profitieren und wie sich die Konzepte am besten in die Praxis umsetzen lassen.

JAXenter: Das Konzept des Domain-driven Design wurde schon 2003 geprägt. Warum ist DDD heute relevanter denn je?

Software braucht eine gute fachliche Modellierung.

Carola Lilienthal: DDD ist aus zwei Gründen heute so relevant: Einerseits hat DDD mit Bounded Context ein Konzept, um Fachdomänen voneinander abzugrenzen. Für Microservices braucht man genau diese Trennung. Andererseits erkennen immer mehr IT-Leiter, Architekten und Entwickler, dass neue Technologien nicht zu besser nutzbaren und wartbaren Systemen führen, sondern dass Software eine gute fachliche Modellierung braucht. Auch hier bietet DDD viele hilfreiche Antworten. Beides zusammen macht DDD gerade heute sehr relevant.

.


JAXenter: Auf welche typischen Probleme bist du in Projekten bei der Umsetzung von DDD gestoßen?

Carola Lilienthal: DDD steht und fällt mit einem guten Verständnis des Anwendungsgebiets. Sich dieses Verständnis anzueignen, fällt vielen Entwicklungsteams schwer. Einerseits haben die Anwender keine Zeit, ihr Wissen weiterzugeben und den Entwicklern bei einem systematischen Verständnis zu helfen. Andererseits bevorzugen viele Entwickler technische Fragestellungen vor der Vertiefung in fachliche Details. Hier muss ein echtes Umdenken stattfinden:

  • Die Entwickler müssen Freude daran entwickeln, Experten für ein Anwendungsgebiet zu sein.
  • Die Anwender müssen verstehen, dass die Software nur dann einen guten fachlichen Kern haben kann, wenn sie ihr Wissen umfänglich weitergeben und im gesamten Lebenszyklus des Systems zu Diskussionen bereit sind.

JAXenter: Kannst du einen Praxis-Tipp geben, wie DDD erfolgreich realisiert werden kann?

DDD führt zu klarer strukturierter und wartbarerer Software.

Carola Lilienthal: Anwender und Entwickler müssen sich zu Beginn der Entwicklung sehr oft treffen und über die Fachlichkeit diskutieren. Dabei sollten die Entwickler Schritt für Schritt ein immer feineres Modell der Fachsprache entwerfen, das sie mit den Anwendern dann hinterfragen. Hat man hier einen ersten guten Stand erreicht, kann mit der Implementierung begonnen werden. Wichtig ist dabei, dass auch tatsächlich die Begriffe der Anwendungswelt verwendet werden.

JAXenter: Auf der W-JAX präsentierst du in deinem Workshop u.a. Übungen für DDD. Kannst du hier eine kleine Kostprobe geben?

Carola Lilienthal: Wir werden in dem Workshop einen stetigen Wechsel zwischen kurzen Vorträge zu den bewährten Werkzeugen von DDD und praktischen Übungen haben. Dabei werden wir in zwei Kleingruppen an der Wand mit entsprechendem Material ein Ubiquitous Language entwickeln und die Domäne mit Entities, ValueObjects, Repository und Service modellieren. Aufbauend auf diesem taktischen Design wenden wir uns dem Thema strategisches Design mit Bounded Context zu und grenzen in einer Übung die verschiedenen Kontexte ab.

JAXenter: Was ist die Kernbotschaft des Workshops, die jeder mit nach Hause nehmen sollte?

Carola Lilienthal: DDD führt zu einer besseren Zusammenarbeit zwischen Entwicklern und Anwendern und zu klarer strukturierter und wartbarerer Software.

JAXenter: Vielen Dank für dieses Interview!

Carola LilienthalDr. Carola Lilienthal ist Seniorsoftwarearchitektin bei der Workplace Solutions GmbH und Mitglied der Geschäftsleitung. Sie hat an der Universität Hamburg studiert und dort zum Thema „Komplexität von Softwarearchitekturen“ promoviert. Seit 2003 analysiert sie im Auftrag ihrer Kunden in ganz Deutschland regelmäßig die Architektur von Softwaresystemen und fasst das Ergebnis in Qualitätsgutachten sowie mit priorisierten Refactoring-Maßnahmen zusammen. Außerdem leitet sie seit 2000 Softwareprojekte von unterschiedlicher Größe im Banken-/Versicherungs- und Logistikbereich und berät das Management kleiner und mittelständischer Unternehmen bei der Entwicklung einer modernen IT-Strategie.
Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare
  1. Nino Martincevic2016-11-11 19:43:52

    Bounded Context grenzt keine Domänen sondern Domain Models voneinander ab.
    Domänen sind Grenzen im Problem space, BC im Solution space. Ein großer Unterschied.
    Und in einer Domäne kann es viele BC geben und BCs können auch mehrere Domänen umspannen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.