The following consists of firsthand tips and experiences on the data migration process from our program manager to help evaluate if it's worth the effort.

You’ve evaluated Mifos, checked out all its functionality, like what you see and are now preparing to roll it out. Only one problem, how to get data from your old system into Mifos.  Seems simple enough, loans are loans, clients are clients, etc. Just move it over right?   

If only it were that simple.

Imagine if you were trying to take an engine out of a car and stick it in a pickup truck. Or even worse, imagine it was a lawnmower engine you were trying to move!  What may seem like a simple task, even with a simple source database, can quickly turn into quite an ordeal.  You may have to deal with things like:

Essentially you are taking one design and trying to move it to another, and without some standard set (Which I don’t believe there is any at the moment), you are guaranteed to have issues. 

This is not meant to scare you off, but rather provide you with a reality check.  Take for instance a data migration we are currently working on.  We have three full-time people working on it, two developers and an Analyst.  In addition to that, there is also the client and I and we're each spending quite a few hours each week attempting to resolve the issues that come up.  Development time will be somewhere between two to two and a half months, but beforehand, both the development team and I spend quite a few weeks doing an initial analysis and the analysis is still going on.  The Analyst has been working full-time since researching every possible issue and figuring out the best solution, trying to stay ahead of the developers.  Added all together, there is probably somewhere between three to four months of work, spread across five people. 

And the source database was simple, out of some 60+ tables we’re only working with about 25 actual tables.  Out of those, only six really hold relevant data, most every other table is a reference table or holds only a few pieces of information.  What all are we migrating?  Just Clients, Groups, Loans, and Transactions.  Everything else is set up manually (Office Hierarchy, all users (400+), config, etc). 

It gets worse.  We’re also working with a moving target.  We have to constantly update the mapping files (between the source and Mifos system) for users and offices everytime we make changes.   We are creating a set of queries to run before doing migrations to try and suss out every possible type of dirty data that may have appeared between development and the migration.   It can't really helped, the MFI has to make forward progress even as we put these scripts together.

In just this last week, much like all other weeks, there were 17 issues we had to resolve.  When we’re lucky, it may take five or ten minutes to determine the right strategy, or maybe 20 minutes to resolve some bad data in the source database (and even then, if its a data issue, we often have to update our starting Mifos database and the source db, and send off updates to the developers!).  When we’re not, it can take a lot longer.  One issue this week required a 45 minute call, on top of quite a few emails exchanged and hours upon hours of research.

Here are some examples of some of the issues we come across:

Those are just six examples, and remember, on an average week we had 17 issues to resolve!  And timing can be critical because sometimes the developers won’t find an issue until they run right into it and may be blocked until you can provide a solution. 

The thing with data migrations is you simply cannot figure everything out beforehand, or rather you’d probably spend twice as long as if you were to just do it.  It’s an iterative process, its extremely explorative and half the time you won’t find something until you start working with it directly.  That, unfortunately, makes it hard to plan for, but there is not much that can be done.  Fortunately, we’re collecting more and more information about moving data into Mifos, mapping what is required for creating clients, groups, loans, etc.  That should help reduce some of the time required.

In the end, data migrations are completely doable and there is nothing to be scared of, just make sure you plan very, very conservatively.

Ryan, Mifos Program Manager