Programmer Nesting Rituals

I just read that the average Silicon Valley tech salary is over $100,000. I’ve seen starting salaries for CS graduates come pretty close to the magical $100,000 mark. Google recently had to give a 10% raise to all its employees just to stay competitive.

Yep, programmers are getting expensive. But my experience has been that most great programmers don’t really have salary as their No. 1 consideration when deciding where to work. They only worry about salary when the job is so awful that it has to pay well or they couldn’t imagine sticking around.

Here are 10 things that many programmers think about first, long before salary even comes into play:

  1. How much do they believe in the company and identify with its goals? Are they excited about what the company makes? Do they love its products?
  2. How do they feel about the team they work with? Are their coworkers the same people they would want to hang out with after work?
  3. How cool is the technology that they’re using? Will they have a chance to learn powerful new programming languages and systems, or will they be using pedestrian, safe, corporate technologies?
  4. How much of the work they’re doing is new code, and how much of it is bug-fixing and maintenance?
  5. What is the work environment like? Are there plush private offices, nice espresso machines, and free gourmet lunches? Or does it look and feel exactly like a sitcom parody of a miserable office?
  6. How smart is the team? Will they have a chance to learn and grow from their co-workers, or are they going to be carrying the load for a lot of deadweight?
  7. How smart is the organization? Will the bureaucracy fight them every step of the way, or does it exist to enable brilliant work?
  8. Where is the work? Is the commute convenient? Can their spouse find fulfilling work (probably in another field) nearby? Are the schools good?
  9. How much control do they have over their work? Are they required to conform to obscure rules and capricious diktats or do they have the freedom to do great things?
  10. What kind of computer hardware do they work? Are their systems upgraded every year with the latest and the greatest? Can they have three 30” monitors if they want?

You may think that some of these things are completely out of your control … and they may be. Sometimes people run job listings on Stack Overflow and get very few resumes. Then they ask me, “why didn’t we get any applicants for our job listing?” And I look at it and think, “baby Moses in a basket, why would anyone want to work there?”

I know, it’s hard to say, but it’s true: some jobs are just not that attractive, and it’s not a problem of “finding programmers,” it’s a problem of “making this a place where people want to work.”

Article Continues Below

The first thing to learn is that company founders and CEOs don’t care about the same things as programmers. Usually, if you’re doing what your founder/CEO thought would be nice, you’re not really optimizing for programmers. Founder/CEOs, for example, like to save money, and they like to know what’s going on, so they think having a big room where everyone can overhear everything is a terrific work environment. Programmers need to concentrate, so they would work in a brown cardboard box if it was quiet and free from interruptions.

If you’re scoring kind of low on the “desirable workplace” scale, all is not lost. There’s a lot you can do to fix these issues, even if you are a company that makes atom bombs run by a megalomaniac micromanager with an office on a platform in the Arctic Ocean.

Come to the ERE Expo in San Diego in March, and I’ll go into this in a lot more depth in my keynote. I’ll tell you what I know about how programmers work, what they like, what they care about, and I promise you’ll leave with a lot of ideas of how to make your workplace way more attractive and interesting to the average programmer.

Joel Spolsky is a globally-recognized expert on the software development process. His website Joel on Software is popular with software developers around the world and has been translated into more than 30 languages. He created FogBugz, a popular project management system for software teams. He has worked at Microsoft, where he designed VBA as a member of the Excel team, and at Juno Online Services, developing an Internet client used by millions. He has written three books: User Interface Design for Programmers (Apress, 2001), Joel on Software (Apress, 2004), and recently, Smart and Gets Things Done: Joel Spolsky’s Concise Guide to Finding the Best Technical Talent (Apress, 2007), and writes a monthly column for Inc. magazine, where he is a contributing editor. He holds a BS in Computer Science from Yale University. Before college he served in the Israeli Defense Forces as a paratrooper, and he was one of the founders of Kibbutz Hanaton.


19 Comments on “Programmer Nesting Rituals

  1. Joel,

    I am very happy to hear you will be presenting. I have followed your blog for many years.

    I was at a tech event last week and was asked by software company CEO why he was not getting a reply to his job posts. I took him to Monster, Craig’s List and a couple of other sites where he saw his post sucked as bad if not worse than all the other posts.

    Being a “well funded start up” as a selling point is not that cool in a pool of well funded start ups.

    Help these folks Joel. They need it.

  2. “Google recently had to give a 10% raise to all its employees just to stay competitive.”

    Joel, correct me if I am wrong but if you increase compensation to remain competitive, you are not giving a raise. You are rectifying a wage and salary issue in order to do what is deemed correct by those in leadership.

    To see an adjustment as a raise is a grievous error.

    Your thoughts?

  3. Joel,

    You’re missing the biggest piece of why ads don’t work to attract programmers.

    “They are not actively looking” (because talented ones are heads down working)

    After 15 years in the tech agency space I’m still mystified why CEO’s do not get this

  4. From a longtime engineer and now CEO – Start by not calling software engineers ‘programmers’. Really good software engineers more or less consider that an insult. ‘Programming’ is one portion of software engineering – architecting and designing the technical solution is often times harder than the actual ‘programming’ (act of writing code).

    I agree with this article though. Engineers usually care about the tech, people, and product they will be working with first, and money second.

  5. @Paul – thanks!

    @Howard – sounds like a semantic question. Google’s salaries were already in the range of reasonable, but they decided that they were losing too many people, so they raised them across the board.

    @Mark – yep, there is definitely a different approach needed to recruit people who are not actively seeking a new job.

    @Robert – the terminology across our industry is not that consistent. In some places the word “engineer” cannot be legally used to refer to someone without engineering certification, which doesn’t cover very many people in the software field. In other places the term is used freely as a highfalutin’ programmer. You make a good point that just choosing a good title for a job goes a long way to making it desirable.

  6. Thanks, Joel. A few points:
    1) As mentioned previously, average salary is not median salary. A few super-paid folks can appreciably skew the average, but not the median.
    2) The concerns mentioned seem very logical for folks in a field with low unemployment.
    3)If companies want to hire the best, they need to be/have the best at something: salary, benies, technology, real career growth, quality of work life, something tangible, not just typical marketing hype. A top 30% percentile company shouldn’t expect to hire “Fabulous 5%” people, but they could get top 25% people. Good hiring requires realistic hiring expectations.


  7. Nice list! There are some additions, coming “from the field”:

    – in my experience, really good software engineers want to “own” what they do as the highest priority. They may own a small project but they want to do it right. There’s also team ownership feeling.

    – few software engineers seem to look for a company where they may learn powerful systems as a goal. Usually software engineers are pretty opinionated about what’s good and have been learning on their own. It may be that they would want to leave a company that wouldn’t switch to the right or the coolest tools.

    – along with the fashion, working with modern “cool” tools and languages help software developers to be marketable. This is a high priority when considering a job.

    – in the San Francisco Bay Area currently 99.9% of people who have experience with top requested technologies, such as anything mobile-related, are either happily employed or are trying to start their own thing. Posts on get few clicks and 4-5 total applications at most. There are companies that publicly announce 30% fees for *any* 3rd party recruiters who sign up. New York is coming close to that. Nobody is actively looking; anyone “passively looking” hears from 20+ recruiters per day on average.

    My 2c

  8. For those of you interested in this topic, I suggest reading “Drive,” by Daniel Pink. He postulates that motivation is intrinsic, and that one of the key elements in achieving it is, as Martin suggested, autonomy.

  9. @ Karen & Martin: Re: autonomy-
    Except for rare exceptions, who DOES like to be micro-managed, not be good at what they’re paid to do, and not see the bigger picture of their work?

    Happy Friday,

Leave a Comment

Your email address will not be published. Required fields are marked *