The Integration Competency Center (ICC) is sometimes referred to as an integration Center Of Excellence (COE). It represents a shared service function within an organization, particularly large corporate enterprises as well as public sector institutions, for performing methodical data integration, system integration or enterprise application integration.
The final goal of the ICC is to have in place a layer that exposes enterprise data and functions in a consistent way, integrating together all the applications and the systems in a cohesive fashion. The “backbone” of an ICC is to use a Common Data Model (CDM) in order to have a common way to represent entities, either business or technical. Moreover all the messages exchanged between the involved parties are based on CDM’s entities, creating messages as Canonical Message Model (CMM). In this way is guaranteed the unique way of representing and exchanging information within the organization.
We worked with different customers in order to set up properly an efficient and working ICC. With this post I would like to share what have been the main challenges that we have met and overcome.
Building an ICC that works properly is really a challenge, mainly within large organizations with several stakeholders and different running systems. The aspects to take care of are several and some of them can really make the difference in the project success or failure.
Common Data Model
As I said this is one of the most important part to take care of. It has been defined like the ICC backbone, in order to have a common model and a common way to exchange information. The concept is quite simple to understand, but difficult to digest if someone is “forcing” you to adopt a message model completely different from yours.
The difficulties are also on the CDM modelers’ side, because they have to start building this CDM referring to something. At least for the telecommunication companies TMFORUM SID helps them out. At the end they have to understand what data are within the organization, how they are currently modeled and how can be modeled in CDM. Those steps are not always so simple to apply and the process itself can take time to be finalized.
Another important role is established by an enterprise authority, within the organization itself, that confirms/validates the data model chosen, in order to avoid misunderstanding and moving forward to the final model.
Within the context of an ICC it’s also possible to work following a factory model, but not everything is smooth as someone can imagine, at least at the beginning. In order to apply the factory model several things need to be taken in account:
- Setting up of clear guidelines for all the phases (e.g. architecture, design, development and testing).
- Make use of hand-over sessions (e.g. every time that a task is moved from one team to the other, like from the design phase to the development phase).
- Make use of meetings with the external parties (e.g. stakeholders external to the ICC boundary) to explain the purpose and how to use the services exposed by the ICC. The best well-written document will always lead some doubts in the end user. It’s better to sit together and have a shared session to go through it and verify that the message is received as the expectations were from the end-user point of view.
- Explain the delivery process to all the stakeholders (internal and external to the ICC) in order to be sure that all are aware of the steps to be performed.
Nowadays it’s very likely to meet working environments with multicultural people. This can be within the same organization itself, but it might be also because the organization makes use of external companies to deliver services. In this context it’s vital to understand the differences and try to exploit them instead to surrender to them.
Another important aspect is to choose the proper integration technology. The organization has the duty to make this choice, but all the consultants together have to provide proper advices to decide the correct one. The main points of influences are:
- Check if the environment is completely “green field” or some other integration technologies are in place.
- Check which systems to integrate to and what are the protocols to exchange the data.
- Check what kind of “native” plugins or adapters has the integration technology to become a good candidate.
- Check how much mature the integration technology is and how many customers are already happy using it.
Another point of attention is represented by the competencies within the ICC. Setting up the boundary of responsibilities makes clear who is doing what. When has been decided what will be provided by whom and in which way, nobody can complain about missing things or misunderstandings. Setting boundaries, together with a proper delivery process, help people to work in a structured way.