Been thinking about why some features never get built, even when you know they'd help.
Not the ones that are hard to justify — those should sit. i mean the ones you fully agree are worth doing, that just never happen. for me the clearest example is push notifications. push is one of the best retention tools there is. i've never once argued it wouldn't help. and across multiple products i have never shipped it on the first, second, or third pass.
Why? because it lives in the worst quadrant: high value, high annoyance. the implementation is a slog (service workers, permission edge cases, subscription stuff that silently breaks), and it's a slog with no glory — users don't go "wow" at a notification toggle the way they do at a flashy feature. so it loses every sprint to something more exciting or more on fire. forever.
And here's the trap: the backlog makes you feel like it's handled. "it's on the list." but a high-value/high-annoyance item on a backlog isn't queued — it's quietly dying. it'll lose every prioritization round against both the fun stuff and the urgent stuff, indefinitely, because it's neither.
The thing that actually broke the cycle for me wasn't discipline or better prioritization. it was reducing the annoyance until the value could win. when i finally made push trivial to add — to the point where it was an afternoon, not a sprint — it shipped almost immediately. the value was never the blocker. the friction was.
Which made me realize the real lever for this whole category isn't "be more disciplined about the backlog." it's "find the high-value/high-annoyance items and attack the annoyance, not the priority." discipline doesn't move them. removing friction does.
so for the room: