Enterprise Software Hierarchy of Needs
There is an interesting theory in psychology called the hierarchy of needs, which said that once people's basic needs such as food and sleep are fulfilled, they would turn to higher needs for love, self-esteem, and ultimately self-actualization.
I am starting to see a similar hierarchy of needs for enterprise software, both from general trends in the industry and from our experiences with the opentaps Open Source ERP + CRM system: As organizations satisfy their most basic software needs, they tend to go up the ladder and turn to "higher" and more sophisticated needs. This "enterprise software hierarchy of needs" seems to follow this pattern:
1. Data: At the most basic level, every organization needs to standardize its operational data and make sure that everybody is using a common set of data. If this sounds simple, it isn't. In most organizations, duplicate sets of data are held in different siloed systems. For example, the accounting, shipping, and sales departments may be using separate sets of customer records. This could cause a lot of mistakes, like shipments or invoices that get sent to the wrong address. It also makes it impossible to answer basic questions like "How profitable is this customer to us?" Therefore, the first step in implementing any enterprise software is to create a common data platform with a centralized system, such as an ERP or CRM system.
2. Automation: Once you have a common set of operational data, it becomes possible to automate a lot of its processes across departments. For example, in the opentaps Open Source ERP + CRM system, you can enter an order for a customer, then process the order and invoice the customer without having to re-enter any data. Each part of opentaps would simply look up the customer, order, and pricing data it needs from the centralized database. As natural as this sounds, it amazingly is something which most companies cannot do. Instead, data is manually re-entered as an order moves from one stage of fulfillment to another.
Automation would greatly reduce manual effort and error, and anyone could see how it could make the organization more efficient. The danger, however, is that you start to automate all sorts of existing processes, even those that are losing money, while failing to focus on better opportunities. But the only way to identify the right business opportunities is through next step on our hierarchy of needs: analysis.
3. Analysis: Perhaps the greatest value of a common data platform is actually the ability to analyze the organization as a whole, rather than just blindly automating processes. This would allow you to answer some important questions, like: Which products should we sell? Or: Which customers are actually profitable?
There's an interesting chicken and egg problem here: you can only answer questions by having data, but you won't know what data you need until you know what questions to ask. Thus, while building a common data platform would help an organization analyzes performance on an ongoing basis, it may actually be better to start with a list of key questions and attempt to answer them first with legacy data and estimates. This way, we could get an idea of where the organization should be headed before implementing new software.
4. Intelligence: This truly is the holy grail for enterprise software: using all that data, automation, and analysis together to improve bottom-line results. It often relies on data to support analysis that identify the opportunities, automating processes to capture those opportunities, then collecting additional data along the way. It could be something small, like the way Amazon.com uses shopper behavior to figure out which products to show to new visitors. Or it could be something sweeping and comprehensive, like using detailed sales and profitability data to identify new lines of business. Although very few companies have achieved this level of sophistication, it is exactly what every company must do to become the leader in its field. More than streamlining some back-office processes, this should be a ultimate goal for implementing enterprise software.
In my future blogs, I will write about how the way enterprise software could fulfill these needs is fundamentally changing. I will also give some examples of how to analyze operational data to identify opportunities.