[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software


by Joel Spolsky
Monday, July 16, 2007

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.

Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.

About the author.

I’m Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Exchange. More about me.

© 2000-2015 Joel Spolsky