Steve from Richmond, VA, wrote in to ask a couple of questions:

“With software development, is it better to get something out there with customers and then continually improve or build the best wiz-bang software and then start marketing?”

That depends. You want to avoid the Marimba Phenomenon, where you get so much publicity in the early days that everybody checks out your underwhelming offering and decides that you’re never going to have something worth looking at. (I should rename this the live.com phenomenon, in honor of Microsoft’s horrible launch of live.com. Or the Zune phenomenon.) On the other hand, small startups are unlikely to have the problem of too much attention, so most companies with a 1.0 product can certainly get real customers with their earliest usable versions and build from there.

Steve is starting a company with a software developer.

“Assuming the software developer is getting paid at a reduced rate, but concurrently with his development. If you were giving also giving him some equity in your company, would you make that equity contingent on phases of the software getting done, the entire software getting done or vesting over time.”

The standard solution is to vest over time — anywhere from four to seven years — with unvested shares being forfeited if he leaves for any reason. If the software doesn’t get done, you fire him and he loses the unvested shares — it’s not necessary to make the vesting contingent specifically on finishing the software (besides, “finishing” software would be too hard to define in a contract).

You can set it up either as normal vesting (where he gets, say, 20% of the shares every year) or reverse vesting (where he gets the shares up front, but you have the right to repurchase them for a penny, and this right evaporates by 20% every year). Reverse vesting is preferable for tax reasons, because at the time you give him the shares, they’re worth a lot less, so there’s less income and more capital gains, which are taxed at a lower rate.