Let’s come up with an analogy and then torture it like we’re the Cheney administration: imagine you’ve just purchased a plot of land. What are you going to do, mine or farm?
If you farm, you’ll have to purchase seed up-front, and work on it for a season before you see any profits. And every season you’ll plow most the profits (literally) back into the land and salaries and your mortgage. You husband the soil to ensure that it’ll keep providing for you for years and years. If you’re lucky, and if you do a good job, you’ll gather a following, sales will increase, and eventually you may make a tidy living. But every season, no matter how rich you get, you’re going to be back out there, breaking your back and working with the soil. When you finally retire, if you’ve done a good job, the soil is as good as when you first got it, and your farm will live on.
Or, you could mine; you’ll need some initial money to lease mining equipment, and to hire some people to work the mine. Then, bam: profit. You’re making money. You tear a giant hole in the ground and eke every last bit of metal out as quickly as possible; there’s nothing to preserve, there’s no soil to keep in condition. You’ll make a big score, then the land will be spent, and you move on, leaving an unusable crater.
Now, you’ve probably figured out I’m not actually talking about mining or farming: this is a metaphor for running a software company. You can either see founding a company as something you’re doing because you want to produce good software, or you can see it as something you do so you can sell your stock and make a killing and move on.
Maybe it’s obvious that I respect one approach more than the other. In fact, I would say that a big problem with our field is that mining is so glamorized: Not only are we inundated with tales of “Look, Bob Smith made a fortune selling his company after two years, and he’s a bazillionaire!” but if you seek outside investment you are usually required to be a miner: few investors are interested in partnering with someone who is going to retain ownership of his company and just make good products and sell them for a fair price. The very first thing an investor is usually going to ask is, “What’s your exit strategy?”
The problem with mining in the software business is that it doesn’t work. It creates broken, useless companies.
What’s upsetting is the number of people who have come to me with the idea of becoming miners: “I know nothing about software, but I can see there’s gold in them thar’ hills, and so I want to start up a company and make my million dollars! I’ve got an idea and everything, just tell me what magic incantation you did to get rich and I’ll be on my way.”
This doesn’t work. Your idea sucks. No, I’m not calling you stupid — my idea sucks, too. All ideas suck, because they are just ideas. They’re worth nothing.
My success is because I worked to make the idea real. A lot. All my life. Starting when I was 12, I learned to program, and I’ve programmed every spare moment since. I didn’t become a millionaire until I’d worked at it for eighteen years. There was no genius idea I had. I just kept working, hating what I did before, and working some more to make it better.
The idea part is cheap. Try to think of an idea that’s actually worth something on its own. “I wish I’d thought up the web browser.” Bullshit. The web browser had been thought up at least twenty years before those high-energy frogs coded one up on NeXTstep (c.f. Dynabook, 1968). It was the actual shipping product they wrote that caused the internet revolution, not the idea.