The problem with overloaded backlogs are manyfold:
- A backlog must be maintained and communicated. The longer the backlog, the more work this is.
- A long backlog often contains items, that will never be implemented - bringing those to the backlog and maintaining them is a waste of time and resources.
- A long backlog has a frustrating and demotivating effect. Nobody wants to feel like Sisyphos all the time.
- A long backlog is nothing more than a long queue. You might read "Flow" by D. Reinertsen and let you convince, that long queues are one of the worst things that can happen to you in product development.
- ...
An obvious and easy solution would be to limit the work pooled in the Product Backlog (i.e. applying a WIP constraint on the Backlog). You can do this either by limiting the number of Stories in the Backlog or by limiting the number of Story Points. Two questions emerge immediately from this approach:
- What will I do with the work, the customer wants me to do that does not fit into my product backlog?
- What might be a reasonable upper limit for the amount of work in the Backlog (maximum queue size)?
My first answers would be:
- If the customer has work to do that is more important than work currently in the backlog - let him replace some items. If the customer asks for less important features tell him to come back later. This approach adresses many of the problems with long backlogs and makes transparent to the customer that he is working with a bottleneck (your Backlog!). You can then work on problems causing this bottleneck.
- Inspect and Adapt on this number! A good first shot would probably be to limit the backlog to the work that is possibly achievable in three month. This depends largely on your context and how stable requirements or User Stories are.
Update 1: Some further remarks on this topic.