A short note here: I think this topic is dying the death of so many foundation related discussions in the past. A good idea starts with a few good replies, then turns into a back and forth of small comments and eventually dies without consequence. That’s too bad because I appreciate Jay’s initiative and this is a very important discussion to be had.
I will try to contribute my and some of my team’s thoughts here:
What ERPNext and Frappe Framework Really Needs
Disclaimer: ESO is a small enterprise industry user so what we need may be different or even opposed to the needs of other users. Agriculture, Hotels, Restaurants, Software Development all may have completely different needs. I am saying this because I want our suggestions to be understood in the context of what we believe enterprise industry users need.
Another Disclaimer: I know that Frappe and Rushab as well as the community are all trying hard. A lot of the things I am addressing here are work in progress that has been started. I also include myself and our team in how we have to improve to make this experiment a success.
1. Stay Focused, Stop developing distractions
My biggest mistakes when implementing ERPNext in our company (we are now 3 months live and thriving!) was to immediately develop features instead of focussing on core processes. A ridiculous hyperbolic example would be having implemented a Barbecue Party DocType which logs what kinds of foods are available, who attends and who has paid. We didn’t implement that but the ease of how fast you can develop things in ERPNext makes you sometimes lose track and ultimately instead of cracking the tough nuts like accounting you will implement a nice to have feature.
Rushabh was rightfully so criticizing me for this all along and I think that the Frappe team is also making the same “mistake”. The website now lists what they do as “Frameworks + Apps”. A lot of attention seems to have been given to frappe.js and accounting, bench manager, agriculture and healthcare modules etc. All of this is fine and good but as an enterprise user, we need a robust framework and ERP system before these other things are dealt with. I am excited about frappe.js and accounting is a very cool implementation of it that could be showing the direction of ERPNext in the next years, but right now we might have bigger fish to fry.
So stay focused on frappe framework and ERPNext, within that make the framework and the core ERP perfect. Don’t try to widen the domains of ERPNext for the moment and don’t invest in new products.
2. Improve the documentation
If we really want to attract quality developers and customers to this framework we need an excellent documentation. Right now most people I come in contact with and what contributions there are are not up to standard because in part it is hard to know what the framework can do and because there are no standards.
Frappe and the foundation should consider experienced technical writers who can create a complete developer and up to date user documentation. Code style and contribution guidelines should be revised and enforced. The same goes for forum discussions or issues, things are proposed in many different places and there is no structure to it.
Create official documentation on how to set up servers and development environments. A lot of developers use windows and we have no way to set up a proper environment. Guidelines on how to set up servers with all security considerations and how to set up an ideal developer environment are for a framework that has so much essential. This would also make the framework easier to access for junior developers (think Django).
Hire technical writers to create better setup, developer and user documentation. Have someone full-time to take control of the issue tracker and discussion posts to ensure quality.
3. Open Day and Release Launches
A lot of functionality gets introduced to frappe and ERPNext without people really noticing or being alerted to the fact. There are attempts of webinars and open day slides which keep people up to speed. I believe the releases have to be bigger events that are structured so the growing number of stakeholders can tune in and follow exactly what is happening, how it affects them and what they need to consider.
This is not only true for the frontend but also things like a switch from NPM to Yarn or new API or utility functions are quietly introduced, not documented and thus get lost or go unnoticed
Have an Open Day presentation with a proper webcast in which we can see high-quality slides and presentation. Have a proper release presentation that is more user-specific and one that looks more at code-base for the developers.
4. Foundation Governance
As I have said before I believe a project like this needs a good company and a strong leader behind it. We have that with Frappe and Rushabh. However, as they have identified themselves, to have long-term trust in the foundation and the independent viability of the product as such we need a strong foundation with its own governance. It is somewhat problematic that the foundation and frappe are so entangled, at the same time nobody is really stepping up and the foundation can’t live on its own.
I don’t really have answers or suggestions. The only thing I would suggest is to try to keep the funds and not spend them lightly and to try to ensure the long-term viability of the foundation as a self-governing entity. At least this should be the goal.
Besides those topics that I addressed above here are some more thoughts on what would be a good road-map for the stability of the core system rather than be widening the domains:
- Make Datatables stable
- Better PDF library to replace WKHTMLTOPDF which does not messes up styling (or integrate it better)
- Pay more attention to website and portal modules
- Create better webforms
- Clean up the 10 years of code, refactor and spend more time on improving docstrings
- Do a security analysis and try to find security issues more consequently
- Better Project Management
- Single Doctypes to be linkable on Desk
- Multilanguage websites
- More stable releases that are tested better to be enterprise ready
- Modern design for the website and some attention to the website module
- Webpages need to be redesigned to feature modern technology like vue.js that hook to DocTypes with socket.io
- Handling big screens better for more information displayed
Thanks for reading!