We all know the advantages* Less transformation needed (this only holds when you have NxM relations)
* Data reuse between Services within the same Service Inventory
What do others say?Steve Jones describes three ways in his blog to setup a CDM. In Common demoninator (1) the minimum set of data that can be used to effectively communicate between areas on a consistent basis. The goal here isn't that this should be used on 100% of occasions but that it represents 70-80% of the interactions. In a Superset (2) the goal is to capture a canonical form that represents 100% of the possible interactions between services. Thus if a service might need 25 fields of product information then the canonical form has those 25 fields. The last one is the Enterprise beast (3) and this one creates a single data model that represents not only the superset of interactions, but the superset of interals as well.
And what do I think?
- I do not see it happen to get one big enterprise model.
- Try to make a CDM per business domain. And use the data attributes that really are necessary. This makes you think good about the model and will cut out the bad fruit
- Make use of XML Schema to define the data entities and do not CSV,TXT or other non-standard formats
- Make a document that will describe and defines the data entities so that everybody has a good understanding of the entities.
- Make the data available to others