
How to Prioritise a Large Product Backlog
All of us know, the amount of tech debt that we can have in our platform/software, in a lot of different categories.
Upgrades to the existing Back-End Architecture
Bug Fixes
Look and Feel / Usability Enhancements
Existing customers asking for new functionality
New problem areas for our products to solve
New functionality supporting existing problem areas
Managing all of these in a sensible fashion is a job that falls to Product Management, but it is tricky for a lot of reasons

Thought of some thing that can work wonders and allows teams to think directly about trading off individual bugs verses individual features.
Recognise that everything that we humans create will have bugs, and there will be a never-ending pool of them. Rather than fighting time with your developers who are also incidentally working on new releases, lets create a new team called
the permanent bug fix team
Whats is the size of this team, typically for every 4 engineers working on new releases, we should staff 1 person in the bug fix team. The team should be sized as a ratio in relation to the size of product feature teams. (try different ratios to work out what is best)
Bug fix team has its own backlog — how you prioritize bugs amongst other bugs is another post in itself.
Rotate the engineers from all feature teams into the bug fix team during every release. Avoid the temptation to get people off bug fix at the last minute to get a release out. This Rotation policy will also helps all engineers get exposure and share the load and above all ensure that they have accountability towards what they write.
On a different tangent—Accountability should lie with 2 different set of people. This helps with separation of concerns and avoids competing priorities. Eg : A Product Manager and a Freeze Manager
Product Manager determines what ships into production and a Freeze Manager who actually knows about code (he is usually one of the developers) allocate a window in each release for resolving defects avoiding any conflict with product requirements. Ultimately it is the responsibility of engineering team to prioritize and resolve defects within that window.
Between the two, a prioritization can be established, both at high level (functional requests) and low-level (bugs and technical issues)
‘Engineering teams owns Quality’.
Engineering team should have complete authority over prioritization of defects and resolve them within the guidelines of quality SLAs (Service Level Agreements). Product manager will be encroaching into their space, if (s)he starts prioritizing defects.
Have the developers from the release teams establish a warranty period for any new bugs after a release. This avoids the bug fix team fixing all the bugs the feature team just introduced — and encourages feature teams to own the quality of what they just shipped. If a bug is identified during the warranty period and matches a defined criteria the release team has the responsibility to fix it.
To summarise, Fix the problems which are keeping customers away quickly and add more features to keep the customers coming. Push back issues which only affect a small number of people unless they are relatively easy to fix.