When I initially wrote “Importing Legacy Data”, just a few days ago, I wasn't planning to write a followup. After a discussion after the DC Lug meeting on Wednesday evening, I thought some further discussion was necessary.
I've worked and spoke with a number of people working in ERP (Enterprise Resource Planning) efforts to integrate every source of information they have into a smooth, sleek user interface that allows their CxO's to have an overview of everything going on in the organization. This entails pulling information from all Project Management Systems (PMS), Customer Relationship Management (CRM) Systems, Inventory Systems, etc, etc, etc. While all of this information has immense value, I'm not sure I've ever seen a solution that actually works out for two distinct reasons.
First, this is a huge amount of information in completely disconnected systems. Sure, most of these systems have a database behind them. Sure, connecting to a database is a simple thing to do from a technical perspective, but that's not the point. By getting in and touching all these different systems, you are treading into highly political territory. Don't forget how most of these systems were built. At some point, various people – or maybe just the head person – in department X said, “We need better information sharing/tracking/analysis” and then the system was built. It might have been built in house or out of house, but it most likely happened by fighting for the budget, dragging users along, and a painful deployment process.
Now that this system has been in place a few years, the users have gotten used to it, know the oddities, have figured out how to do their jobs, and remember the pain of the initial deployment and training. If you're only pulling data from these systems, you're on relatively safe ground. If you are going to make *any* changes to these systems in terms of functionality, user interface, or anything else, they will protect this system with their lives and fight you tooth and nail if they believe anything will change, break, or operate in any way differently than it currently does.
Second, every single user and type of user of the ERP system wants a different view of different data. Determining the proper presentation of this data along with the flexibility to create the reports adds a level of complexity that terrifies the knowledgeable developer. [Note: The unknowledgable developer will say “sure” and then get completely destroyed as the requirements and complexity spiral out of control.
For example, a Warehouse Manager sees their current inventory, pending orders (incoming and outgoing), along with order history based on vendors and customers. A Customer Account Manager sees customer history, future opportunities, information on contacts, etc. The Support Staff sees all trouble calls along with their history, the resolution, who did what on the call, and the time spent. Previously this information has been kept in different systems customized for these particular view. Pulling this information out and synchronizing this information to create a complete Customer Record requires a great deal of code intelligence, standardization, and dedication from the users of the systems. Good luck.
Now, before everyone throws up their hands in frustration, I believe there is area where these systems can shine. If your CxO is looking for high level information along the lines of “We have N active customer leads for a total of $X dollars,” then I believe an effort like this can work. In this scenario, the goal is not to reconcile disconnected information sources it into a complete record, it is to collect simple summary data. This is a much easier task and allows a bit more variance than can be allowed normally.
If you are looking for ERP solutions, don't believe that I – or ANYONE else – has all the answers.
But first you must ask the right questions.