But on the other hand, we have limited resources. Our business model, where our users pay us subscription fees instead of upfront, also called as SAAS (starving as a service, a.k.a., software as a service) and often times nothing (free software a.k.a. open source), means that we can only dedicate a few developers on our team. This problem, as you might have guessed, only compounds as we delay. So we have to be very careful how we manage things in the immediate short and long term.
When we take a long term view of this, being open source is not the problem but actually the solution. Looking at things from a developer point of view, we decided that the best way to attack this would be to make the platform developer friendly. Here we decided we will first tackle some very-big-issues with our architecture and then improve the documentation. Once this is done, we hope that developers will find it easy to hack into the system and fix issues.
The other thing we realized, that if we fix the really-big-problems, then the smaller problems solve much faster. The biggest problems are always due to data architecture. Because we have built this application one bit at a time and the scope kept on expanding as we grew, the decisions (or indecisions) on the database structure have started to hurt us. On the lower side of the risk is code duplication, which is bad enough, and on the higher side is that the redundancies are a big cause of inconsistencies and bugs. So we have decided that we will need to solve these really-big-problems first before going on to smaller ones.
"But Mr Umair, your GitHub isn't working" a customer reminds us when we ask them to post an Issue to GitHub. We just want to tell everyone that we are listening and we will come to those issues and we want you to keep adding to the Issues list. Every month, the list of really-big-problems is getting shorter and now there are only three or four big issues. Once we are through them, we will take on the smaller issues. So keep 'em coming.
Will be great to have your feedback on this.