GitHub is a huge inspiration for us. We use GitHub daily to manage all our code code and issues. GitHub has taken sharing and managing code to whole new levels and has enabled a whole generation of open source software.
A couple of months back, there was a suggestion that we should move the Issues section of ERPNext to Jira, because GitHub does not allow voting on Issues. The thought kept playing in my mind days after the post. Why the hell does GitHub not support Issues?
As a developer, I figured that voting is not such a hard feature to implement. The biggest problem is that voting can be gamed, but that is still not a great reason not to have the feature. How about just a setting that would allow project owners to decide whether they want to allow users to vote on an issue or not? Apparently the first version of GitHub Issues had voting. So why take it out?
The project managers at GitHub took a call. Internally they knew that the number of comments is a good proxy for voting. It is not direct, but you can filter issues by “most commented” to identify the most discussed open issue. If a project is willing to move away from GitHub just because there is no voting on issues then so be it, GitHub cannot please everyone. They decided for their users that voting is not for good them, even if they think so.
They took a call.
GitHub does what it does, incredibly well. It is blazing quick, stable, consistent and has deep functionality and that is why users love it. We at ERPNext have been guilty of the opposite. We appear too eager to please our users, and that has sometimes not led to the best overall experience. We need to think like GitHub. Whatever features we have already built in ERPNext have to be amazing.
If we build an amazing experience on, for example 70% of functionality a user needs, and still the user wants to move away, then that user is not ideal. I think this is the way Apple thinks too and a direction we should to move into. If there is a feature that needs polish or extension or better usability, that should be a priority. If its a feature that is not there, and maybe 5% of users would need it, we should leave it to customization. There is so much to be done to improve the existing feature set, and that should be our priority.