Comparison
Bounded contextvsUbiquitous language
Bounded context
'customer' means one thing to billing and something else to support, and the shared table forces one of them to be wrong.
A boundary inside which a term has exactly one meaning and one model. The insight is that most enterprise modelling arguments are people trying to build a single definition of 'order' or 'user' that satisfies four departments, which cannot be done. Drawing the boundary instead — and translating at the edges — is what lets each team's model stay simple, and it is usually the honest answer to a schema argument that has run for a week.
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 →