StrategyAug 30, 2011

Keeping the Trains Running

Matt Allen

In our last installment discussing the technological implementation of an enterprise-wide CRM, we reviewed some thoughts around the importance of the data.  Just as important, and part of the solution that will affect the quality of your data, is the implementation of your interface architecture.  How will you ensure all of your systems talk to each other at the right time and in the same language?

Keeping the Trains Running

The sole purpose of your interface architecture is to keep the trains running.  Regardless the topology of your network, the interfaces must keep the data flowing in a timely, accurate manner.  If one function of your CRM is to collect order data, but the accounting side sits on a separate ERP, the network must communicate the data appropriately.  The data transforms must occur and the data must be available when each system needs it. 

So, how do you do this?  First, determine your needs.  What business requirements do you have?  Is real-time integration required, important, or a nice-to-have?  Inherent in this is a definition of “real-time” integration.  Ask 10 people what that means; you will get 10 different answers.  Agree to the definition, and then discuss the requirement.  What about batch processes?  Pursuant to our discussion over data, a combination of real-time and batch interfaces can greatly aid in data quality.  Documented use-cases greatly enhance this effort of understanding business needs.

Once you understand your requirements, you must ensure the interfaces all speak the same language.  I am not referring to communication protocol here; you need to tie them back to your data model.  What transforms will you need? How will they be accomplished?  Does a status of “Active” mean the same thing across your systems?  Does that status even exist in all of your systems?  Every individual system is replete with obvious and not-so-obvious nuances in the data.  Document them all.

Do not assume anything.  Define and communicate the interface schedule.  Ensure everyone involved understands the data nuances, especially how those nuances affect the data transforms.  Finally, clearly assign the transform responsibilities to each system so that everyone knows what everyone else is doing.  A tight schedule is the only way to keep the trains running!