When to Use DDD

DDD is not silver bullet, and in order to apply it successfully, you need to know when you will get the most out of it.

This is a checklist that I compiled based on this book that will help us to identify if DDD is a good fit for the project we are going to start.

Let’s begin!

You have a skilled, motivated, and passionate team that is eager to learn.

You need a team that is willing to work with the domain experts and understand the business. The team should have a genuine desire of solving the customer problems and not just focus on how to use the latest technology.

You have a nontrivial problem domain that is important to your business.

Applying DDD to a domain with little or no business logic is an overkill. If you use DDD in a simple CRUD application it will only add unnecesary complexity.

You have access to domain experts who are aligned to the vision of the project.

You cannot create a useful domain model without a domain expert. DDD is all about collaboration between the development team and domain experts. They work together in order to create a model that will be useful to solve the customer’s problems.

You are following an iterative development methodology.

The first model that you create is not always the best, even sometimes, you need to change the model completely. So, is very important that you work with a methodology that allows you to constantly change your model in order to improve it.

Do you have something to add to this checklist?