Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Domain-Driven Design: From strategic business goals to software implementation

144 views

Published on

The two most important notions of DDD: BoundedContexts and Ubiquitous Language

Published in: Software
  • Be the first to comment

  • Be the first to like this

Domain-Driven Design: From strategic business goals to software implementation

  1. 1. Domain-Driven Design From strategic business goals to software implementation
  2. 2. The problem COMPLEXITY, TIME AND CHANGE
  3. 3. We live in a VUCA world Volatile Uncertain Complex Ambiguous
  4. 4. Organizations are structured in silos Credits : 50 000 orange stickies later by Alberto Brandolini
  5. 5. Time is our enemy Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  6. 6. The objective ALIGNMENT AND FOCUS
  7. 7. Aligning the whole organisation on shared strategic goals • What are we trying to solve? • What is the most strategic? • Where do we start? • How do we go from strategic goals to software design? • How do we make sure our software will evolve? • How do we make business rules more explicit?
  8. 8. Core Domain Where you want to make a strategic investment in a single well-defined domain model, committing significant resources for carefully crafting your Ubiquitous Language in an explicit Bounded Context. The knowledge, processes, practices that distinguish you from your competitors Focus on the core Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  9. 9. The solution DOMAIN-DRIVEN DESIGN
  10. 10. A deliberate approach to get from strategic business goals to software design and implementation The two most important notions of DDD • Bounded Contexts • Ubiquitous Language Domain-Driven Design
  11. 11. • Split a complex domain into smaller, more comprehensible sub-domains • Separate business concerns and enforce boundaries → Bounded Context • Clarify relations and communication between Bounded Contexts • Make the implicit explicit Credits : 50 000 orange stickies later by Alberto Brandolini Tackling complexity with Bounded Contexts 1 team 1 bounded context 1 microservice (or more)
  12. 12. Core domain • Custom development • High priority • Put your best devs Supporting sub-domain • Custom development • Lower priority • Invest just enough Generic sub-domain • Buy of the shelf • Integrate with the rest of the ecosystem Responsibilities & Boundaries
  13. 13. • Breaking the language barrier between business and tech people by sharing the same language • Using meaningful business language in the code • One word, one concept, one meaning A language that is ubiquitous within a given bounded context Foster communication through the use of an Ubiquitous Language
  14. 14. Communication & knowledge sharing Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  15. 15. The process EVENT STORMING
  16. 16. EventStorming Exploring with Domain Events Credits : 50 000 orange stickies later by Alberto Brandolini
  17. 17. Outcome : Big Picture Credits : 50 000 orange stickies later by Alberto Brandolini
  18. 18. Finding sub-domain boundaries
  19. 19. Domain Events as a shared language Credits : 50 000 orange stickies later by Alberto Brandolini
  20. 20. From vision to design (and back) Credits : 50 000 orange stickies later by Alberto Brandolini
  21. 21. Designing reactive systems Credits : @VaughnVernon https://www.infoq.com/articles/modeling-uncertainty-reactive-ddd/
  22. 22. Getting started GIVE YOURSELF A CHANGE
  23. 23. Let’s start exploring your domain • To start a new project • To make better sense of your existing software ecosystem • To break a monolithic application into smaller business-focused services Contact us to run an EventStorming workshop with you You know your domain, we know how to tackle complexity
  24. 24. Tackling complexity in the heart of software • Eric Evans — Tackling Complexity in the Heart of Software • Greg Young — A Decade of DDD, CQRS, Event Sourcing • Liz Keogh — Cognitive Cynefin: How Language and Bias Keep Us Complicated
  25. 25. CONTACT AGILE PARTNER 20A. RUE DU PUITS ROMAIN L8070 BERTRANGE Z.A.I BOURMICHT (+352) 26 37 00 30 contact@agilepartner.net jobs@agilepartner.net

×