Painless Software Management
Права: Copyright 1999-2008 Joel Spolsky.
Вебмастер: webmaster@fogcreek.com
Facebook / LinkedIn importers
New StackOverflow developer Kevin Montrose (6,878 reputation) added a neat feature to the career site that makes it a zillion times easier to file a CV if you’ve already put in your job and education history on LinkedIn or FaceBook. Try it out .
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board : Great software jobs, great people.
Raising money for StackOverflow
A few people heard me on This Week in Startups (starting at 15:45) asking Jason if we should take money from the first VC who fell into our laps, or spend time doing the Sand Hill Road rounds, meeting more VCs, and doing a road show for the other firms that might be interested in investing.
Jason (and his guest James Segil ) both agree that we should take more time picking the right partner. We’re going to be in bed with these guys for years, they say, and we have to approach this like picking a spouse.
Anyway, people emailed me in shock and surprise that we would even consider VC, considering the things I’ve written .
flickr.com/photos/niznoz / CC BY-NC-SA 2.0 Why are we seeking venture capital for StackOverflow ? Almost ten years ago, I wrote about two kinds of companies, the Ben and Jerry’s type of company, which grows carefully and organically, and the Amazon type, which uses huge amounts of investment capital to get big quickly. At the time, I had no doubt that I wanted Fog Creek to be a Ben and Jerry’s type of company, and that model has served us well. By staying profitable and growing carefully, we’ve managed to survive two big downturns and we’ve grown into a stable, 34-person company that’s a great place to work and is likely to remain stable, and a great place to work, for a long time. StackOverflow, though, is a bit of a different story. There are a few indicators for the type of company that I believe can benefit from, and should take, VC.
flickr.com/photos/niznoz / CC BY-NC-SA 2.0 Why are we seeking venture capital for StackOverflow ? Almost ten years ago, I wrote about two kinds of companies, the Ben and Jerry’s type of company, which grows carefully and organically, and the Amazon type, which uses huge amounts of investment capital to get big quickly. At the time, I had no doubt that I wanted Fog Creek to be a Ben and Jerry’s type of company, and that model has served us well. By staying profitable and growing carefully, we’ve managed to survive two big downturns and we’ve grown into a stable, 34-person company that’s a great place to work and is likely to remain stable, and a great place to work, for a long time. StackOverflow, though, is a bit of a different story. There are a few indicators for the type of company that I believe can benefit from, and should take, VC.
- There’s a land grab going on. The business is in a new field with no competition, but the field has proven itself, and is obviously going to get very crowded very soon, so the faster you can grab territory, the better.
- There is a provable concept that’s repeatable. I always point to the example of the Starbucks IPO, which was brilliant because it was so simple. Every new Starbucks store that opened in Seattle became profitable in a matter of months. They tried a couple of stores in Chicago and Washington just to make sure it wasn’t a Seattle thing, and those worked even better. Thus, the formula of opening as many stores as possible was as close to a sure-thing as possible, so raising money was a no-brainer.
- The business itself could benefit from the publicity of getting an investment from someone who is thought of as being a savvy investor.
- The investor will add substantial value to the business in advice, connections, and introductions.
- The business can potentially have a big exit or become a large, publically traded company.
- The founders are not in it for their own personal aggrandizement and are happy to give up some control to make the business more successful.
- If the founders are risk-averse and are willing to trade a much smaller payout for lower risk.
- If the founders are technical without substantial business experience and wish to maintain absolute control forever.
- If the investor is mostly “dumb money,” i.e., someone who doesn’t know about the field. The proverbial dentist, who is happy to give you a half million bucks, but doesn’t know the first thing about CPMs and CPCs and CTOs, so you might as well not bother.
- If you’re going into an established field with a lot of competition, there’s no benefit to speed; you’re better off slowly building a niche business and growing from there, quietly taking one customer at a time away from the competitors.
- If the product is immature and unproven, in which case, expensive marketing efforts will be wasted proving to the world how bad your product is.
- If the founders don’t have enough of the right kinds of industry connections, or the idea is not compelling enough, so that raising VC would take months or years
- If there is any other way to raise the kind of money you need, for example, by selling actual products to customers.
Headcount
In the early days of a technology startup, you tend to have a lot of software developers, and you feel like you could never have enough. If you hire sales and marketing staff too early, they don’t really get much traction, and you may start to think that sales and marketing are a waste of time. This led me, in the early years, to believe that a healthy software company should have a lot of real software developers and maybe no sales and marketing.
At one point I entertained the quixotic and, retrospectively, stupid idea of requiring every employee at Fog Creek to be a programmer... even the receptionist would have to have done some BASIC programming in high school to qualify. In the US Marines everyone, even the cooks, is a rifleman. Of course that’s because the cooks are in friggin Afghanistan getting shot at so they better be riflemen , whereas our receptionist almost never has to drop into the source code and bang out a class. Almost never.
Over time, though, as your product gets better and better, the more sales and marketing people you hire, the more you sell.
That’s because programmers multiply salespeople, and vice-versa.
I’m a nerd, so I’ll be real math-y about this. Define the quality of your code on a scale from 0 to 1.
0 means your product solves absolutely no problems for anybody so nobody in their right mind would ever buy it. Microsoft Bob.
1 means that every single person on Earth, if they bought your software, would be net happier, even after paying your fee.
Your software starts at 0 and slowly climbs up the hill.
If everybody in the world knew about your software and was encouraged to evaluate it, the number that would buy it would be (Earth population) x Quality.
Sales and marketing functions exist to encourage earthlings to find out about your software and evaluate it. These functions will have no effect on sales if your quality is extremely low. But as the quality gets higher, the value of sales and marketing goes up, commensurately. Double the quality, and the same sales effort yields double the revenue.
The population of the planet is so large, and the effect of sales and marketing so hard to scale, that by the time your product is really great, the optimal ratio might be very heavily tilted in favor of sales and marketing. Large software companies might have 5 or 10 or 20 people in the sales organization for every developer.
This explains, among other things, why US software companies can’t expect to get sustainable advantage by offshoring software development to cheaper countries. If a developer in Russia, India, or China costs 50% as much as a developer in Seattle, San Francisco, or Boston, but software development is only 10% of your costs, you can only get a 5% advantage from offshoring development. The offshoring that does happen is strongly biased to custom software development which, by design, can only solve one person’s problem, so more developers than marketers are needed.
It is not the case (as commonly believed by nerds) that marketing is a substitute for code quality. The best marketing in the world cannot force people to pay for a useless product.
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board : Great software jobs, great people.
Why testers?
My sister got her kids a little puppy, and they’ve been trying to train it. To live with a dog in the house, you need to teach it not to jump on people, not to poop in the house, to sit on command, and to never, ever, ever chew on the iPad. Never. Good girl.
With dogs the main trick to training is that feedback has to be immediate. If you come home to discover that, hours before, the dog tipped over the garbage can in the kitchen, it’s too late for training. You can yell at her but she just won’t get what you’re going on about. Dogs are just not that smart.
For programmers, getting better at what you do requires quick feedback, positive and negative, on what you’ve just done. The faster you get the feedback, the faster you’ll learn. With long-cycle shrinkwrap software, it can take a year or more to hear feedback from customers.
That’s one of the reasons we have testers. A great tester gives programmers immediate feedback on what they did right and what they did wrong. Believe it or not, one of the most valuable features of a tester is providing positive reinforcement. There is no better way to improve a programmer’s morale, happiness, and subjective sense of well-being than a La Marzocco Linea espresso machine to have dedicated testers who get frequent releases from the developers, try them out, and give negative and positive feedback. Otherwise it’s depressing to be a programmer. Here I am, typing away, writing all this awesome code, and nobody cares. Boo hoo.
Who should be a tester? That’s tricky! Software testing is one of those careers that isn’t that well known, so a lot of people who would be great at testing and would probably enjoy it a lot never consider applying for jobs as testers.
Signs of a good tester:
- Scientific
- Loves a good puzzle, even the kind that takes days to solve
- Likes to think about things methodically
- Generally likes working with software and computers
- Love software and computers
- Want to work on a software team, and
- Don’t particularly like programming
Rocket Surgery Made Easy
Steve Krug has written a follow up to his usability classic Don’t Make Me Think . The sequel, Rocket Surgery Made Easy , is a terrific, short, concise, fun guide to running simple “hallway” usability tests to improve the usability of your software and websites. Highly recommended.
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board : Great software jobs, great people.
A little less conversation
“As companies expand, the people within them start to specialize. At such a point, some managers will conclude that they have a ‘keep everyone on the same page’ problem. But often what they actually have is a ‘stop people from meddling when there are already enough smart people working on something’ problem.”
From my latest Inc. column: A Little Less Conversation
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board : Great software jobs, great people.
Secret language
Microsoft Careers : “ If you’re looking for a new role where you’ll focus on one of the biggest issues that is top of mind for KT and Steve B in ‘Compete’, build a complete left to right understanding of the subsidiary, have a large amount of executive exposure, build and manage the activities of a v-team of 13 district Linux& Open Office Compete Leads, and develop a broad set of marketing skills and report to a management team committed to development and recognized for high WHI this is the position for you!”
This is ironic, to use the Alanis Morissette meaning of the word [NSFW video ].
The whole reason Microsoft even needs a v-team of 13, um, “V DASHES” to compete against Open Office is that they’ve become so insular that their job postings are full of incomprehensible jargon and acronyms which nobody outside the company can understand. With 93,000 employees, nobody ever talks to anyone outside the company, so it's no surprise they've become a bizarre borg of "KT", "Steve B", "v-team", "high WHI," CSI, GM, BG, BMO (bowel movements?) and whatnot.
When I worked at Microsoft almost two decades ago we made fun of IBM for having a different word for everything. Everybody said, "Hard Drive," IBM said "Fixed Disk." Everybody said, "PC," IBM said "Workstation." IBM must have had whole departments of people just to FACT CHECK the pages in their manuals which said, "This page intentionally left blank."
Now when you talk to anyone who has been at Microsoft for more than a week you can’t understand a word they’re saying. Which is OK, you can never understand geeks. But at Microsoft you can’t even understand the marketing people, and, what’s worse, they don’t seem to know that they’re speaking in their own special language, understood only to them.
Need to hire a really great programmer? Want a job that doesn't drive you crazy? Visit the Joel on Software Job Board : Great software jobs, great people.

