The Best Advice I Got Was About Deleting Things
The most useful thing a mentor said to me was not a technique. It was a question.
A mentor sat next to me while I was explaining a feature I had built. I had spent about two weeks on it. I was proud of it and I wanted to talk about the architecture.
She listened to the whole explanation, then asked: "Who is using this?"
I did not have a good answer.
The question that broke the habit
That is the whole thing. Not a technique, not a principle, just one question asked at the right moment.
I went back and looked. Of the four things I had built that month, one had a user touching it daily. One had a user who tried it once. Two had nobody at all, and I had written tests for both.
I have asked that question before since, and it has a near-perfect hit rate. Every feature I have deleted because nobody wanted it was time I did not spend on the three people who actually needed the product. Every feature I kept, and then polished, was because somebody asked for it out loud.
Why building is so easy to justify
Writing code feels like work, and deleting it does not. So the default drift is always towards more. The complexity cost of a feature is paid off slowly and locally, by the person who has to understand it. The benefit arrives immediately and is experienced by the person who just wrote it. That asymmetry is the whole problem, and no amount of willpower fixes it.
What fixes it, in my experience, is making the question cheap to answer. I do not have a good process for this. All I have is the habit of asking before I start, and a willingness to delete things I built myself, which is the hardest part and the only part that seems to matter.
Deleting is a skill
There is a thing people believe about deletion that I used to get wrong. I thought removing your own work was a loss. It is not. It is the cheapest possible outcome for a feature that was not going to be used, and it returns a chunk of your attention.
The projects I regret are not the ones I failed to finish. They are the ones I finished three times over, for nobody, and then maintained for a year because throwing it away felt like admitting something.
The actual advice
If I could put one line in a notebook and nothing else, it would be this: before you build, find out who wants it, and if you cannot name someone, do not start.
I still break it. I had a whole dashboard built before I asked. It is gone now, and the week I got back was worth considerably more than the month it took.