298: Ubiquitous Language in BDD
When you incorporate Ubiquitous Language into your systems, your scenarios automatically transform into your domain model
Thank you for reading Snippets of Text. Snippets from media about tech, programming, parenting, and more. This is a preview of a post available exclusively to paying subscribers. You can get unlimited access to all articles by purchasing a subscription.
Thank you for checking out the free preview of Snippets of Text. Please consider subscribing to the paid version if you find my work helpful. This will allow me to dedicate more time to developing new ideas to share with you.
Unrelated: How to Accelerate Learning and Achieve a Shared Understanding of Complex Domains
Event storming is a workshop that helps people discover and learn how a business operates. During this process, we must focus on "pivotal events," the most significant events that drive major changes within a domain. Yet, sub-domains and bounded contexts align at the beginning of modeling. In most cases, data in DDD examples only flows from one context to another and never returns to the original context. It's essential to model your domain from the beginning. During an event storming session, we can gain clarity about the business processes that the system needs to support. As we codify the timeline as a sequence of events, we create a single source of truth for what the system represents. This allows us to structure the system. While adapting the structure, we ask participants what they want to see. They want to see who is doing what and when, step by step. Events in this context not only transport data but also carry meaning.
To understand event storming, two key terms must be understood: domain event and domain expert. Yet, domain events represent facts about the domain that only change when the underlying business changes. Take action. Organize a big-picture event-storming session to create an abstract timeline of our business. This workshop is expected to have a significant turnout, with anywhere from a manager to 20-30 people in attendance.
Off Topic: Ubiquitous Language in BDD
In the past year, I have been experimenting with a new approach to Behaviour-Driven Development that prioritizes Ubiquitous Language. The idea is that by emphasizing Ubiquitous Language in your scenarios, you can execute Domain-Driven Design while following the red-green-refactor cycle of Behaviour-Driven Development. When you incorporate Ubiquitous Language into your systems, your scenarios automatically transform into your domain model, enabling you to create the most critical part of your application - a core domain.
Companies can benefit significantly by using a formal scenario-based language like Given-When-Then to define their systems. It doesn't matter if they don't automate those requirements as tests. The value can still be derived. Acceptance tests are a joint effort involving business analysts, QA, and developers.
I invite you to upgrade to a paid subscription. Paid subscribers have told me they have appreciated my thoughts & ideas in the past & would like to see more of them in the future.
Keep reading with a 7-day free trial
Subscribe to Snippets of Text to keep reading this post and get 7 days of free access to the full post archives.