Peter's Gekko

Sponsors

The Lounge

Wicked Cool Jobs

News

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Ubiquitous language, not only in your customer's domains

In the hart of domain driven design is ubiquitous language. Everyone involved, from developer to domain expert, speaks the same language. This should not be just a matter of using the same labels for "things". Many a discussion starts with the question how to name something and leads to a shared analysis of what that thing really is. In the end (of that discussion) the resulting name is well chosen and has a deeper meaning.

But when it comes to naming things in the domain of software development I often see a not so ubiquitous language. To name just two of today's hobby horses: both the IoC/DI label and the TDD/BDD label are used for a diversity of "things". IoC and DI are not quite the same thing. But when it comes to naming techniques, designs, architectures or frameworks all to often the full label IoC/DI is applied. This almost reads as IoC aka DI, suggesting two different names for one and the same "thing". Whatever that thing is. It could be a framework implementing an IoC container or a design decision to use the DI pattern. Good articles on the subject describe the similarities and the differences between DI and IoC. Only the best take it a step further and use one name for one thing and suggest clear names rich in meaning for all other things.

The same story more or less applies to TDD/BDD. On the bright side Matthew Podwysocki just published a very good post on defining BDD as compared to TDD. So next time you read the label TDD/BDD just read that post again. And don't get me started on naming products. Microsoft almost makes a habit of names like "WCF formerly known as Indigo". I've been ranting on that before.

The domain of building software is one of the most complex domains you can imagine. Imho it would be beneficial to everybody to be as clear as possible in naming things here. What works for our customers will work for ourselves as well.


Posted Tue, Nov 25 2008 9:52 PM by pvanooijen

[Advertisement]

Comments

Lee Brandt wrote re: Ubiquitous language, not only in your customer's domains
on Tue, Nov 25 2008 10:56 PM

Absotively. I think one of the problems is that no one in the developer communities can agree on the ubiquitous language. One developer THINKS he understands BDD and then reads another blog post from another respected member of the community and they say that something completely different. Some of these things are getting shaken out in public (which is OK) but can be confusing for developers looking to learn about new technologies.

My $0.02

~Lee

Add a Comment

(required)  
(optional)
(required)  
Remember Me?
Devlicio.us