When we started building the company in 2008, we were an 100% customer driven. ERPNext (back then it was not ERPNext, just an ERP project) was like any other customer project we were doing. That's when we did sales. At the time, I used to go with my colleague Rahul on sales calls. On one such particular call, the customer made us wait in his reception for two hours even though we had an appointment. During that waiting, I decided that I am never doing this and this nudged me towards my inner goal of building a product company. It was another two years before we wound down everything and decided to concentrate on ERPNext.
Working for customers has its good and bad. On the good side, you get to learn about different businesses and it is generally well paying. On the bad side, you are forced to do whatever the customer wants, even if you think the design is all wrong. There is a perverse incentive on writing careless code, because you want to be able to charge high maintenance fees. Also at the time of payment, the customer can become very annoying and suddenly want changes that were not discussed early on.
Either ways, not working with customers was liberating. We could concentrate on building a good product that we cared about. Since we used ERPNext extensively, we became our own best customers. That did not mean we stopped listening to users, but we were no longer hostage to their demands. Most of the features in ERPNext has been asked by a user and what you see at the moment, is a result of feature requests by our initial users.
Our way of making money was via cloud hosting. In 2011 our revenue was $15,000 and we were bleeding cash. But we kept going on with the hope this will eventually turn around. In 2015, finally we were profitable, but our revenues are still not very high. Thankfully now we can sustain our team the way it is without worrying too much, but that does not give us too much firepower to build new features at a rate users want them.
In this time, ERPNext has also gotten more and more popular and the customer demands have increased, this has given rise to a few developers who now have the expertise to develop on the platform. While this is great for the ecosystem, it is not so good for the product because these developers have no incentive to contribute back to the product. In fact, their incentive is to keep their extensions closed, so they can maintain their competitive advantage. Additionally, making something product-standard may not be something that their customers are willing to pay for.
After a lot of contemplation on what we can do to help this situation, we have decided that we must help customers build features but in a way that is still aligned to our "product" philosophy. So we started the Paid Feature Development program. Under this, a customer can ask for a feature that will be directly included in the product. There are already a list of features that have users have started demanding. Even though it is early days, we hope this can scale this up. We hope that users who were on the fence because they wanted something built in ERPNext can now get this built directly in the product. And as a result of their sponsorship, the product will continue to develop in a much faster way.
If you are looking for a missing feature in ERPNext and are willing to sponsor, just ask!
Edit - This program has been discontinued.