Where do These People Get Their (Unoriginal) Ideas?

by Joel Spolsky

Wednesday, April 19, 2000

Maybe I should call this article "why I should stop reading Upside Magazine". I really have been trying to stop, but they send it to me for free, and I really needed bathroom reading material, so I grabbed it and found one of the most wrong-headed articles I've seen in a long time. Well, actually, there are wrong-headed articles all over Upside magazine, but this one was particularly irksome.

It's an article by Stephen James called "Lessons in Survival". (March 2000 Upside). Every month, I'm told, Mr James will share with us "some of the simple lessons [he's] learned from [his] own startups".

It includes lots of extremely useful advise that you would never figure out on your own, like, don't spend a lot of money on office space and try to find a neighborhood where you don't have to stand in line at the local restaurants. If you are starting a dot com, Mr James reminds us, "Get out of the house... Working at home sucks." And he points out that you should never pay more than $1.50 per square foot. Thanks, Mr James! It's extremely strange to me that you could expect the same price in every market. Maybe he just assumes that everyone in the world starts all companies in Silicon Valley.

"Forget the free coffee and drinks. Sure they're free at Microsoft... who wants to be like Microsoft?"

Hello? Is this a joke? Did Upside schedule their April issue for May?

I guess Mr James lives in a funny la-la world where there are millions of programmers just dying to work at your startup. When you are the founder of a company, you want to skimp on frills; they seem like a waste of money to you. That's fine. But don't think that candidates interviewing at your company will have the same emotional attachment; they won't. They are looking for a nice place to work. Skimping on free soft drinks, a completely standard benefit at most high tech companies, is a great way to send your employees and potential employees the message that you just don't care about being an attractive workplace.

Everybody in Silicon Valley seems to be talking about Charlie, the gourmet cook at Google who used to work for Jerry Garcia. I can tell you, the food is spectacular even by Michelin standards, not just corporate cafeteria standards. Because the food in the company cafeteria is so good, people don't leave work to eat. They eat with their colleagues, which increases learning and communication. They get back to work within half an hour, making them more productive. They feel like Google cares about them, making them more loyal.

Meanwhile, "Build-outs are a bad idea," Stephen James tells us. "Don't build out your space with walls or partitions -- leave it open... If employees need an office with a door, let them go to law school or Apple."

Guess what? They will go to Apple! And replacing just one of them will cost on the order of $50,000 in recruiting and training. A friend of mine provides gorgeous private office space for his programmers in the most expensive real estate district in the USA, Manhattan, and it's probably costing about $6,000 per person per year. Not much in the scheme of things.

What's worse, Mr James seems to be completely ignorant of the documented productivity gains provided by giving knowledge workers space, quiet, and privacy. The classic software management book Peopleware documents these productivity benefits extensively. (To be fair, Mr James is not alone in his cluelessness. He's just reflecting the folk wisdom prevalent in the Valley).

Here's the trouble. We all know that knowledge workers work best by getting into "flow", also known as being "in the zone", where they are fully concentrated on their work and fully tuned out of their environment. They lose track of time and produce great stuff through absolute concentration. This is when they get all of their productive work done. Writers, programmers, scientists, and even basketball players will tell you about being in the zone.

The trouble is, getting into "the zone" is not easy. When you try to measure it, it looks like it takes an average of 15 minutes to start working at maximum productivity. Sometimes, if you're tired or have already done a lot of creative work that day, you just can't get into the zone and you spend the rest of your work day fiddling around, reading the web, playing Tetris.

The other trouble is that it's so easy to get knocked out of the zone. Noise, phone calls, going out for lunch, having to drive 5 minutes to Starbucks for coffee, and interruptions by coworkers -- ESPECIALLY interruptions by coworkers -- all knock you out of the zone. If you take a 1 minute interruption by a coworker asking you a question, and this knocks out your concentration enough that it takes you half an hour to get productive again, your overall productivity is in serious trouble. If you're in a noisy bullpen environment like the type that caffinated dotcoms love to create, with marketing guys screaming on the phone next to programmers, your productivity will plunge as knowledge workers get interrupted time after time and never get into the zone.

With programmers, it's especially hard. Productivity depends on being able to juggle a lot of little details in short term memory all at once. Any kind of interruption can cause these details to come crashing down. When you resume work, you can't remember any of the details (like local variable names you were using, or where you were up to in implementing that search algorithm) and you have to keep looking these things up, which slows you down a lot until you get back up to speed.

Here's the simple algebra. Let's say (as the evidence seems to suggest) that if we interrupt a programmer, even for a minute, we're really blowing away 15 minutes of productivity. For this example, lets put two programmers, Jeff and Mutt, in open cubicles next to each other in a standard Dilbert veal-fattening farm. Mutt can't remember the name of the Unicode version of the strcpy function. He could look it up, which takes 30 seconds, or he could ask Jeff, which takes 15 seconds. Since he's sitting right next to Jeff, he asks Jeff. Jeff gets distracted and loses 15 minutes of productivity (to save Mutt 15 seconds).

Now let's move them into separate offices with walls and doors. Now when Mutt can't remember the name of that function, he could look it up, which still takes 30 seconds, or he could ask Jeff, which now takes 45 seconds and involves standing up (not an easy task given the average physical fitness of programmers!). So he looks it up. So now Mutt loses 30 seconds of productivity, but we save 15 minutes for Jeff.

Anyway, I fully expect that most of you, reading this, will write to say, "what the heck are you doing reading Upside anyway? You get what you deserve". How true. Serves me right.

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!