Fredrik Gustafsson:
Merging customer relationship management data,
summary, report, June 2016.
Abstract:
Working distributed is increasingly important today with technology being more and more portable while connectivity
still is lacking in some areas. Cellphones and laptops are increasingly in use outside the office with connectivity
to internal office services being unreliable, either due to lacking speed or inability to have a connection.
Different solutions exist. One is a client-server setup where the data traffic can be minimized. Another is an
internet service where the client is in the web browser. A third is to use a distributed system where each system
is full functionally in its own but needs synchronizing with other copies of the system. Distributed work requires
duplication of data and therefore, also a need to merge data.
Merging structured data is hard. Great efforts have been made to be able to merge program code in text files and
this kind of merge solutions are pretty mature. However, for merging other types of data the methods are still
young and unproved.
For a CRM system, the data is highly structured and different data fields are known in advance. This gives good
opportunities to merge diverged data. However the current systems on the market are lacking support for merge
algorithm knowing about the data format.
Even if the data is structured it doesn't mean that a merge is trivial. Structured data might have dependencies
between different data fields, so that one field depends on the value of another field. That means that a merge
tool needs to be aware of those dependencies. If also taking the history of changes since the diverging point
into account the possibilities for detecting merge problems is greatly increased.
Different CRM systems have used different approaches to merging data, however, all found approaches have been
without actually merging any data, but instead either identify a difference or guessing the most correct version
without merging. That means that a result will be either one of two conflicting changes but not a combination
of the two.
This paper has studied different use cases for altering CRM data and how three different types of CRM programs
solve these cases. A custom merge algorithm that solves all studied cases has been designed and implemented as
a proof of concept.
The proof of concept implementation changes this and uses the history and the structure of the data, combined
with information about dependencies between different data fields to both identify conflicts and in those cases
a merge can safely be done, merge those cases. The result might then be a combination of two changes, merged
into one.
The conclusion is that current CRM software handles these problems poorly and that it is possible to merge this
data and/or detect conflicts in a good way.