475 projects in 20 years. Bad code killed almost none of them.
The ones that died all died the same way: blocked, waiting on a decision nobody wanted to make.
Three patterns I'd bet money on at this point:
1. Decision speed is the real velocity metric.
NextBlock shipped in 28 days on a deadline most teams would call impossible. No heroics involved. The founder answered every open question within hours, so the team never sat idle. I've also watched teams with better engineers take 6 months on a 3-month build because every tradeoff spent a week in someone's inbox.
2. "Done" means something different in every room.
On Interviewiz we had backend, QA, and AI teams spread across time zones. The LLM pipeline worked. The API worked. But "working" in a notebook and "working" at 10,000 sessions a month are two different products. My actual job was forcing one definition of done before anyone got to claim it.
3. The best clients tell you what they DON'T want.
A founder who says "we refuse to ship another tool our team ignores" gives me more to work with than any feature list. The projects that hurt were the ones where the answer to every idea was "yes, add it." Say yes to everything and you launch nothing.
If I could tell every founder one thing before they write a single line: your product can't move faster than your decisions. Hire whoever you want. That ceiling stays until you raise it yourself.
What's the longest you've watched a project sit blocked on one decision?