Improving Product
Continuous product improvement focuses on the ongoing improvement and evolution of a product.
Purpose
Products are long-lived and changes are continuously happening. Teams need to put in place practices to ensure the product remains competitive, relevant, technically robust and maintainable by systematically addressing areas that require improvement or modernisation.
- Improved Product Quality: Regular attention to debt and architecture ensures high product standards.
- Increased Development Speed: Reducing debt can accelerate the pace of new feature development.
- Enhanced User Satisfaction: Continual product improvement aligns with user expectations and needs.
- Long-term Sustainability: Managing debt prevents the product from becoming outdated or difficult to maintain.
Context
Industry Context
A lot of products are built using a project model which focuses on a limited part of the product as a whole. This can lead to inconsistencies across the products. In addition, the short term goals of projects incentives short cuts and workarounds that hurt the long term sustainability of the product.
ZeroBlockers Context
Stream teams are accountable for the outcomes that they achieve and not the outputs that they deliver. This means that they need to ensure that the product continues to meet the needs of the customers as it grows and that the pace of delivery is sustainable over time.
Methods
Method | Description | Benefits |
---|---|---|
Design Critiques | Regular sessions across Stream Teams where designers present their work to the team for feedback and improvement suggestions. | Enhances collaboration across Stream Teams and ensures design quality and consistency across the product as a whole. |
Design Debt Audits | Periodic assessments of the design elements to identify inconsistencies, outdated patterns, or usability issues. | Ensures the product's user experience remains top-notch and consistent. |
Product Debt Audits | Comprehensive reviews of the product features, functionality, and performance to identify areas that need improvement. | Ensures that all of the features of the product are delivering as expected and highlights areas for improvement or removal. |
Code Ownership | Assigning clear ownership of code modules or components to individual team members to promote accountability and maintainability. | Facilitates higher quality code, faster issue resolution and greater codebase understanding. |
Refactoring | The practice of restructuring existing code without changing its external behaviour to improve nonfunctional attributes. | Keeps the codebase clean, enhances maintainability, reduces complexity and keeps technical debt under control. |
Technical Stack Evaluations | Periodic assessments of the technology stack to identify outdated components, security vulnerabilities, or performance bottlenecks. | Ensures the product remains technically robust and scalable. |
Anti-patterns
- Ignoring Debt: Allowing technical, product, or design debt to accumulate without plans to address it.
- Feature Creep: Continuously adding features without considering the impact on existing product quality or user experience.
- Over-Optimisation: Spending too much time on refactoring or debt reduction at the expense of delivering new value to users.
Case Studies
Enhancing Developer Efficiency and Product Innovation at Algolia
How Algolia empowers developers to improve the product and innovate.
Algolia
Making Work Visible and Allocating Time for Tech Debt Reduction at King
How King makes work visible and allocates dedicated time to teams for paying down technical debt, ensuring sustainable development practices.
King Games
Designing Effective Design Critiques
How Zendesk improved the design skills of their people by implementing structured design critiques.
ZenDesk
Paying Down Design Debt with Generative Models at Spotify
How Spotify addressed the challenge of design debt by using generative models and automated tools to simplify and streamline their design systems.
Spotify
Proactive Tech Debt Management at Stash
How Stash managed and paid down technical debt to handle rapid growth and unexpected surges in user activity, ensuring platform stability and scalability.
Stash