Ubiquitous and unambiguous ?

My last musings on a observed misuse of ubiquitous language (UL) led to deeper comments than I had ever realized when writing the story down.

To many a non native speaker ubiquitous is at first hearing a strange word, as far as I know it is not widely used outside the world of IT. The sounding reminds of (un-)ambiguous, a term often found in the same context. There is a relation between these two words and IMHO that was the heart of the comments and led me to take another dive into the idea of UL.

The term Ubiquitous Language was brought to the world of software by Eric Evans in his classic book Domain Driven Design (DDD). Where it is defined as a language based on a model and spoken by both domain experts and developers. It should be “more robust than the lowest common denominator” (p.25). Domain experts “should object to terms or structures that are .. inadequate to domain understanding” and developers “should watch for ambiguity ..” (p.27) So a good UL is a powerful common unambiguous language spoken by all experts, whatever their background, to communicate on a software system.

Note the stress on the word expert. Now some people involved are not an expert. Take the old lady in my previous story, the recipient of UL. She might be very good in choosing what to buy and finding her way to the counter but when it comes to the technical rules of dealing with her payment she has all the right in the world to be a nitwit. As a domain expert you can consider her as something outside of the domain. To communicate in a safe way you can use an anti corruption layer (ACL). For the outgoing messages it will translate a lot of the domain specific facts and rules into a subset of commands like “Don’t do this” and “Please do that”. Which is perhaps not too friendly but at least it is unambiguous. But when it comes to incoming messages things get bad. These messages will be quite ambiguous. Like “I don’t understand”, without the sender even being able to make clear what she does not understand. Here we have a many to one mapping for outgoing messages and a one to many mapping for incoming messages. Where the latter can be quite ambiguous. “Would you please be so kind to explain what it is you don’t understand ?”.

The core of this problem is IMHO not an IT issue, it is just that the modern technological world is becoming too complex for more and more people. Be prepared for that yourself to. Just wait for the moment when you are going to give up on the new toolkit or methodology. That moment will come. According to the Peter principle I am almost there myself :)

This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.