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

Failures and learnings during the adoption of DDD

Michael Plöd
September 28, 2023

Failures and learnings during the adoption of DDD

Domain-Driven Design is no silver bullet and does not solve any problem in magical ways. The challenges and complexity that we try to tackle with DDD are hard and there is no easy way out. Nevertheless there is a growing popularity and appreciation for the topic in the market which may lead to overly ambitious expectations and eventually to disgruntled expectations.

The speaker of this talk has been working with Domain-Driven Design for the last 17 years on many software systems and this talk is about my experiences with failure. Believe me: I have failed a lot but there is always a chance to learn. The talk aims at giving you a chance to learn from the mistakes of me as an consultant and of the teams / organizations I have been working with.

The talk will address topics like:
- Domain-Driven Design in the waterfall
- Ignorance for code (aka only focus on strategic design)
- Overusage of patterns for their own sake
- Cultural implications
- Cargo Culting
- Developer Experience
- Rare availability of domain experts
- Dealing with established modeling techniques / methods
- Ignorance for the definitions / meaning of heuristics and patterns

This talk aims at providing you with a sensibility for potential hazards when you try to adopt DDD for your team and your organization and will contain only real-worlds scenarios that have actually happened. Each described failure will also come with a learning on what to do better.

Michael Plöd

September 28, 2023
Tweet

More Decks by Michael Plöd

Other Decks in Technology

Transcript

  1. Michael Plöd Fellow at INNOQ Mastodon (or Twitter): @[email protected] LinkedIn:

    https://www.linkedin.com/in/michael-ploed/ Current consulting topics: • Domain-Driven Design • Team Topologies • Transformation from IT Delivery to digital product orgs Regular speaker at (inter-)national conferences and author of a book + various articles
  2. Get my DDD book cheaper Book Voucher: 7.99 instead of

    (min) 9.99 http://leanpub.com/ddd-by-example/c/speakerdeck
  3. Domain Subdomain Subdomain Bounded Context Tactical Patterns Aggregate, Entity, Value

    Object, Repository, Service, Factory Bounded Context Tactical Patterns Aggregate, Entity, Value Object, Repository, Service, Factory Bounded Context Tactical Patterns Aggregate, Entity, Value Object, Repository, Service, Factory Strategic DDD Domain Subdomain Bounded Context Context Map Tactical DDD Aggregate Entity Value Object Repository Service Factory
  4. ATTITUDE DDD is a culture for domain modeling Strategic DDD

    Domain Subdomain Bounded Context Context Map Tactical DDD Aggregate Entity Value Object Repository Service Factory
  5. DDD is a culture for domain modeling Strategic DDD Domain

    Subdomain Bounded Context Context Map Tactical DDD Aggregate Entity Value Object Repository Service Factory Explicit->implicit Continuous Learning Evolutionary Design Compare Models Language Psychological Safety Collaboration Low entrance barrier
  6. Use collaborative modeling methods with a low entrance barrier Image

    for example mapping taken from: https://openpracticelibrary.com/practice/example-mapping/ Image for user story mapping taken from: https://www.hanssamios.com/dokuwiki/how_do_we_build_and_maintain_context_when_all_we_have_is_a_backlog_list
  7. Go for code early, prototype, fail, prototype again, fail again,

    re ine the prototype, re lect your strategic design based on those learnings, learn, go to prod, learn, refactor the code, learn, learn, learn, learn, …
  8. Someone: „You are only doing true DDD if you strictly

    stick to hexagonal architecture and the tactical patterns everywhere, no exceptions!“
  9. Mind the purpose … A Bounded Context is a boundary

    for a model expressed in a consistent language tailored around a speci ic purpose
  10. If the purpose of a Bounded Context doesn’t call for

    some of the patterns, don’t use them. Understanding this, acknowledging it and designing your software accordingly is so much more about DDD than blindly sticking to some patterns because they were in a blue book (which is amazing, no diss!).
  11. This book is important, a (probably) timeless classic in IT

    literature. But it’s not a bible and shouldn’t be treated like one.
  12. Some IT conference Registration of visitors Lunch planning Printing of

    badges Room planning Selling tickets Handling of payments
  13. YOU at some IT conference Registration of visitors Lunch planning

    Printing of badges Room planning Selling tickets Handling of payments
  14. YOU at some IT conference Registration of visitors Lunch planning

    Printing of badges Room planning Selling tickets Handling of payments
  15. Bounded Context A Bounded Context is a boundary for a

    model expressed in a consistent language tailored around a speci ic purpose
  16. Manager: „this looks totally different … where are yesterdays Bounded

    Contexts“ Team: „we learned something and trashed them for another design“ Day 5: Questions
  17. Don’t do full blown DDD just for the sake of

    it. Just use the concepts that solve your problems. Photo by Michael Plöd
  18. Get my DDD book cheaper Book Voucher: 7.99 instead of

    (min) 9.99 http://leanpub.com/ddd-by-example/c/speakerdeck
  19. Krischerstr. 100 40789 Monheim +49 2173 3366-0 Ohlauer Str. 43

    10999 Berlin Ludwigstr. 180E 63067 Offenbach Kreuzstr. 16 80331 München Hermannstrasse 13 20095 Hamburg Erftstr. 15-17 50672 Köln Königstorgraben 11 90402 Nürnberg innoQ Deutschland GmbH www.innoq.com Thank you! Michael Plöd E-Mail: [email protected] Socials: @[email protected] LinkedIn: https://www.linkedin.com/in/michael-ploed/ German version of Team Topologies incl. the Remote Team Interactions Workbook Translated by me Release through O’Reilly Germany in approx. November 2023