You wanted a banana but what you got was a gorilla holding the banana and the entire jungle — Joe Armstrong, creator of Erlang.
Let’s say your parents decide to gift you a car on your birthday. They call the local dealer to find out the cost(basic and taxes), write a check and hand it over to you. You would be delighted. You don’t have to apply for the car loan, save for the down payment, you don’t have to pay the EMI to cover the remaining principal and interest. You can just start driving your car. Right?
Well, it’s more than that.
- Upgrades: You may like to upgrade the music system and seat covers.
- Vehicle Registration: You have to pay for the registration.
- Insurance: You have to pay for the insurance. Generally, it’s for the car, the driver and the third party.
- Fuel Expenses: You have to pay for fuel.
- Repair and Maintenance: You have to pay for the service on regular basis.
- Replacement: After two or three years you may decide to change seat covers.
Sum all of these amounts and you arrive at the TCO. The Total Cost of Ownership.
When I found out ERPNext, I was starstruck. How could this software be free? So I went to my manager and said let’s self-host ERPNext and the whole project costs close to nothing.
I wish I had thought about TCO.
If you are deciding to self-host ERPNext you need set the right expectations. For that, you need to understand the details.
In any ERP implementation, the license cost is probably the biggest component or at least one of the major component. ERPNext being free and open source there is no license cost. However, other costs add up over a period of time. Let’s understand what are the costs involved in managing a self-hosted ERPNext instance.
- Setting up and Maintaining Server: Set up the server, secure it, monitor, and upgrade the OS on regular basis. Which OS will you choose and why?
- Setting up ERPNext: While the easy install script is really easy to run, it’s important to understand what it does at least on a high level. When you resize your servers you will have to set certain things manually. For example, setting the number of Gunicorn workers.
- Domain Name: You need a domain name. You can purchase one or simply create a subdomain on your existing domain.
- Configuration: You will have to configure the ERPNext. Please explore alternative ways of mapping the same business requirement on ERPNext and deliberate on the consequences of each approach. For example, what is the best approach to defining cost centers? Based on product lines? Based on branches?
- Customization: You need custom fields on forms, custom scripts to automate a few things, print formats etc. You need to do these customizations in such a way that the upgrades don’t break.
- Enhancements: Certain feature requirements might be very unique to your organization/industry. Make sure whatever enhancements you decide to do/get done are in line with the guideline so that they need minimal changes when new versions are released. Best way to do that would be to get the feature merged into the core so that you don’t have to worry about compatibility.
- Data Migration: If you decide to import the data of the last few years, depending on the amount of data you have, this is a mini-project in itself.
- Developer and Project Champion Training: This is an investment that can save you a lot of money and effort in the long term. Using ‘Customize Form’ tool to add new custom fields is the right way, not editing the ‘DocType’ directly.
- End-user training: Anyone who can use Gmail and Facebook can use ERPNext with minimum training. You might think you need not invest a lot of time on this. But end users will resist any new systems. Before you get into explaining ‘How’ to use ERPNext, you need to explain the ‘Why’ use ERPNext. Why the pain of switching to ERPNext or any new system is worth it.
- Upgrades: You will have to upgrade the system on regular basis. Its best update once in six months at least. If done on regular intervals the upgrades will be smoother. Upgrading to version 11 from version 8 would be a tedious task.
- E-mail and Backup: While you may underestimate the number of emails you need at the beginning, once the end users start using Auto Email reports, comments and notifications it might increase quickly. Also ‘I will manually download the backup on regular basis’ is not a practical approach.
- Integration: Your organization may already be using some applications. And you may have to integrate ERPNext with those applications. As both ERPNext and the other applications evolve over a period of time, active monitoring and changes may be required.
You may not incur some of these charges, but it’s important that you understand what charges you might incur. So you have to gain a fair understanding of total cost of ownership for at least five years.
It’s fun and immensely rewarding to learn so many aspects of running a self-hosted ERPNext project. But it quickly becomes a system on which a lot of things depend. Make sure you understand that the project champion is a full-time role.
So many factors influence the decision of self-hosting vs using the SAAS offering. Thumb rule is the scale of operation. Less the number of users, less the number of transactions, greater the chances of SAAS being the right solution. The time you invest in learning all these aspects of self-hosting ERPNext is justified in a large scale implementation. Self-hosting in a small organization is like wanting a banana and getting a gorilla with a banana.
All in all, you need to think long-term.
(Full disclosure: I am an employee of Frappe Technologies Pvt Ltd which develops and publishes ERPNext with open source contributors and provides commercial hosting and support solutions on erpnext.com)