Get involved

Interested in joining the User Group? Create an account and we will keep you informed of upcoming events. If you have anything to contribute, let us know through the contact form.

Tell us what you think

We are curious to know what you think of our website. Drop us a note and tell us what you think on our forum. Any feedback is highly appreciated.

Training overview

There are several DDD related trainings available in the Netherlands. On our training page, we give an overview of these trainings. Read more...

Multilingual DDD

During a fruitful discussion with Allard we came up with a question about multi lingual teams and customers. Why is this important? Let me try to explain.

While coding we are used to use english terms. It is a bit weird to have these english terms in programming language api's  and use dutch terms in the domain. On the other hand, our customers talk dutch and use dutch terms when talking about the domain. Is that a problem? It depends, talk to the domain expert (sorry could not resist). I learned from Eric Evans that that sentence is the answer to almost all your questions related to DDD. If talk to the domain expert is not the answer, the ubiquitous language is.

Still wondering what the hack I am talking about? An example we have found is related to a customer who is selling stuff for in the bathroom. One of the items he is selling is a Wastafel. Now what name should we give that in our domain model? A direct translation would be wash-hand basin. When talking to our domain expert, we have problems explaining him what we mean. Of course we can just use the dutch terms, but than our english speaking programmers don't understand the term. Also it looks very weird in the code. Especially when you start adding methods to your domain objects. What if we want to model stop in winkelmandje? (which means place in shopping basket). How would we call our method.

I hope the problem is clear now. To my opinion we have a few solutions. Some of these solutions actually came from the audience during a tech evening discussing DDD within my company:

 

  • Use the dutch ubiquitous language and make it ubiquitous. Then everybody needs to understand the dutch terms and the code might look funny now and then.
  • Translate all dutch terms and teach the domain expert the new terms.
  • Use translations in your code and keep a textual reference to the original term from the ubiquitous language.
Within a project with have experience with the second option, but you need a domain expert (and maybe a domain) that support this idea and does not mind to change his everyday language. I personally like option three. Someone mentioned that the ubiquitous language stays in tact that way and everybody can read the code. Do make sure that the comments stay up to date with the ubiquitous language. And make sure to correct people in conversations when they are talking about the translated (code) items. They should use the ubiquitous language terms.
I am curious about your opinion, so please use the forum to discuss this item.

http://www.dddnl.org/node/28