2. Discover

Discover the domain visually and collaboratively.

This is the most crucial aspect of DDD. You cannot skip discovery. If your whole team doesn’t build up a good understanding of the domain all software decisions will be misguided.

Spreading domain knowledge through the whole team will create a shared understanding. It enables the developers to build a software system aligned to the domain which can be more flexible to incorporate future business changes.

Ensuring that domain knowledge is spread across the whole team enables its members to contribute with ideas for improving the product.

Discovery is Continuous

Teams who are successful with DDD are practicing discovery techniques on a frequent basis. There is always more to learn about the domain.

When first attempting discovery, a facilitator who is experienced with techniques like EventStorming can help a team to see the true benefits of discovery beyond a superficial level.

We strongly encourage you to check out Visual Collaboration Tools.

As a starting point, we recommend EventStorming.

EventStorming

Tools

Who to Involve

  • People who design, build, test software
  • People who have domain knowledge
  • People who understand product and business strategy
  • People who understand the customers’ needs and problems
  • Real end users