Requirements Engineering - The root cause behind the failure of ERP Systems

Objective - Here I will discuss some of very fundamental reasons behind the failure of ERP systems. I have conducted more than 100 corporate trainings on various SAP Technologies and also have trained engineers at SAP Labs India on designing systems. In this article I will merge my understanding of enterprise systems like SAP and system design best practices to get some important points out.

We will start this article by looking into a following real life situation

"A global electronics major having an Indian presence wanted to implement an ERP system to address the Indian market using which they could automate their automate the factories and integrate various business entities. The company choose one of the very famous and successful ERP system and hired one of the biggest IT service providers as the implementation partner. Today it has been around 3 years and the company has invested around 15 crores on the product and the service fees to implementation engineers but the beauty is not even a single factory is automated and the workers are not using the same and more than 15 crores is already being wasted on this project. I happened to speak to one of the top executives of the company and the reasons for this failure is worth discussing".

First according to him the implementation engineers are just not able to understand the complexity of the business system.

Second reason was further more baffling, the first year the implementation company had deployed 15 implementation engineers to implement the system. First of all these implementation engineers were not able to understand their business, worst 70% of the team quitted their company for join another company, for which the implementation company promptly provided the same number of implementation engineers. Since there was not formal documentations or models, the new implementation engineers again had to understand the business from the scratch and by the time they were able to understand something of the business, the new wave of attrition pulled out few more implementation engineers which was promptly replaced by the implementation company. One thing noticeable is the promptness of the Implementation company in providing replacement resources(this is courtesy the thousands of human bodies they hire).

I have seen a lot of businesses who have tried adopting ERPs face a similar problem where few of them gave up the idea once the cost started increasing exponentially , while few of them with deeper pockets went that extra mile to get atleast something working while a of them just left it as it is thinking this is what ERP systems are all about thinking them of useless.

In this article we will try to understand the crux of the problem along with some probable solutions. Most of us feel that the ERP vendors have to be blamed for this, but in reality ERP vendors are not at fault, the fault actually lies with the implementation companies and the Implementation Engineers along with the host company which is tolerating their irresponsible and unprofessional behavior.

We will start discussing this by understanding the very definition of ERP systems.

ERP Systems:

At the very basic level a ERP system is a software system meant for achieving a business purpose. Before getting into the specific of ERP systems, let us again revisit the definition of software systems. As discussed in our article "What is a software system?"

"A software system is an automation system which is supposed to automated the complexity of the real world systems by using the abundantly available processing power of the computational hardware, the storage capability of the storage hardware and the communication capability of the communication hardware in the most optimal form thereby adding a value to the end user in terms of achievement certain things which were manually not possible because of the scale of the real world systems and limitations of human beings."

Second we have also discussed , for any automated system to behave as naturally as the real world system, the following prerequisites needs to be satisfied

  1. The structural and behavioral complexity of the real world system to be automated needs to be understood
  2. One should be able to replicate similar or better structural components on the automated system side, make them interact in the same way and the automated system will behave as naturally as the real world system.

As we have discussed in the article , did companies like SAP or Oracle invent the concept of Enterprise resource planning or were the business enterprises not planned before the development of these ERP software systems?

Let us understand business enterprises were planned even in the past much before the invention of these ERP software systems, but they were planned manually. As they were planned manually there was a limit up to which these business enterprises could be planned because of the limitation of human beings wrt the processing, storage and communication capability and that's where after a particular level planning of huge business enterprises either was not possible or extremely difficult or was very time consuming.

So if there is a need for a software system to automate the complexity of planning of business enterprises... This can be implemented in two ways..

  1. By building a custom software system specific to that business enterprise which is supposed to automate the concept of enterprise planning for the complex business system.
  2. To build a configurable generic platform that should allow a person to represent or model every possible business component and business processes possible in the industry for any business enterprise.

As the first approach is highly inefficient because it is highly time consuming and cost prohibitive to develop a custom software system for each and every business enterprise. Hence ERP vendors like SAP or Oracle etc first studied the various business components and processes of any business enterprise and then developed a highly robust, flexible, configurable platform using which a person can represent every structural and behavioral process of their business just by configuring the software system declaratively while the platform then provide the scaffolding code needed to implement the same along with other non functional behaviors that are expected by the user.

So an ERP system is nothing but a software system supposed to automate the complexity of planning of complex business enterprises by using the hardware in its most optimal form.

Most of the time people feel that the problem lies in the ERP Software Systems provided by the ERP vendors, but in reality ERP Software Systems are not the real problem, it is actually the implementation company and the implementation engineers who are responsible for this problem.

