1. Writing code. 2. Not committing.
You should never write a single line of code until you have a customer lined up. Not in theory, in reality. Not a friend that says it's a great idea, and they'd use your software. A list of verifiable people that you don't know that want to pay you money. Someone that can write a check at BigCo. Someone that is beta testing your product live.
On commitment, cue the joke about pig & chicken opening a ham & eggs restaurant: The pig says no thanks, he'd be committed, the chicken would merely be involved. This kind of ties in with #1... If you don't have an actual paying customer lined up, it's really easy to get involved in "side" activities... I'll just bust out this contract real quick... Sounds like a cool company, I'll go interview (especially bad when it involves samples).