A lot of companies want to build something that fits them. They want the knowledge of the system and how it was put together to be in-house rather than held by a consulting company.

However a lot of people warn you off this approach. “You need experts to do it.” “Don’t try this at home.”

Based on 50 years of experience writing systems for companies, I’ve been doing R&D for the last 12 years on what software has to do to allow DIY ERP development.

The most important issue is: can you develop software that allows non-programmers to build a custom ERP system? Once you have to start working with general purpose programming languages the project becomes subject to all of the delays and frustrations that software development is infamous for.

The only solution that I could see was to build special-purpose software to handle as much of the detail work as possible yet allow the builder to specify all the custom forms, reports and business logic that are required.

So I went back to the past where paper forms ran huge businesses and have for hundreds of years.

By constructing a model based on forms it was possible to construct all the business logic with a point-and-click interface.

This worked — we have systems built entirely by business people.

However there is more to DIY ERP than just being able to specify the business logic and reports (although that is crucial).

One of the main problems with standard ERP systems is the upgrade problem. As this article points out, customizing an ERP system might work for a company, but it can create severe problems when the vendor releases new versions of the ERP system.

The new version of the ERP system will be different code from the original release that was customized, and all of the customization will have to be retro-fitted into it. This can be as difficult as customizing the software in the first place, i.e. an average time of 16 months and, at high consultant rates, a massive bill.

So I had to develop technology that would handle upgrades properly.

There are two aspects to this:

1. New features added to the DIY ERP software should not break any data or logic ever. I can’t emphasize this too much. There is no reason for software to invalidate old data. It just requires setting up the software architecture at the very start to handle this issue. This means that future versions should work with all of your existing data seamlessly. You should get the advantage of new features by just installing the new version, without having to unload and reload data, or any other time consuming and costly activities.

2. It should be possible to change the business logic, calculations, reports etc. at any time without invalidating old data. Suppose, for example, you in the future add a whole new discount scheme for clients based on geographical location. This will impact your invoices as they will now have the discount on them as part of the invoice total. However you should be able to go back to previous periods and see your invoices exactly as you sent them. When you go to previous periods all the business logic that was current then should be active, when you return to the current period the current business logic should apply.

Getting an ERP system is an important step, however keeping it current with your company’s business processes is also incredibly important.

If you are choosing a DIY ERP system make sure that it handles both types of future upgrades gracefully. You don’t want to set yourself up for a major upgrade headache.

If you are interested in DIY ERP check out Formever. I built it to allow DIY implementations of customized ERP systems. I would like to mention other DIY ERP options, but I don’t know of any that satisfy the criteria above (if I’m wrong let me know).

Thanks for reading! If you liked it, hit that heart button below. It helps other people to see the story.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.