Kill Your Darlings
Kill Your Darlings
In creative writing, there is a famous piece of advice attributed to William Faulkner: "In writing, you must kill all your darlings."
It means you must ruthlessly delete the beautiful, poetic sentences that you personally love, if they do not serve the overall narrative of the story.
In product engineering, the exact same rule applies. But instead of sentences, our "darlings" are codebases.
The Sunk Cost Fallacy of Code
Imagine you are a technical founder. You spend three grueling months architecting an incredibly complex, real-time collaboration feature for your SaaS product. It has WebSockets, perfectly synced cursors, and an elegant UI. You are deeply, intellectually proud of it.
You launch it.
And then... you look at your PostHog analytics. Out of 5,000 active users, exactly 12 people clicked the collaboration button. Six of them immediately closed it.
This is the moment that separates the engineers from the operators.
An engineer looks at the data and says, "They just don't understand how powerful it is yet. If I add a better onboarding tutorial, or maybe integrate it with Slack, they will definitely use it." They proceed to spend another month hacking away at a dead feature.
An operator looks at the data, accepts that the market has spoken, and deletes the entire 15,000-line Pull Request from the main branch immediately.
Why You Must Press Delete
Keeping dead code alive is not a neutral action. It is an active taxation on your business.
- Maintenance Debt: Every time you upgrade a package, change your database schema, or refactor your UI, you now have to make sure you don't break the collaboration feature that nobody uses.
- Cognitive Load: It clutters your UI. It clutters your routing logic. It makes onboarding new engineers slower.
- The Fiction of Feature Utility: If you keep it, you will constantly feel the urge to "make it work," distracting you from the core features that people are actually happily paying for.
The Ego Check
Deleting code hurts. It feels fundamentally wrong to highlight three months of your life and press Backspace.
The code was not a waste of time. It was the price of admission to learn what your market definitively does not want.
If you cannot emotionally detach yourself from the code you write, you will end up curating a museum of technically impressive features that nobody uses, instead of building a high-margin business.
The Takeaway
Your codebase is not an art gallery for your ego. It is a utility vehicle designed to transport value to a customer.
If a feature isn't pulling its weight in revenue or retention, take it behind the barn and shoot it.