The graveyard of half-finished ideas, and what the best ones had in common.
My hard drive has a folder called projects with 34 subdirectories. Three of them shipped. The rest are in various states of incompleteness — some with just a README, some with a working prototype that never got past localhost.
I used to feel bad about this. I don't anymore.
What the unfinished ones taught me
Most of my unfinished projects weren't failures of willpower. They were experiments that reached a natural conclusion. I built enough to learn what I needed to learn, or to discover that the idea wasn't as interesting to build as it was to imagine, and then I moved on.
The mistake is thinking every project should ship. Some of the most valuable things I've built were things I threw away after two weekends because I understood something I didn't understand before. That's not failure — that's the point.
What the shipped ones had in common
The three that shipped had a real person who needed them. Not a hypothetical user, not a market segment, not a problem I'd identified — an actual person who would use the thing and notice if it didn't work.
This is the selection mechanism that works better than any productivity system. When someone is waiting, you finish. When you're building for a theoretical future user, you optimize forever.
The graveyard is not the problem
The problem isn't the 31 unfinished projects. The problem is the projects that didn't teach me anything and weren't useful to anyone — the ones where I was going through the motions without a real reason.
Those exist too. They're the ones where I picked a tech stack because it was new, defined features based on what seemed impressive rather than what was needed, and abandoned them when they got boring.
The useful side projects are the ones with a clear question: can I build this? Can this work? Does this solve the problem? When the question is answered, the project is done, whether or not it shipped.
Starting fewer things better
The shift that helped most was being deliberate about starting. Before I open a new directory, I write one sentence about why I'm building it and who it's for. If I can't write that sentence, I don't start.
It's a low bar. But it filters out most of the projects that were going to be abandoned in week two.