Editors Note – As a leading hosting and web-services company in the industry, it is a constant challenge to fit as many feature requests and updates as possible in every product release. As any online service provider would know, it is not always easy to completely satisfy each and every client with every new release. While not every feature that is desired can be immediately integrated, we want to assure you that each request you make is taken extremely seriously and a final decision is made only after several rounds of internal debate and discussion. We hope that today’s blog acts as a small step towards increasing the signal-to-noise ratio on our support channels since we believe that if you, our Resellers know about our processes, it will help immensely in enhancing your overall Reseller experience.
At ResellerClub, the process of improving our system and incorporating new features involves several key stages. We are active proponents of the Agile Development philosophy and have taken several steps over the years to focus our entire development ethos around this concept. Features that we choose to implement are definitely not picked up at random! Meticulous planning and strict processes are used to govern our selection of task priority. We proactively attempt to keep our entire planning and decision-making process as transparent as possible.
Every feature request or bug report received via our various feedback channels is considered and discussed by our Development team. After every request is made, a “Task” ticket is created for our Development team. Every feature so added first goes through an intermediate level, where it is filtered and added to our advanced Project Management system. ResellerClub uses JIRA, developed by Atlassian to track and monitor issues. Every issue is added with a neutral priority and is assigned to the relevant development sub-team.
Every Wednesday, our entire Development team meets for a town-hall meeting where each feature request is brought forward and intensively debated upon. The Merits and Demerits of each request are considered with those features that have a tangible and immediate positive impact on your business given the highest priority. The Tasks so decided upon are marked with the appropriate priority level until completion. With the process being this lucid, it is easy for us to constantly evaluate the direction we are moving in and acts as have a compass for our growth.
After every launch, we occasionally have a few Resellers who ask us why we did not integrate a certain “amazing feature” that they wanted. Even though we may have skipped a certain feature, I assure you that the list of features included in every update is a result of careful planning, in sync with our vision of the future. Ultimately, every feature-request added to a release is prioritized keeping in mind the direction we are moving in.
Before we explore the process of setting priorities, it is extremely important to understand how we structure our releases. Each release cycle is planned a set period before the current cycle has ended. On a macro level, we define the overall vision of the cycle, the goals that each development sub-team needs to achieve and the time-frame required to achieve these goals. Each sub-team aligns itself to complete a list of tasks which is drawn up from all comments made by you, directly based on your feedback! The selection involves identifying high-priority issues based on parameters such as:
- The Number of Resellers it benefits
- The Isolability of each Task
- The Increase in Revenue it helps you achieve!
We have always prioritized feature requests that benefit the maximum number of Resellers. This is occasionally a tricky decision to make which is ultimately taken by the respective Project Managers within our Development Team. Other features are spread over multiple cycles and only released after an extensive internal ‘test-build’ process.
Behind the scenes, a feature request that involves making significant modifications to the existing code of OrderBox (the core engine that powers our system) inevitably gives our Product Engineers nightmares! The complexity of the system today surpasses some of the biggest online applications in the industry, making modifications an unenviable task. It is hence inevitable (not to mention important!) for us to pay greater attention to stand-alone features. Isolability, hence, plays a very important role in planning our release cycles. Any feature request that can be implemented without making major modifications to the existing system will always be given higher priority so as to lend your business greater stability.
We take steps to ensure that every feature that we integrate does not affect the stability of the system in any way. In a system as advanced as ours, we have a lot of inter-connected dependencies. There are certain sub-systems that we try and leave ‘as-is’ so that there is never any chance of a downtime that can affect your business in an adverse manner. To add a bit of perspective, a recent initiative to add a feature to the way Billing and Invoicing is handled in our system required us to make changes to nearly 5000 lines of code! As any Software Developer will attest, this is no mean task!
According to Rushabh, Senior Product Manager on our team – “At ResellerClub, we follow an Agile Development process. We have weekly iterations for every team and stand-up meetings every single day. These help the entire Development team to always be on the same page so that each Developer understands the progress of the release cycle and what needs to be done.”
We hope that this article gives you a fair insight into what guides and motivates us in setting our Development priority for our system. So the next time that you request a new feature on our system, be assured that it will always get a fair and thorough consideration from our entire team.