Is ERPNext Ready to be Vendor Neutral?
The big question I was looking to answer at the ERPNext Conference 2018.
As things stand today, ERPNext is driven by Frappe Technologies (for this article, I refer to Frappe as the company, not the framework) that started the project in 2010 and still is the biggest contributor and maintainer. Other than Frappe, there are hundreds of service providers and thousands of end users, including some very large deployments on the platform. With such a large and growing community are we at a point of unlinking ERPNext from Frappe? In other words, is there anyone other than Frappe, able and willing to take up the load of continuously maintaining and extending the platform?
Leading up to the conference, it was beginning to dawn on us that building an open source community and a company are two very different things, and clearly a lot of things were not working out. So we needed to talk. The idea was to propose at the conference, a way to effectively separate the community from the company.
Frappe and ERPNext
From a pure commercial point of view, building something non-exclusive adds very little value to a company, unless it can extract value from it. The biggest advantage to any company publishing open source (and I am talking from a completely commercial point of view, and clearly is not the reason we do open source) is marketing and distribution. The theory here is that open source will drive more signups on ERPNext.com, the SAAS (Software-as-a-Service) offering, and that in turn will incentivise Frappe to support the open source work. On the other hand, as the project grows, contributors will help keep the cost of product and engineering much lower too.
One early decision Frappe made (whether it was good or bad, the jury is still out) was to walk away from one-to-one service opportunities around ERPNext. This would mean offering implementation, training, consulting, support, customization etc. to ERPNext users. The good thing about not taking up these services was that the priority for Frappe was to singularly building the best end-user experience for ERPNext. The bad thing was that this put Frappe in conflict with the service provider community.
Over the years, Frappe learnt that it is extremely hard to get SAAS right, and needs a lot more focus and investment if it has to be really profitable. The pricing strategy Frappe followed meant that it put its offering in what is called the SAAS Valley of Death, which basically means that it is near impossible to sell a complex, low priced product. The 100% Open Source position taken by Frappe meant that it could not fully defend its SAAS offering. Also Frappe realized to attract and retain the best talent meant, it needed to significantly raise the growth opportunities it offered to its employees.
On the other hand, the contributions were hard to come by. The contributions mostly came from end users and not the service providers. The service providers themselves found it hard to monetize ERPNext due to the end-user focus and the do-it-yourself nature of the product itself.
On top of all this, the expectations and opportunities around the product also exploded.
Winds of Change
One of the biggest learning from the conference was that as ERPNext has started to become more popular and mature, the quality of community and the scale of deployments has significantly improved. The large scale deployments at Zerodha and Elastic Run were the highlight of the conference and it was very encouraging to see them take active participation in the community. This also potentially opens up a new direction and opportunity for the project.
From an open source point of view, the fact that these deployments happened without any direct support from Frappe, was a huge validation that the 100% open source policy was working and was empowering these developers to make large scale deployments. The kind of value added to the end users for such deployments would easily be hundreds of thousands of dollars.
Its a Platform!
The other big learning was the sheer diversity of use cases that were being built into ERPNext. It came out clearly that ERPNext should be positioned more as a platform rather than just a product. Not only were there many use cases, there were other projects like the Marketplace that had the potential to take the project on a completely new level.
This also meant that sustaining such a huge platform would become a maintainer’s nightmare. How would the quality of each feature that comes in to ERPNext would be managed? Also the decision to be a monolith (another decision for which the jury is still out) would be fully tested. Getting code into the platform would become a bottleneck, though this would ensure that the design / code / features that went into the product were moderated to ensure excellent and consistent end user experience. Also users would not have to hunt from 7,000 plugins to find what works best for them.
And we are not even beginning to talk about Frappe Framework, the heart and soul of ERPNext, which by itself could become a significant developer tool beyond ERPNext, if there was investment and bandwidth given to it.
During the final session (thank god it was the final session!) it came out that there was a lot of insecurity in the community about what will be the role of service providers. One participant mentioned that he felt that service providers were not loved enough in the community. It also came out clearly that the community wanted have a much bigger say in the way decisions were made in the community, mostly in relation to the product.
This is perfectly understandable. If someone is building a business, either using ERPNext or around ERPNext, the long term sustainability and direction of the project are very important. While this message was clearly said and heard, no one came forth with real answers. The elephant in the room was contributions. For the project to grow and unlink itself from Frappe, the contributions have to come first.
Unfortunately that is how it works in open source communities and probably there is no other model. The right to commit to a project comes with a strong reputation that the person is capable of making the decisions in a way that is fully aligned with the goals of the project. And the only way to find out whether a person is capable, is for that person to prove it by contributions in the project.
Let’s talk about Contributions
All this finally boils down to the investment deficit that lies in the community if we are to really meet the growing expectations of the users. There are so many things to do and so few people really capable of doing those things. It also increases the pressure on the current maintainers to review and give quick feedback on contributions.
From Frappe’s point of view, it’s survival is based on the project too, and it cannot do both. When you are talking to someone as a community member, you hate to think whether you should be giving free consulting. So it is really important to separate the people who build the product and the people who need to worry about the next paycheck.
To do this in theory we need two organisations. On thinking back post the conference, we realised we cannot separate the two at this moment because there is not enough leadership and social equity in anyone else at the moment.
Are we there yet?
Clearly not, but definitely on the way. There has been a spurt in community contributions, specially on the forum. Code contributions are up, but not yet upto the quality standards we expect. To become truly vendor neutral, the community needs to step up contributions so that Frappe’s share becomes a minority.
To complete the deficit when we compare to the expectations from both users and service providers, everyone needs to up their game.
- End Users are the reason the project exists, they must take the lead in giving back to the project, if they want the project to keep working for them. Also the project at this stage needs your help. Companies that have seen clear savings of $100k or more, should at least consider donating $50k to the foundation or in contributions via a service provider (including Frappe). End Users must insist generic features built by their teams or service providers are built as per the contribution guidelines and contributed back to the project. This will also ease their long term maintenance cost and lead to less rework.
- Service Providers need to up build capabilities and the quality of their services. Service Providers, specially if they are small should focus on a particular domain / module / geography so that they can build a repeatable sales model. They need to educate the end user that investing in contributions is the best way forward for them, even from a maintenance point of view. They also need to understand that they cannot over-commercialise the community by having a give-and-take relationship with the community.
- Frappe needs to start fixing its SAAS and start building serious sales and delivery capabilities. Frappe should understand that it will take long for the community to scale up their efforts in a meaningful way. Frappe also needs to build partnerships with service providers so that it can support the community to be confident in closing deals across domains and sizes. (From the Frappe side of things, we are already working on all those fronts. If you are a service provider, we are looking to build relationships with you. Please email us at email@example.com for details)
In conclusion, it was a great conference as we had an opportunity to have all these simultaneous conversations. A lot of things became clearer in concept, but harder in execution. Splitting one company into two is a hard problem and probably we did not anticipate the problems to do that. It makes no point to have a weak Frappe and a weak Foundation.
Like I had mentioned before, if the community, specially end users are a bit more generous, we can easily raise close to $500k that would be required for the foundation to support significant projects. Finding exceptional talent to work on the project is a hard problem and it comes at a significant cost that the community must be willing to pay if it wants the talent to contribute.
If you are a part of the ERPNext community, would love to have your views! Join the discussion on the forum.