For those of you just joining us, CaseySoftware has specialized in integrating Open Source applications. As a result, we've been working with some of the best systems in terms of Project Management, Customer Relationship Management Systems, Content Management Systems, Issue Tracking Systems, and a variety of other systems. [We're biased towards dotProject, SugarCRM, and Mantis, but other people may choose other things.] One of the interesting aspects which we have come across over and over again is that most of our customers want all of these applications rolled together into a single User Interface. I believe that one of the core problems of all these ERP (Enterprise Resource Planning) solutions is the fact that they assume that all users want all the functionality and all UI. A given type of user does completely different things with the same piece of data than another type of user and therefore should have an interface and set of tools customized to their own needs.
First, let's completely get rid of the idea of a single User Interface. That's not what we're really looking for anyway. Your salespeople care about, monitor, and cultivate the sales pipeline. They are intimately involved with every step in the process. Your company's CFO cares about the sales pipeline also, but they probably don't care about the individual interactions that happen with each and every customer. Your Project Managers care about the sales pipeline too, but they're looking at it from a Resource Management point of view. There is no reason in the world these people must use the same interface…. but they do need access to the same data.
Next, let's remember that there are dozens of stovepipe systems out there each holding vital data that we simply can't replace. Without exception, every company or organization I have ever worked with has had a multitude of these systems. Some of them are marvelous in terms of design, functionality, and forethought. Others have been sinking ships from day one. Without the budget and time to replace each of these systems, we must gather this information in order to provide a complete picture of the situation.
Finally, what are our real goals? I believe the goal – especially with laws like Sarbanes-Oxley – is to provide a complete status of the organization in order to give the public, shareholders, auditors, corporate boards, etc a sense of safety and assurance. The more information which can be compiled and presented in meaningful ways can identify problems earlier and with more detail. The value of this law aside, it makes everyone get the warm and fuzzies.
So let's break some rules:
We need to trash two ideas. First, the idea that we're going to get all the users into a single system is absurd. The massive requirements, customizations, etc will require more time and money than most organizations have. If the time and money are available, it doesn't solve the problem now, it solves it at some arbitrary point in the future. Second, we already know that different users need different pieces of the same data presented in different ways.
Therefore, I propose that existing systems should be kept in place but data synchronizations should occur between them. This will leave users in systems they already know and love, but can provide all the information to the relevant people… now we just need to figure out how to do it.