[A picture of private offices at Fog Creek Software]

Joel on Software

Whaddaya Mean, You Can't Find Programmers?

by Joel Spolsky
Thursday, June 15, 2000

Ask any software CEO these days what their biggest problem is, and they'll usually complain about how hard it is to find good programmers. "There's just nobody out there," they say. "I can't hire anyone."

Frankly, this is baloney. In microeconomic terms: the market is clearing. There are hundreds of thousands of programmers out there, and you can hire them, if you know how. This article is about the "programmer's perspective" on how to find people and convince them to work for you.

First of all, let me motivate you a little.

If you go down to your neighborhood Starbucks (a large coffee shop chain) and ask them if they have job openings, they'll say something, "yes, we have n openings now," where n is a nice round integer like "0" or "4". Once they hire n people, they don't have any more openings and they won't hire any more people. That's because for a given coffee shop, customer demand is fixed. You have to have enough employees to meet that demand, or the lines will be too long and people will walk out, but after that point, hiring more people is pointless.

But with software companies, that's not the case. Customer demand is directly related to how many problems you solve, how good your product is, and how many features it has that address potential customers' needs. Adding another programmer means you have time to implement more features, optimize and debug code, make file format converters, and other things which get you more customers. So almost every software company or Internet startup I've visited has generally had a policy of "we'll hire any good technical people we can get." (I wrote an article about this which you can read here.)

Now, let's review some microeconomics. In a free market, it is almost axiomatic that the market always clears. That's a technical term that means that when somebody tries to sell something, if they are willing to accept the market price, they will be able to sell it, and when somebody wants to buy something, if they are willing to pay the market price, they will be able to buy it. It's just a matter of both sides accepting the market price.

The trouble comes when people are not realistic about market prices. A two bedroom, two bathroom coop apartment in my neighborhood sells for about $500,000. Sellers who believe that will be able to sell their apartment. Sellers who don't believe that and list their apartment for $800,000 are going to wait years without selling their apartment, and they won't know why.

A top notch web programmer in New York City at a top web development firm, working on a consulting basis, is going to bill about $250 an hour. People who believe that are going to be able to hire consulting firms to build their web sites. People who don't believe that aren't going to understand why they can't hire anyone.

You can hire programmers if you are willing to pay at or above the market price. This past spring, a company in Texas took out full page ads in the Yale Daily News and the Harvard Crimson saying "Attention seniors: We are going to hire the best 5 computer science graduates, and we're going to give them a $200,000 per year salary and a BMW." This happens to be a lot more than the going rate for recent CompSci graduates of those schools (which is more like $65,000), but I'm sure they filled those positions.

"Well, yes," you say, "if I'm willing to vastly overpay, I can hire people. But how do I hire people without shelling out $200,000 a year?"

Aha! We're onto something here. The trick is that money is not everyone's number one motivator, in fact, it's not even the number one consideration for most people. There are other things that matter more, and, luckily, most of those things are cheaper than money. So the next trick is, how do we whittle down that market price to something a little bit more affordable by substituting the kind of non-monetary benefits that excite people?

There are a lot of other things that you can "give" programmers, for example, you can give them the feeling that they're working on something worthwhile, which has actual cash value for most people and therefore reduces the amount you have to pay them.

I love Julia Roberts. And I loved her the most when she threw a tantrum in the movie Erin Brockovich:

"That is my work! my sweat! my time away from my kids! If that's not personal, I don't know what is!"

And this is the key to making people want to work for you: you have to understand that people spend most of their waking hours at work, and they are going to take it personally, and they are not going to be willing to suffer throughout their career just for a little extra cash they can spend when they retire. Work needs to be rewarding and pleasant. Doing things that make work rewarding and pleasant is the most important part of attracting people.

I recommend a three-pronged approach to hiring people:

  1. Make the workplace attractive,
  2. Eliminate obstacles, and
  3. Provide benefits which are more valuable than the money they cost.

1: Make the workplace attractive

After I finished my bike trip, I applied for a couple of different jobs in New York City, one at AT&T and the other at Viacom. They were roughly equivalent. The salaries were pretty close. But I just couldn't stop thinking about one thing: the AT&T offices were dingy and dark, in some kind of a stone age office that smelled of 1930s bureaucracy. People were starting to look like mushrooms. There were torn Dilbert cartoons all over the cubicles. (Warning sign number one.) The furniture was falling apart. It was just nasty. But Viacom was in a nice, shiny, modern, bright office building that felt like lawyers' offices. It was clean and new and pleasant. I know I should have been thinking about something more substantial as I made my decision, but I just could not get over how unpleasant it would be to spend my days working in the AT&T dungeon.

It reminded me of a visit I made to EDS once when I was working for Microsoft. EDS had modern, clean, well lit offices, but they were just seas of cubicles. Any kind of personalization of the workspace was forbidden. Fluorescent lights everywhere. Windows were strictly for managers. If you've seen the movie Office Space, you know what I mean. As I left the building with my Microsoft colleagues, I remember saying, "you know, if I had to work in a place like that, I'd cry for two hours when I got to work in the morning."

There's a whole list of things you can do to create a pleasant and attractive workplace. People spend so much of their time at work that you can't blame them for wanting to work in a nice place, not a dilbertesque cubicle farm. Think of a university professor's office, or a lawyer's. Is it quiet? Do people have enough space to get some privacy? Does your workplace feel like a Moroccan marketplace, or the English department at Princeton? Is there sun? Or is it all fluorescent lighting?

Cubicles have become such an icon of nasty workplaces that it's shocking that the companies who manufacture them still have the chutzpah to pretend that they're efficient, productive, and pleasant. Peopleware calls this "lying by repeated assertion."