As I am myself an expert of one of the biggest ERP software providers and have trained their engineers on designing systems and have idea about other ERP systems as well. I can say with great confidence that most of these ERP systems are pretty well designed and are flexible and extensive enough to model every other possibility with a business enterprise. But just because your ERP system is capable of supporting every other business component and process needed within your business organization will not ensure that your ERP system can actually automate your business and address your business objective.

Let us understand, ERP vendors have just provided you with a platform where in you can configure everything that is possible in your business.

Now the next logical task is for someone to understand the complexity of the target business system and model/represent the same on the software platform provided by the ERP Providers. This is the task of an Implementation Engineer and this is where the major problem lies.

Think about it almost all the ERP system failures have one basic problem, the implementation engineers didn't understand the complexity of our business.

How is this possible that a implementation engineers are not able to understand the complexity of your business?

If you have read our article "Human Limitations wrt software systems" you will realize that the implementation engineers as human beings face the same human limitations of "Single Frame of Vision" and "Inability to comprehend hundreds of logical scenarios in a business process".

Let us understand from a very basic point of view "When does a business opt for a ERP System?".

I hope you will agree that a software based ERP system is needed when the scale of the business increases or it becomes too complex and hence software systems are needed to utilize the hardware resources to take care of the limiting resources and thereby address the problem of complexity.

The fact that the customer is asking for a ERP system means that "His business is pretty huge and highly complex and its resources can be no longer planned using manual skills." If the system is highly complex , then the problem of single frame of vision comes into picture wherein for the complex system to be understood completely "one should be able to visualize the structural and behavioral complexity from different perspectives at different levels of granularity in a single frame of vision". Let us understand business systems are not small enough to be visualized in a single frame of vision. The fact that ERP systems are only needed when the scale of the system increases means that your business systems cannot be visualized in a single frame of vision and if a person is unable to do so, he cannot understand the system the right way.

In fact the moment the problem of understanding the complexity of systems comes in all the problems of requirements engineering like human limitations, strategic issues, behavioral issues will come into picture and this is what leads to a situation that the implementation engineers as human beings are just not able to understand the complexity of your business system.

You can understand the topic of Human Limitations in our article "Human limitations wrt software systems."

The fact that the customer himself is a human being and is suffering from all the limitations will ensure that although the customer knows his business well, still when it comes to giving his requirements about his business , he may not be able to do so.

As discussed in other articles, the task of understanding complex business systems taking the human limitations into account needs a great amount of expertise in understanding complex systems. Ideally the job of Implementation Engineers is much more complex as compared to business analysts. Apart from having the expertise in understanding complex business systems they should know the various customization features of the ERP system using which they can configure the target business system.

But the reality is very different from what should be done. In reality the implementation engineers neither experts of handling complex business systems nor are they trained for using the best practices and the tools. Worst they are not even aware if the fact that business systems are highly complex and they as Human beings have certain limitations. Most of these Implementation Engineers are just given a crash course of some basic features of the target ERP system during induction and rest they are supposed to learn on job. Technically for the implementation company , these implementation engineers are just head counts which has to be billed.

Also in my article "Managements perspective of Software Systems", I have discussed the reasons why management of implementation companies will not be keen to address this issue. Just think about the case that I have discussed in the beginning of this article, will the management of the implementation company not be happy with fact that their ten head counts are billable for 3 years and they have made 15 crores as revenues from the customer and the project will continue for years.

As in my article "Behaviorial Issues wrt Requirements Gathering", I have discussed the fact that the task of requirements engineering along with complex system understanding demand extreme level of discipline and rigor. As it is any ones guess , when the management of the implementation companies are themselves getting benefited because of this problem, why will the Implementation Engineers apply the expected level of discipline and rigor when their management doesn't demand the same from them. More so Demand Supply Inequality makes the thing much more difficult for the customer.


  1. Understand ERP Systems in the right spirit.
  2. Ensure that the Implementation Engineers are experts in handing complex systems. Unfortunately ,finding implementation engineers with this skill is extremely difficult. If the right implementation engineers are not available, hire expert consultants who can do the job of understanding the complexity of your business system and then supply the same as input the implementation engineers.
  3. The most important point "Customer put your foot down", make the implementation companies accountable. As a customer you should first have a belief that this problem can be solved. As much as possible settle in for a fixed priced model instead of a time and material model.

Make sure that Implementation Company know well that they are paid for configuring your business system to the target ERP software system.

Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer