Lost in Translation

An entry about domain-driven design Publication date 26. February 2009 11:36

One of.. no, the core concept of Domain Driven Design is the Ubiquitous Language. The UL, simply put, consist of the words and phrases we use to express the domain model. It is the language that both the domain experts and the team of developers use when talking about the application. The UL should exist anywhere the concepts of the domain is addressed – in written documents, diagrams, conversations - and in code, where classes and their methods should be named according to it.

That sounds fairly reasonable; some would even say obvious.

Do you speak-a my language?

However: Most developers write code in English, even if it is not their native tongue. For them, most of the domains they work with are thus expressed in a language which differs from the language they write code in. The question then becomes – should we translate the ubiquitous language into English? Or should we really be writing code in our native language? Or do we write code in English, but use non-English words and phrases where required to conform with the UL…

I’ve worked on projects where the ubiquitous language became anemic because the developers translated the Norwegian domain into English. Apart from often having trouble finding good translations for many of the domain concepts, the fact that the developers begun calling things by their English names when talking about them often caused misunderstandings between the developers and the domain experts.

The “GetLønnslipp()” method is a common joke amongst Norwegian developers – but maybe that actually is the way we should be naming our methods?

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comments

Powered by BlogEngine.NET 1.4.5.0

Welcome!

My name is Fredrik Kalseth, and this is my blog - thanks for visiting! I am fortunate enough to work with what I love for a living, and this blog is essentially the biproduct of that.

I work as a senior consultant for Capgemini, and am also an active participant in the Norwegian .NET community, as an avid attendee but also as a speaker (most recently at NNUG and MSDN Live).

As a developer, I have a wide circle of interest. My primary passion is for agile, test-driven development, with focus on best practices and clean code. That said, I also love to work on the frontend, especially with web development.

On Twitter? My handle is fkalseth. On LinkedIn? I`m there too.

Disclaimer

This is a personal blog; any opinions expressed here are my own and do not necessarily reflect those of my employer. All content herein is my own original creation, and as such is protected by copyright law. Unless otherwise stated, all source code posted on this blog is freely usable under the Microsoft Permissive License.

What Readers Talk About

Comment RSS