Put yourself in the job candidate's shoes. Company number 1 shows you a big crowded room, with a bunch of desks shoved in tightly, lots of marketing guys shouting on the phone next to the programmers and a bunch of sales jocks shouting tasteless jokes. "You would sit here, in this cubicle with Doris from Accounts Payable." Doris has a whiny, high-pitched voice and self-affirmation notes to herself pinned up on the dividers. The half-height cubicle they show you is completely lit by a fluorescent light which is on the fritz.

Company number 2 shows you through a quiet hallways, shows you a sunlit, plush office with a window, big plants, a door that closes, a nice Aeron chair, the smell of fresh-brewed coffee from the espresso machine in the kitchen, cool mahogany stuff and Ansel Adams prints, and says "this would be your office." There's a patio outside for lunch when it's warm and a lounge where people meet for afternoon tea. Doris is nowhere to be seen. 

All else being equal, which job are you going to take?

It's human nature for people to jump to snap judgments based on all kinds of external factors. If they come to visit you on the interview and something just doesn't smell right, they're not going to work for you. First impressions count for a lot. The fountain in the lobby, the fully-stocked kitchen with Snapple and Perrier as well as cheap drinks like Coke -- it all seems trivial, but it's making an impression.

2: Eliminate Obstacles

Make a list of the obstacles that are likely to keep someone from wanting to work for you, and figure out creative ways to solve them.

First of all, get your recruiting department to stop being an obstacle. I don't know how many companies I've seen that have disorganized recruiters who just forget candidates and don't call them back. It took my last employer something like 3 months from the time I first contacted them to make me an offer. There's just no excuse for that.

Another thing I don't understand is why people have so much trouble telling candidates "no thanks." You would not believe how many companies I know that just don't tell the candidate anything, hoping they "get the hint." They do this even when there's a devoted recruiting staff whose whole job is saying "no thanks" 93 times a day.

When a candidate applies for a job, you should be able to schedule an interview immediately. After the interview, you should be able to give the candidate a straight yes or no answer on the spot. If you have to wait for references, you should be able to take care of that in a day or two, and keep the candidate apprised daily.

Next, find out what things are worrying your job candidates. In the US, a common problem is getting work visas for people from other countries. Get a great immigration lawyer and pay all expenses.

In some markets, especially Silicon Valley and New York City, the housing situation is insane. Apartments are absurdly expensive and real estate brokers are sharks. This worries people. Solve the problem for them: offer them temporary, furnished housing for a couple of months while they look for an apartment. Retain an local real estate expert to find them housing -- somebody who you trust will only show them nice apartments, not ratty dumps, and pay all the broker fees.

What other fears do they have? A new school for the kids? A job for their spouse? All these are things you can help with by being creative. You can hire relocation specialists who are experts at smoothing these things over (but make sure they're good, or you'll do more damage than good).

Want to hire someone who has been working in Europe? They're probably used to 6 weeks a year of paid vacations. Match it. Giving somebody six weeks instead of three weeks vacation is like paying them about 6% more salary. Many people who like to travel or spend long weeks at the beach with their family would be happy to get more vacation in exchange for lower base salary, and they'll be more productive to boot.

3. Provide benefits which are more valuable than the money they cost

Have you ever gotten junk mail from a phone company offering you a $50 savings bond if you switch to their service?

Most people think that a $50 savings bond is worth $50. Nope. It's worth $25.

Have you ever gotten a free T-shirt at a trade show?

Most people think that a t-shirt is worth about $15, because that's how much they cost at the Gap. Nope. It's worth about 50 cents.

There are a whole bunch of things you can give employees which cost less than they seem to be worth. Almost every software company has free soft drinks. Massages seem to be popular in Silicon Valley. I've heard of a consulting company that is setting up beach houses and ski houses for employees to use. Microsoft has subsidized espresso carts in practically every building. Google has a gourmet chef with free lunches and dinners. Health club memberships cost a lot less than you think if you buy them for all your employees, because only a fraction of them actually take advantage of them.

Every Microsoft manager has a morale budget to use as they see fit. Whenever a new Star Trek movie comes out, Microsoft rents out an entire movie theater for the afternoon and takes the whole damn company out to the movies. Movie theatres are usually empty in the afternoon, so this costs a heck of a lot less than you think.

Think about what you can do to show people how much you appreciate them. Here's an example. When you call someone up to say, "you've got the job," if you're organized, you probably have a little post-in note stuck on your finger you got from The Big Boss which says something like $100-$105. That's to remind you that you're going to offer them $100,000, but if they balk, you have the authority to go as far as $105. Now imagine that you call the candidate up and offer them $100. They accept. Great! You saved the company $5,000 a year!

Oh my. Big deal. $5,000 a year. Wait a day, call them right back, and say, "I know you accepted at $100, but we've decided to set your salary at $105."

Aha. Now sit back and watch the law of reciprocity kick in. Having agreed that the "fair" price for their services is $100, you've thrown them a gift of an extra $5, and they're going to feel some level of extra obligation towards you in exchange. It's human nature. And it's going to keep them from taking another job. (If you haven't heard about the law of reciprocity, read Cialdini.)

And then think about the things that attract employees which do not even cost money. Give people authority. Let them work with smart people and learn from the best. Have an exciting project to work on. Make sure they keep learning and are always doing something new, not just the same old thing. Read all the other essays on my site about making a healthy work environment. Read Peopleware and make everyone else read it, too.


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!

Next:

The Joel Test: 12 Steps to Better Code



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-2014 Joel Spolsky