You're here when: You shipped something, adoption is lukewarm, and sunk cost is screaming at you to keep investing.
The Heuristic
Sunk cost is irrelevant. The only question is: given what you know now, would you build this feature from scratch today?
- Is retention trending up, even slowly? A small group of engaged users is a different signal than universal indifference. Flat or declining retention after 4+ weeks means the feature isn't earning its place.
- Does it serve your core use case? A feature with mediocre adoption that's central to your product story is different from a peripheral add-on nobody asked for.
- If you cut it, what would you build instead? The question isn't "is this feature zero-value?" It's "is this feature higher-value than the next-best use of these resources?"
- Is the opportunity cost of doubling down worth it? Doubling down means not just keeping the feature, but actively investing engineering, design, and support into improving it. What else doesn't get done?
Decision Tree
Quick Example
In 2011, Facebook launched several features including Questions (a Quora competitor) and Deals (a Groupon competitor). Both had lukewarm adoption. Facebook killed both within months. They didn't agonize, they didn't "iterate for two more quarters." They recognized that mediocre adoption of peripheral features was a distraction from the core social graph. The engineers were reallocated to News Feed and mobile, which turned out to be existential priorities.
The Courage to Cut
Ben Horowitz makes a distinction that matters here: all decisions are objective until the first line of code is written. After that, all decisions become emotional. That's why killing features is so hard. The data might say "cut it," but the team that built it can't see straight anymore. Horowitz argues that figuring out the right product is the innovator's job, not the customer's job. Customers only know what they want based on what already exists. Sometimes that means killing something customers say they use, because you can see it's pulling the product away from where it needs to go.
The Feature Factory Test
John Cutler coined the term "feature factory" for teams that measure success by output (features shipped) instead of outcomes (problems solved). One of his 12 warning signs is brutally simple: no removed features. If your product has never killed or sunset anything, you're in a feature factory. Features accumulate, each one adding cognitive load for users, maintenance burden for engineers, and complexity that makes the next feature harder to build. The economic justifications for keeping features around almost never account for this non-linear increase in product complexity.
Cutler's litmus test: do you celebrate shipping, or do you celebrate impact? If the team pops champagne when code hits production but never revisits whether anyone used it, the feature factory is running.
How to Actually Sunset It
Des Traynor (Intercom) has a practical framework for feature removal. First, split your users into real users and dabblers. Dabblers have 1-5 interactions and haven't touched the feature in months. Real users depend on it weekly. Dabblers won't notice it's gone, real users will lose their minds if you break their workflow. So start by hiding it for dabblers, that alone reduces your support surface. For real users, give advance notice proportional to the severity, anywhere from a month to a year. Before committing to kill anything, answer two questions: what percentage of customers who can use this feature actually use it frequently? And what percentage of revenue do those customers represent? If the answers are "tiny" and "tiny," you have your green light.
The Anti-Pattern
The Sunk Cost Death Spiral. "We already spent three months on this, we can't just throw it away." Yes you can. The three months are gone regardless. Every additional month spent on a feature nobody uses is a month stolen from a feature that might matter. The longer you wait, the harder it gets to kill, and the more you've compounded the loss.
Written with ❤️ by a human (still)