Coming Together: Thoughts from the Conference
The 2016 ERPNext Conference was transformational. A summary of things to come.
Most of the people who came, had come to meet other developers and understand the vision and direction of the project from the core team. Over two days we shared and discussed how we plan to take ERPNext forward and enable contributions. Everyone who I talked with was in agreement with the open vision and energized to get started on this new path, lets just call it "ERPNext for Everything"
ERPNext for EverythingJust before the conference we had a lot of internal discussions on what should be the direction for the product. We saw what worked in other open source projects and what did not work. We took a critical look at our strategy to make "apps" and realized that it was not working. There are several reasons.
- ERPNext is a fast evolving platform and the apps, even those made by us, were being left behind. The process of making separate branches and releases for each of the apps was not working out great.
- Having several (free or paid) apps is bad user experience. If the app eco-system grows, we realized there will be a bunch of un-maintained, competing, paid apps that will turn off users. Imagine going to Wikipedia and finding a paywall (Pay to read) on certain pages.
- Having everything in the core product, enables re-use and standardization.
- Once a developer makes a contribution, they do not need to worry if it will be "upgrade ready". Because once a feature is in the "core", it will be maintained by the core team and community
Once we explained this to the developers, everyone agreed that was a great idea. Then there were a bunch of follow up questions on best practices and what makes something core or non-core.
What Goes In Core?
The simple rule-of-thumb is, if what you are making, can be used by other users, then its core. For example, if you are making a new Kanban view, or a new filter widget, or fixing certain data structures, or adding better email integration, or integration with a phone system. All this can be used by someone else. This can be core.
Domains are also core. If you are building modules for schools, or healthcare, or non profits, or agriculture, or advanced manufacturing, these become part of the core too. These can be small features or reports too.
Localizations like Tax Reports, Chart of Accounts, API connectors to government database can also base used by everyone and are also core.
Integrations to third party services like Payment Gateways, E-Commerce sites and platforms like Magento, Shopify, Amazon and others should also be a part of the core, since everyone can use and maintain them.
Removing Bottlenecks to Contribution
Now that we have identified what goes in core (almost everything!) we need to remove the bottlenecks to contributions. For that we have identified some things we will start doing immediately:
- Encourage small pull requests: Smaller pull requests are easy to review and merge. If someone wants to contribute a large feature or module, we will encourage them to break it into small parts. This will make sure that everyone sees progress (release!)
and the new additions also get tested as they get built.
- Increase the number of maintainers: Since we are a small team, we cannot review all pull requests. To fix this we will invite more maintainers from the community who can take ownership of reviewing requests in their areas of expertise.
- Spend more time reviewing than writing new features: Till now most of our energy has been spent on bringing ERPNext to this level, now its our time to change our role and spend more time in guiding and helping other users.
- Encourage participation in all areas including documentation, test cases, design, demos etc: Contributions do not always have to be in code. There are lots of users, domain experts who can help in areas other than documentation and we need to identify more ways to encourage the non developer community.
As we identified, the best features get written with beta-testers and users in the loop. To build the next set of features, we need to invite domain experts from each field (manufacturing, accounting) etc to propose the road-map and also help in beta-testing and feedback. To do this we will plan out each minor release (7.2, 7.3 etc) and have domain experts help us group issues. To make this possible, we are planning to start weekly hangouts with the community. In these hangouts we will propose a topic and invite domain experts to share their views. We will then convert them into GitHub Issues / Milestones and then assign them to developers (within Frappe or the community).
No Paid Apps
Another big decision we made over the conference is that we will not encourage Paid Apps. Paid Apps are generally bad, including for a large number of developers. Very few developers actually make money on Paid Apps and this makes most developers choose this as a monetization model. For the end user, finding a feature in paid apps in a community is like hitting a paywall in Wikipedia.
Also moving away from paid apps will open up the community to collaborate a lot more. There is lots of money to be made in services, hosting, training, implementation, customizations, paid developments etc. Let us focus on building sustainable practices rather than trying to make money from licenses. Paid Apps are anyways disallowed by the General Public License.
Come Be A Part!
ERPNext has grown beyond a simple open source project to a thriving community. Hearing speeches from the community of users and service providers that ERPNext has made meaningful impact on their lives has been truly inspirational. The genie is out of
the bottle and there is no going back.
We are all a part of the sharing economy that is transforming how technology is impacting society. With Wikipedia we created a knowledge resource, with Linux we created a common platform for computing devices, with WordPress we created a platform for
serving websites, likewise, with ERPNext we will create a resource organizations all over the world can use and contribute to, and one that is owned by all of us!
A big thank you to everyone who made this conference a big success!
Rushabh is a software developer and founder of ERPNext. He usually writes about the startup experience, open source and the technologies he is working on.