Supervised Master's theses

Fredrik Gustafsson:
Merging customer relationship management data,
summary, report, June 2016.


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.

Maintained by bendix@cs.lth.se