Why Should we contribute custom features into Core Product?

In ERPNext Pune Community Meetup II, we have detailed discussion regarding contribution.
I am sharing some points here, please add your views if you feel anything need to add.
It will help to make document and share with service providers and end users.

Why should we contribute?
We will get following advantages if we contribute features into core product
1) Upgradable System:
We will update our system any time to get latest fix and new features.
2) Low Maintenance Cost:
Once we contribute feature in core product, then core team and other contributor maintain/update our feature while developing new feature or pushing any fix for existing feature. It will save developer time and cost.
3) Extend Functionality:
Other user can also use our feature and give valuable feedback on it. Our feature will work as plugin and others can easily extend it.
4) Quality Check:
Before contribution our feature goes from some quality check process as code review by experienced developer, test cases, and fixing patches for existing features. It will ensure our development is bug free and as to standards.
5) Documentation:
We will have user manual and our features get well documented with the help of other contributors
6) Usability:
As lots of user test and use contributed feature, it will ensure that it will pass all use cases for different users and .different scenario.

7) Sustainable Project:
As large collaborator will working on Project, it will ensure that ERPNext will be sustainable. if any service providers fails to give service, you will get service from another many service providers and developer as project sustains.

Sambhaji Kolate


Thanks @kolate_sambhaji for sharing this list!

The context here is customer education. One of the biggest reason contributions don’t come upstream is that the customer only thinks short term and does not care about contributions.

If you are a service provider, before you pitch customization to a customer, you should run through this list with your customer so that the customer then understands the value of contributing upstream.


@rmehta, we do need some dev docs in this regard.

We need a step by step instructive video which walks through a simple customization case and how that can be contributed back to ERPNext. Also, I believe I had seen a video on coding conventions, testing etc. which need to be followed.

If they can be mentioned in the docs or the relevant documentation referenced, it will ensure that we can train any developers doing custom work to take the necessary steps to contribute the features upstream.