How can we help you?

How do you decide which features and bug fixes to prioritize?

Shardool Gore (PM | Zimbra)
August 29, 2023

This article explains the criteria and methods used by the Zimbra product team to shape the Zimbra roadmap.


Stages in Zimbra Roadmap
Before we dive into the prioritization process, let’s do a quick recap of the different stages in the Zimbra roadmap:

  • In review: Initial evaluation of feature requests or bugs to ensure alignment with product vision and goals.

  • Accepted: Feature requests or bugs that meet our criteria are added to the backlog for future consideration. Bugs and features are prioritized using an industry standard framework. They are then placed into a prioritized backlog.

  • In progress: Development team picks up bugs and features from the backlog as per priority. This stage is the active development phase of the process.

  • Released: The feature or bug fix is available in a production build.

 

Detailed explanations of each stage can be found here.

The RICE Framework and Bug Prioritization
An essential aspect of moving a bug or feature from “In Review” to “Accepted” to “In Progress” is prioritization. At Zimbra, we use the RICE prioritization framework to evaluate and prioritize feature requests and bug fixes. RICE stands for Reach, Impact, Confidence, and Effort. Here is how we apply the RICE framework:

  • Reach: We evaluate how many customers will benefit from a bug fix or feature over a specified period. If a bug affects a sizeable portion of our user base, it may receive a higher priority. For example, a bug that reports an issue with mail search will get a higher priority compared to an issue that is related to Tasks search.

  • Impact: We assess the potential effect of the bug fix or feature on a user. Impact is the measure of the estimated impact on an individual user related to a goal. Basically, a generalization of how much the feature/functionality affects the user. For example, an enhancement that adds a new filter criterion will have a high impact on increasing a user’s productivity by filtering out unnecessary mails, compared to providing a more user-friendly message for an error which occurs in rare situations.

  • Confidence: We determine our level of certainty regarding the reach, efforts and impact estimates. If we have high confidence that fixing a bug will positively affect many users, it’s more likely to be prioritized.

  • Effort: We estimate the amount of work required to implement the bug fix or feature. Bugs that have high reach and can be resolved quickly might be addressed sooner.

Once we have assessed a bug or feature request using the criteria above, we assign it a RICE score. This score helps in comparing and ranking the items in our backlog. High-scoring items are more likely to move from the “Accepted” stage to the “In Progress” stage.

 

Balancing Business Goals and Customer Needs
While the RICE framework plays a critical role in prioritizing bugs and features, a holistic approach necessitates the consideration of additional factors that balance both business objectives and customer needs. Here is a deeper dive into these factors. Please note that these factors are not in any specific order.

  • Alignment with Zimbra’s Product Strategy: We evaluate how closely a bug fix or feature aligns with Zimbra’s long-term goals and vision. Strategic alignment ensures that our efforts contribute to the overarching objectives of the product.

  • Customer Feedback: We pay close attention to feedback from our customers. Issues frequently raised by the Zimbra community, issues having several salesforce cases or those that have a significant negative impact on customer satisfaction may receive higher priority.

  • Security: Ensuring that Zimbra maintains the highest levels of security is paramount. Bugs that pose security risks are often addressed urgently.

  • Technical Debt and Maintainability: Sometimes, prioritizing work that reduces technical debt, reduces technical dependencies, or improves the maintainability of our codebase is necessary, even if it does not have immediate visible benefits for customers. This ensures the sustainability of the product in the long run.

  • Resource Availability: The availability of resources, including the development team’s bandwidth and budget, affects the timing of bug fixes and feature development.

  • Regulatory Compliance: Ensuring that Zimbra remains compliant with various regulatory standards is critical. If a bug or feature involves compliance issues, it may receive immediate attention.

  • Scalability and Performance: Zimbra is known for very large-scale deployments. We consider the scalability and performance implications of bugs and features to ensure that Zimbra remains fast and reliable for all customers.

  • User Experience and Usability: We may prioritize bugs or features that significantly enhance the usability and experience of the end users of Modern UI or Classic UI.

  • Usage of Third-party Services: Zimbra’s ability to work with and use other libraries is a key feature requirement for proper working of the Zimbra software. Bugs affecting these integrations or features that enhance them may be prioritized.

Conclusion
Prioritizing bugs/features is a complex process that balances the needs of Zimbra customers, the goals of the product, and the resources available. Using this framework, we aim to create a product roadmap that delivers the most value to our Zimbra community.