Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Angewendete Domain Driven Transformation

Angewendete Domain Driven Transformation

Bei idealo ist eine der Kernkomponenten unseres Business ein Monolith im 25. Jahr seiner Existenz. Er leidet unter den üblichen legacy Symptomen: Änderungen brauchen lange, die Codebasis ist schwer zu warten, es gibt viele Stakeholder & Features, auf dem Produktteam liegt ein hoher Druck. Technische Innovationen lassen sich nur schwer im Backlog priorisieren.

Im Jahr 2023 sollten die Aufgaben und Features des Monolithen zwischen dem bestehenden und einem neu gegründeten, zweiten Team aufgeteilt werden. Dieser Impuls der teamorganisatorischen Transformation wurde genutzt, um die Fachdomänen wiederzuentdecken (strategische Transformation). Auf der BEDCon 2023 lauschte der Vortragende gespannt einem Beitrag von Henning Schwentner zur Domain Driven Transformation und stelle fest: Das ist doch genau, was wir machen und brauchen.

Um die Transformation weiterzuführen und zu gestalten, braucht es (durchsetzungs)starke und engagierte Entwickler und Führungskräfte, die den Prozess unterstützen und gleichzeitig neue Produktfeatures wünschen.

Dieser Talk soll unsere Reise (bisher) beschreiben, konkrete Maßnahmen für alle drei Anteile der Transformation aufzeigen und Anderen Mut machen: Es ist möglich und es lohnt sich!

Daniel Hübner

September 24, 2024
Tweet

More Decks by Daniel Hübner

Other Decks in Technology

Transcript

  1. Gründung 2000 1.000 Mitarbeiter,   davon ~300 Mitarbeiter in der

    Produktentwicklung 8 Millionen Produkte 500 Millionen Angebote auf der Platform 76 Millionen Besucher pro Monat Deutschland führende Preisvergleichplattform
  2. Änderungen brauchen lange Codebasis schwer zu warten Viele Stakeholder &

    Features Hoher Druck auf dem Entwicklerteams Technische Innovationen lassen sich nur schwer priorisieren Symptome
  3. DDT - die Theorie Henning Schwentner - Domain Driven Refactorings

    https://hschwentner.io/domain- driven- refactorings/
  4. Strategische Transformation Domain Rediscovery   Domain Storytelling   Event Storming

    Bounded Contexts Context Mapping Kunde Verkäufer Probefahrt mit Wunschauto fragt an bei verfügbare Termine 01 03 fragt an bei Fuhrpark sucht nach Verfügbarkeit im 02 product details product variations offer list product data
  5. Taktische Transformation Extract Specialized Service Extract Service from Smart UI

    Tactical that Support Strategic Tactical that strengthen Domain knowledge
  6. Assign Context to (Existing) Team Sozio- technische Transformation product details

    product variations offer list product data Team B Team A
  7. Reverse Conway Manouver Frontend Team 1 Backend Team Form departments

    with general context assignment Frontend Team 2 Frontend Team 3 Product Discovery Shopping Sozio- technische Transformation
  8. 11/16 - 04/17 2020 2019 2018 2017 2016 Reverse Conw

    ay M anouver Zeitliche Abfolge erste Transformationsphase
  9. 05/18 11/16 - 04/17 2020 2019 2018 2017 2016 Reverse

    Conw ay M anouver SCS discussion & decision Zeitliche Abfolge erste Transformationsphase
  10. Split Monolith along general user journey Product Discovery Shopping Frontend

    Monolith Persistenz Persistenz Strategische Transformation
  11. mid 2018 05/18 11/16 - 04/17 2020 2019 2018 2017

    2016 Reverse Conw ay M anouver SCS discussion & decision 1st m onolith split Zeitliche Abfolge erste Transformationsphase
  12. Split Monolith along general user journey Product Discovery Shopping Persistenz

    Product Discovery Shopping Taktische Transformation
  13. 11/18 - 06/19 mid 2018 05/18 11/16 - 04/17 2020

    2019 2018 2017 2016 Reverse Conw ay M anouver SCS discussion & decision 1st m onolith split 2nd m onolith split Zeitliche Abfolge erste Transformationsphase
  14. Was macht der Monolith? Wichtigste Webseite bei idealo / ~

    1.800 request pro Sekunde Kunde trifft viele Entscheidung auf dieser Seite Cross cutting concerns: User login, SEO, etc. Performance     Auslieferungsgeschwindigkeit     Core Web Vitals
  15. Änderungen brauchen lange Codebasis schwer zu warten Viele Stakeholder &

    Features Hoher Druck auf dem Entwicklerteams Technische Innovationen lassen sich nur schwer priorisieren Symptome
  16. GitHub [codeowners] Ownership & Enablement ############################################################ # Team A and

    B have both full ownership of the frontend code. ipc- site/src/main/webapp/* @idealo/team- a @idealo/team- b ############################################################ ############################################################ # SUB- DOMAIN product- details # OWNER Team B ############################################################ ipc- site/src/main/java/com/idealo/eu/offerpage/product/details/* @idealo/team- b ipc- site/src/test/java/com/idealo/eu/offerpage/product/details/* @idealo/team- b
  17. Extract domain component Deploy Monolith Deploy Monolith Taktische & Strategische

    Transformation Extract domain service Modernized FE
  18. Impulse ... kommen in verschiedener Form vor ... können top-

    down oder bottom- up erfolgen ... bewirken (manchmal) nur gemeinsam Transformation © Freepik / Becris | flaticon.com Organisations- entwicklung Technik Tools
  19. ... wenn USP und Kunde Antrieb ist   ... wenn

    sich Technik und Organisation dem unterordnen ... wenn engagierte und verantwortungsvolle Personen diese gestalten Transformation ist domain- driven © Freepik / Kiranshastry | flaticon.com