Monday, June 3, 2013

Standardization Of Terms At All Costs?

(This post was originally published as a comment to Paula Wiles Sigmon's article "Define Terms, or Doom Your Project" on IBM's The Big Data Hub.)

Though being desirable in an idealized world, the attempt to unify the terminology is quite problematic in larger organizations, as the standardization process throughout multiple disciplines of the business and IT is not only very time-consuming, but
  • may result in artificial deviations from traditional terminology for certain disciplines
  • will leave "winners" and "losers"
  • will start again with the next M&A
  • may create naming conflicts with the next acquisition of standard software.
To avoid, at least to minimize, the above effects, I recommend to decompose the business data model into a "global" data model and several "local" data model (one per each "department" / line of business). In a nutshell, the approach should be as follows.

For entities and attributes that are supposed to be used "globally", i.e. by more than one line of business:
  • Create a global model.
  • Agree globally on the semantics and definitions.
  • Derive a unique, logically meaningful term / name for each object ("common item") in the global model.
For each line of business:
  • Create entities and attributes in a local model.
  • Link objects of a local model with the semantically corresponding objects of the global model (as far as a local model intersects with the global model).
  • Agree locally on the semantics and definitions (as far as they are not "governed" by the global model).
  • Derive a unique, logically meaningful term / name for each object (common item) in the local model (as far as it is not "governed" by the global model).
  • Allow local synonyms for the common items in the global model.
The above approach reduces frictions among departments with partially overlapping local models and creates a cross-reference system of common items and synonyms. There is no need to "boil the ocean", but local models can be created as projects come up and be iteratively integrated with an incrementally growing global model.

Professional and practical data modeling tools will support the above mentioned steps to link and integrate the global model with local models and to maintain the lineage between the "same" objects in different models.