Comparison
Semantic layervsUbiquitous language
Semantic layer
the definition of active user lives in one place that every dashboard, notebook and export queries through, instead of being re-implemented in each.
A layer where metrics, dimensions and joins are defined once and consumed by every downstream tool. It exists because the alternative is the same business logic copied into a BI tool, three notebooks and a spreadsheet, drifting independently. The trade is another abstraction between the analyst and the SQL, and its success depends entirely on whether it covers enough that people stop going around it.
Full entry →Ubiquitous language
the code says Account, the spec says Subscription, and in standup everyone says plan.
One vocabulary shared by the code, the documents and the people, so that a sentence in a meeting maps to a name in the repository. The cost of not having it is a tax on every conversation and every handover, paid in translation errors that surface as bugs. It is worth arguing about names for this reason and no other: the name is the interface between the code and the people who talk about it.
Full entry →