Having led a team of enterprise data architects at a Fortune 10 corporation, I can say, in my opinion, few things are more important to get right than core data models. The entities in your data models are the lingua franca of your business: the nouns.
On the other hand, building a stable common data model is fiendishly difficult. You have to decide exactly — and I mean exactly — what you mean by the data entities your company uses — say, Customer, Product, Employee, Partner, and so on. What attributes do each of those possess? For example, your “Customer” entity probably contains an Address (how many lines? How many characters in the postal code? Salutation?). Super-important stuff like a “Do not call” flag? Perhaps you keep account numbers too — but how? Different businesses may have different accounts for the same customer), credit rating, D&B number, et cetera ad nauseum.
Many companies discover to their horror that a data model in one application — say, CRM — is ever so slightly different from what’s in another (say, Customer Support). As often as not, these little discoveries happen at run time and lead to all kinds of headaches — complicated ETL’s, errors, maybe even compliance violations.
And because the business is always changing, as it must, data models have to evolve as well. Having a stable, well-document base — such as you might get from a third party — helps you keep pace with a minimum of fuss.
Do you have standardized data models in your organization? I’d love to hear from you in the comments!