2.1.4. Domain language

Terminology and naming is one of the hardest things to get right in software development – and one of the biggest sources of confusion and inefficiency.

Remember that the true users of the code you are writing are never the developers or technical project members. The true users are the business users, editors, administrators or visitors. Therefore, establishing a common domain language between the developers and business users should be a top priority in any project. Likewise, once a domain language has been established, it is imperative that the terminology be ubiquitous. What is even worse and more confusing than using the wrong terminology is using multiple terminologies at once.

Habitat Example

In Habitat Teaser refers to a rendering which can be used across different page types to highlight another type of content, for example News Teaser (highlighting and linking to a news article) or Person Teaser (relating a person to the content and linking to the person’s page or contact details). This concept is often known as or referred to as Spots, Promotions or just Promos. Choosing the term which the end users are familiar with can make the learning curve flatter and drive an easier adoption.

Also be cautious that terminology can be ambiguous between domains, for example the marketing and technology domain, and a specific technical tool can define a business domain term in another way than the common or individual company understanding. For example, the Sitecore Experience Platform uses the terms campaign and template in very particular ways – and is often in conflict with the common understanding in the marketing domain.

A close attention to terminology always increases productivity.