Nicolas Wavrant

Coding for humanity

Better than a framework : an ERP !

Often among IT professionnals the question of using a framework versus not using a framework comes up.

Implied questions are :

My position on the subject is that for any project that is bigger than a marketing showcase developers should base it on an ERP. ERPs are frameworks on steroïds, and without their limitations (because they're extremely customizable by design).

1. ERPs are a superset of frameworks

As said above, people who use framework do it because it:

Obviously, all these arguments apply to ERPs. But ERPs have many more advantages.

Like a full-fledge framework, an ERP will include all the most common functionalities needed by an IT system : multi-user management (subscription, login, security, etc), CMS (Content Management System), back-office, etc.

But it will also come with modules never embeeded in a generic framework but are often required in any product : billing / invoicing, CRM (Customer Relationship Management), e-commerce, PDM (Product Data Management), inventory, …

Often, it is possible to find plugins providing these features to the framework. Sometimes, it is also possible to find a full solution built-on a given framework (for exemple Plone, a CMS based on the Zope framework). But if we need more than one of these features, only an ERP will provide a correct and out-of-the-box integration of all these.

2. ERPs are elite soldiers

Another argument often coming when praising the use of frameworks is that they are the shared knowledge of many IT teams, whereas writing a new system from scratch will make developers fall in and discover new pitfalls already adressed in frameworks.

Here once again ERPs shine. When frameworks are used in many low-impact projects, ERPs evolved to adapt to the messy and complicated business processes of companies. Being a critical part of the company life, they had to become extremely reliable :

I found that transaction management is the feature that all frameworks lack. Whereas ERPs have integrated transactions into their DNA, frameworks leave transaction management to the developer. This makes sense as frameworks don't manipulate data as much as ERPs, and transactions add an overhead. But when the project will get bigger, transactions will become mandatory, and adding them afterwards can only create bugs.

3. Then why ERPs aren't more common ?

There is no good and valid reason for why developers don't want to learn ERPs. But there are 2 things explaining why developers stay away :


Frameworks are very good for low-impact websites, with not a lot of features, for developers who don't want to invest a lot of times. For exemple, such use cases could be : show-cases, personal websites, intranet portals. But for any serious projects nothing will beat an ERP. Don't get intimidated, learn one once and you'll see they are not that hard.