A few days back we had a mail-wise discussion on the subject; why should we care about an ubiquitous language?
For me the question falls into two parts; for the whole company/business or for the application.
- An ubiquitous language or common domain model for a complete business have never felt right with me. I know, I know; I have been defending it, striving for it and even forced it on some customers – but I don’t like it! It will never work! The same entity, (customer) for example, can have very different meanings in different context. A better and much more detailed discussion can be found here:
- An ubiquitous language for an application is a completely different thing and is something that I think should be strived for. But that basically means that all the members of the team (customer, analysts, developers, code, tester, documentation) referrers to the same things with the same name. For me it has to do with speed and accuracy in communication within the team.
But don’t take it for me. I did a quick search through the net and found some articles that gives better points on why an ubiquitous language is a Good Thing:
- It starts and ends with Eric Evans book: Domain Driven Design. With Google Books you can read the relevant chapter here.
- James Shores take on the subject, with a Haiku even…
- Kent Becks words
- A more formal definition and description, from www.domaindrivendesign.org
- A long but worthwhile read on the subject. Search on Eric Evans to go to good parts. I told you that it starts and ends with him… ;)
Oh yeah – thanks to Oscar and Jocke for the discussion.