I have been espousing the need for pursuing systematic reuse in conjunction with other initiatives such as SOA, BPM, object oriented programming, in a agile manner. Master Data Management (MDM) aims to manage core enterprise data as a strategic asset for the organization. It impacts data quality, data governance, data services as well as business processes that access/update core data assets. MDM can play an important role in your systematic reuse efforts as well. How? Let’s think about the intent behind MDM – the primary driver is to reduce costs and enable revenue generation using enterprise data assets such as customer data, account data, product data etc. These goals not only require technology but also processes and governance.
You can use MDM to drive systematic reuse using the following ways:
- Opportunistically create fine grained and coarse grained data services as dictated by your business needs. Your MDM data store will evolve as the strategic data store for all business processes eventually. But, while you get there, you will have to incrementally and iteratively build out a service inventory. This service inventory will be reusable for multiple projects and initiatives while giving you the flexibility to change underlying data structure and processing logic. More importantly, you will build service capabilities that you know at least one client will use.
- While developing data services built on top of your MDM solution, your information modelers and analysts can re-examine the domain and update data entities, relationships, and business rules. All this information will guide your canonical data models plus can help in building object libraries and domain specific language toolkits. Basically, you are reusing the analysis efforts for service and object capabilities. You can even use XML-object data binding tools to generate classes from XML schemas and vice versa. A more likely outcome of such an exercise is also identifying refactorings to the existing codebase. Your service capabilities and object models may not reflect the business domain accurately and you can make those changes in conjunction with business deliverables.
- Related to the point above, you can develop reusable decision services including specific rule sets that can not only fulfill MDM based processing but also for other problems in your domain. If the entities and rules are getting reused you will go a long way in reducing costs when building business processes.
- In an earlier post I talked about the importance of easing integration for consumers. MDM will streamline data processing and improve data quality. But it also presents an opportunity for you to create easy to use integration toolkits for consumers to get the improved data. If you know marketing applications consume core data in a certain way, would it not make sense to make consumption as easy as possible?
- Integrate data access/update policies, data quality checks, as well as use of specific data governance workflows into design and code reviews. As MDM practices mature in your organization you will get smarter about how different applications, processes, and external partners need to interact with your MDM data store. In essence, you can mandate interaction via MDM data via standardized, managed interfaces. This over time will surely drive reuse of data services as well as data governance workflows and business rules.
This list isn’t exhaustive but my intent was to illustrate how MDM can help your systematic reuse efforts. The key message is basically – don’t pursue reuse in isolation with other initiatives.