It strikes me as senseless to complain endlessly about how 199 out of 200 candidates who are interviewed for a programming position are literally incompetent. No competent hiring manager should put out more than one ad posting which attracts a horde of unqualified candidates. Why not? Because the second time around he will offer a much more attractive salary.
And that's really the end of it. Enough of this nonsense.
That's the hard part of hiring programmers. How do you incentivize the good ones to work for you? If you have a solution to that problem, I suspect you'll be a very much in-demand person.
Bonuses, perks, and congrats on jobs well-done. If I spend 40 hours between Dec 31 and Jan 2 writing up a new wireless barcoding system because the powers that be decided at the last minute to begin the new year with a different process for warehousing, I better get a damn bonus, at least 1.5 x 40 hours of my rate. You know what I got upon successful completion of my last-minute project? "chime, if you had originally developed a flexible enough system to accommodate changing of bin/zone locations, you wouldn't have had to work in the last minute." I resigned from that job.
Maybe... certainly respect is needed but...
What about a sane work environment??
What about a system which is actually aiming to produce good software??
What about not structuring your system for 80 hours weeks from the get-go???
I don't know how many vile, worthless hoops I've had to jump through in previous job searches.
Still, I've also interviewed for places that made a virtue of their good process to the point of expected people to work for less (I think SAS was their model). That won't fly either because it's not really respect either.
Speaking only for myself, non of those things would really swing it too much for me. Give me challenging projects in my preferred problem domain, sane working hours and environment, an opportunity to grow and improve my skills and surround me with brilliant colleagues to work with, and I'll happily forgo the perks and bonuses.
That's probably half-true: you're right that there's more to hiring programmers (and many other kinds of professionals) than paying lots of money, but there's also probably a minimum barrier to entry. I doubt you're going to find high-quality programmers to work for $30K per year, even if you buy them an Embody (http://www.hermanmiller.com/Products/Embody-Chairs), give them a window, offer to let them rewrite everything in Scheme, and do whatever else Joel Spolsky has mentioned.
I'm not sure what the minimum really good programmers will go for in most of the country, but I'd be surprised if the answer is less than about $50K, and even that's probably way too low. Until you hit the minimum threshold, the rest of your comment doesn't take effect.
As for incentives, there are lots of posts on HN about incentives that work, like time out for pet projects, like telecommuting, like 2-3 month holidays, like no drone work, like excellent tools, LCDs, chairs, perks.
And ... the best of them all .... NO PHB's !!!
My friend is trying to hire some devs for her big bank. They offer ~$50K more, but the work environment is HELL and the projects are mind-numbingly boring (back office). They can't find any competent devs. He said they hired an ex-MSFT and ex-GOOG once, but both quit within a week.
I think Fog Creek gets it right. You don't treat programmers like second-class drones who make things for you; you treat them like the primary creators of value for you company, and yourself as their support staff (abstracting away the mechanics of running a software company so all they have to think about is coding and typing commit.)
Bingo! The best managers I have had over the years spent far more time getting me what I needed in order to do my job than they did telling me what to do. They also got the most value out of me, and ended up looking the best in front of their bosses.
A good start is not to use words like "incentivize" around reasonably intelligent people :)
Easy. Instead of giving the programmers managers, put the programmers in charge of their own projects and give them administrative assistants to handle all of the non-programming and non-decision-making parts of the job.
How about an online test? A web server that runs sandboxed C? Or maybe a character in Lambda MOO that requires you to complete a "quest" in a time frame that would require a programmed response? (telnet://lambda.moo.mug.org:8888)
Unfortunately programming is really the first discipline where the primary determinant of the "factor's" productivity is not the manager's skill but actually the intelligence of each individual. There's huge conflicts created, not just about salaries, but job roles, and really the structure of society (which is really built around an educated managerial class overseeing (and living apart from) a less educated working class.
The primary issue with paying programmers more is that they're butting up against those managerial salaries and life roles. Programming doesn't fit Taylor's theory. To change that isn't just about micro changes in business, it's about macro-changes in society.
There are many differences between the professions of programming, medicine and law. So it's hard to make sweeping generalizations and use that to draw definitive conclusions.
Programming is very different.
The author defined a professional as someone whose work you have to take on faith. Not being doctors or lawyers ourselves, we're usually unable to evaluate the quality of legal advice or medical care we're receiving. The best we can do is seek another opinion.
The author drew this line because he feels it necessitates the things we expect from a profession: shared ethics and a rigorous certification process. Professions require would-be professionals to jump through a number of hoops to make sure that all who deal with these professionals receive some minimum level of service from someone with a minimum level of competence.
Have software developers arrived at this point? Can someone check the quality of what they receive from a developer without being a developer? If they can't, will this always be true?
Programming isn't a profession, it's a craft. The trouble is that traditional crafts are not really valued any more, as their purpose has largely been supplanted by mass production. So, we have no current role models for how to organise ourselves.
- You won't drive your car cross country to a cheaper mechanic. - You won't get a lawyer from India to represent you in America. - You don't go to a doctor... well thats changing isn't it? Too bad doc education still costs so damn much in America.
Its about group supply and demand. Don't forget that homes cost and arm and a leg and that a programmer in a particular neighborhood should be able to afford a home in that neighborhood and should charge accordingly.
We all know programmers who would be sunk without it.
Are you really suggesting that programming is the <b>first</b> profession to arrive on the world-scene in which productivity scales with intelligence? I think that's a bit egocentric. I can think of a few others.
The primary problem is that organizations seem to want to treat developers like other office workers, rather than as professionals.
Oops, just saw someone else said this below. He is correct.
I think this is true for most professions based on knowledge and using mostly mental capabilities: scientists, journalists you name it...
Rating mental work is very hard and still quite a new requirement for our societies, thus we are really missing reliable and acknowledged "frameworks" to handle this.
This seems to have something to do with the relationship between creative effort and intrinsic vs. extrinsic motivation. The prospect of an incentive seems to gum up the creative works.
When you compound that with how difficult it is to recognize, let alone find good talent, especially with an interview process, you have a real conundrum.
Real conundrums are rarely solved by naive one-dimensional solutions like "offer more money." An actual solution would have to solve the dual problems of finding good help and not spoiling it with overt incentives.
Clearly there is a real problem here. Perversely, if you could solve it, you could make a lot of money!
Right now a large majority of very smart, creative people are going into medicine because they want to be challenged and most likely also want the prestige and security of a well paying job. I know more than a few very bright friends who took some CS classes in college and weren't challenged, they ended up going into physics.
Software Engineering should be a high prestige job, to better attract talent to the field, not necessarily to keep your star programmer working for you.
I do what I do because I enjoy it, but I never take my eye off the bottom line - and either should you.
The idea that the OP put forward was that simply offering more will solve the problem of finding competent programmers. My comment was related to recent and compelling research into motivation in creative work. It seemed related. I'm not sure I mentioned my pay grade.
Having one's eye on the bottom line is different from being subject to an incentive program, and different still from being competent. The latter is the more to the point. Anyone can be greedy. Even the incompetent. In fact, due to the Dunning-Kruger effect, it might even be suspected that the incompetent are likely to feel more entitled to a higher wage than the competent.
I am not your buddy. However, I will offer the following friendly advice: You might enjoy the level of discourse on Reddit or Digg more than that on YC.
Unadulterated nonsense. On the one hand, I recall a cartoon-drawing presentation about school contests and the like. On the other hand, there are these centuries and centuries of evidence that PEOPLE RESPOND TO INCENTIVES, PERIOD.
If you think that a company couldn't assemble a team of OUTSTANDING programmers by offering each $200k a year, you're crazy or stupid or both.
This is simplistic and naive. Money isn't what motivates most programmers. I know this may be hard to understand for many people on HN, but it's true. Many of the best programmers I know are passionate about a specific area or two. Imagine going up to one of the jruby developers and saying "Hey, I think you should stop working on jruby and make an asp.net site with me and I'll pay you $200k". They're polite so they probably wouldn't laugh on the outside.
The second major problem is the assumption that offering a lot of money will some how magically make it easy to identify good talent. It won't.
The third problem is that most good programmers aren't looking for work. Offering more money won't make a difference because they'll never know anyway.
It's interesting that your gut reaction is that this is all nonsense, and that you dismiss a single presentation as being nonsense purely on your own feelings and reactions. The book that Dan Pink wrote, and the work being done in the field is at odds with your reaction.
I know I won't convince you, and I know that you'll simply dismiss me as crazy, or stupid, or both, but the programmers who work for me often took a pay cut to do so. And they've stayed.
My recent complaints haven't been about being able to find good programmers, they've been about incompetent programmers who claim they're great, and in all probability honestly believe it.
If you're solving any problem at all, it's the wrong one. I don't want more job applicants, I just want applications from better candidates. My experience, and the studies I've read, say that offering more money won't help. I hope you understand that I'll put more stock in them than in your naked and unsupported assertions.
People who are really good tend to have their own ideas of what platforms they want to work on and what kind of problems they find interesting. Anyone paying $200K a year probably doesn't expect to give much leeway.
Note: I know people who get paid that much, I wouldn't want their jobs. I've been approached for positions paying roughly that amount and said "no" purely on the description of the working conditions.
(I just noticed you were a new commentor so I hope that comes across ok :))
Particularly your second point about developers ignoring jobs salaried at less than their current pay. Working in a toxic environment, or doing meaningless work, or staying where one's range of expression is limited, all have a cost. You won't know until you get there, but when you do, you will.
Did I miss the large paycheques? Sure. Did I miss the stress? Or people breathing down my neck for results, a week after they said they'd get me the information I needed but never did? Or being denied my vacation pay because my previous management-approved sick days (most of which I spent working from home) were suddenly 'excessive'? I didn't miss that at all.
It isn't about offering people a better salary, it's about offering people a better package. If you only offer $60k to someone who's making $70k, but give them 4 weeks paid vacation, let them work from home three days a week, and let them expense their cellphone data plans and home internet, they'll be more interested.
Especially once you interview someone, you can sometimes figure out what kind of perks will most appeal to them. Mac fanboy? Offer to buy them a new iPhone on launch day every time one is released. You've just gone from $60k to $60.7k, but the employee is going to appreciate it a lot more, since he'll never have to budget for it again.
Does he like to travel? Offer up extra paid vacation, and then add to that $3000 of 'travel expenses' per year, for personal use. That's usually enough to fly two people anywhere in the world, return, so he and his girlfriend can take a nice long trip to Europe after you ship version 1.05 and everyone's ready to unwind. The idea that he won't have to budget for it - that he can just suddenly decide to go to Laos or Mumbai or Morocco, even if his bank account is on empty - will be appealing. It's like a 'get out of town free' card.
Tell all your employees you'll pay an accountant to do their taxes for them. It's a huge hassle for most people, and if you take that away tax season gets far less stressful.
So many programming jobs I've seen offer high salaries, but with minimal benefits. You get a stock health package, minimal vacation, and MAYBE you get to expense PART of your phone bill, if you're an admin on call. Take away all the junk that people don't want to worry about and let them focus on being geeks.
It's hard to offer this sort of thing in a job posting, but if you can lure the good people in to an interview, this is how you get them on board.
At the most basic level, if your developers aren't earning enough money to easily solve the myriad money-related problems of everyday life, those stresses will seriously affect their work. Money doesn't buy happiness, but lack of money can sure make it hard to find.
The pay also needs to be high enough that your developers don't feel worried that they're being ripped off -- that is, if they notice they you pay below the industry standard for the region, but they know their work is above average (in fact it may be way above average), they'll be forced to dedicate time to figure out if they're being taken advantage of. Not because they need the money, but because we all tend to think people who get tricked out of their money are fools, and they don't want to be seen as fools.
Once you get those two things out of the way, then you can focus on building real, non-monetary incentives for creative work -- interesting and diverse projects, sense of purpose, constant learning without forced massive leaps (good flow), allowing & encouraging mastery, etc..
It's absolutely true that just raising the money won't fix hiring problems once it's "high enough", but if you're simply paying too low, you don't have a chance.
I get the impression that the mechanism for that is that anxiety about getting/losing the incentives can starve the creative processing of mental CPU time and maybe lower your risk tolerance below the optimum. A flat salary shouldn't trigger that regardless of how high it is, and conversely a poor environment (antagonistic management, mandatory overtime if you're not meeting some almost-reasonable deadline, ...) ought to be able to trigger it even if money isn't involved at all.
You've got it exactly backwards: it's not intended to deter the unqualified, it's meant to attract the qualified.
And yes, high salaries do tend to attract good people. Maybe not exclusively, but it's an important factor. So, if the complaint is that "there are no good programmers" (and we assume that your screening process isn't totally arbitrary), there's a pretty good bet that you're not attracting good programmers from the places where they currently work. High salaries are a good way to do that.
If you are "sucky" you might still apply for a $60K job, thinking that you might slide through. But you wouldn't bother applying to a $100K job, thinking that there'd be way more competent people applying so it'd be a waste of time
Never done hiring before, eh?
I regret not having applied to many great opportunities as a younger programmer because I filtered myself out, when many who are worse off never do.
Self-promotion: http://blog.codeboff.in/2010/06/25/good-programmers-are-hard...
Our salary structure is designed to select for exactly the type of people we want to attract - the kinds of people that will go through walls to bend the world to their will, for some deeply ingrained reason unknown to anyone but them. For people like that, we pay an incredibly high salary that they're unlikely to find anywhere else (2.25% of everyone's contribution on the high end). If you're the type of person who wants to change the world and have a shot of building a one billion dollar business while doing it, you're unlikely to find a higher compensation anywhere other than choosing to start your own business.
If you're interested in having a stable, $200K job, RethinkDB is not for you. Neither of these choices is better or worse, simply different. It's a question of temperament. We weren't complaining, we were working to recruit great programmers who are driven to change the world. This is exactly what the post accomplished.
Which is exactly what I did. Freelance contract programming pays the bills (and is quite enjoyable) and I'm bootstrapping a startup on the side. It's not so much for the compensation as the challenge of something new and the independence to make my own decisions.
So at least in my case, it's not your fault. You can put the most attractive job offer out there and I won't bite. I'm wondering if there are a lot of programmers like me. That would certainly reduce the supply.
Hmmmm.
I'm probably dense, but what does that mean?
The really bad news is its starting to catch up with many doctors as well.
Not sure where you are from, but here in Canada nurses lead very cushy lives. Salaries of 80 to 120K are not uncommon, and that's with 4 weeks of vacation, 1 day in / 3 days out schedule, etc.
If being an RN was cushy, I think there'd be less of a shortage of working nurses in Canada.
My gf is an EMT, and two of my sisters are nurses. Here's the actuality:
Nurses are paid OK. They work long stressful jobs with severe penalties, both moral and civil, for screwing anything up. There is a high chance of serious injury, particularly while trying to move or assist fat or obese patients, of which there are more and more due to the obesity epidemic and diabetes. Working as a nurse or EMT means physical labor involving long periods of standing on your feet; little control over when your shift ends, no matter what the schedule says; having to work very early morning or very late evening shifts to get 100% coverage; and very little flexibility during the day. You know how you can run small errands and do little errands with your computer? They, for the most part, can't.
They also have ongoing education and certification requirements that they most often pay for out of pocket.
Finally, being an EMT, paramedic, or nurse means not only developing an intimate relationship with bodily fluids of all sorts but seeing on a daily basis the worst things that can happen to a human being. From mangled bodies from car accidents to cancer, to diseases (including those that require hazmat suits and offer severe risks if anything goes wrong), to infected wounds, to septic shock or heart failure or stroke, they see all the things that can go wrong with a human.
So yes, they're fairly well paid, but I wouldn't describe their actual jobs as anything like "cushy".
I was advising a startup recently about what tech stack to use. Their default notion was PHP-centric. I pointed at the advantages of other languages/stacks. I said that while it's generally true you can get the job done in a variety of languages and tech mixes (anything that's Turing complete, eh?) it's still very important to pick the right mix, because it impacts other things. One of the things I mentioned was that it effects not just the quantity of folks you'll find on the market with that skill set, but also the quality and really the kind of person.
For example, if I had to wade through 100 random resumes from strangers for a dev job I had to hire for, I'd get very different kinds of people if it were for say a PHP stack versus if it were a Java stack or a Lisp stack. Very different folks, on average. To be more explicit, I'm confident there would be way more applicants if it were PHP, but way better applicants, on average, if it were Lisp. (I did not literally recommend they go with Lisp (dev scarcity factor still a bit too strong for my tastes right now, though Clojure may change that), but I will say that it was not PHP.)
No, they do care about cash. How do I know?
>They work on the most interesting project they can find that pays them enough to live.
There. That's why. If they weren't making enough money to meet their needs, they'd be looking to trade up. Money isn't the only answer. Everyone likes to talk about how money isn't the solution. I'm pretty sure every one is making a bit more than minimum wage or aren't looking to get compensated in some other way in the future.
Often the case is the hiring manager or firm not being upfront and the potential programmer running from the interview process due to that dishonest behavior
we tend to like upfront honesty and transparency because most of us are realists
In Finland, if you leave out top 0.5%, the variance is between 2000€-5000€. And most of it settles around 3000-4000€. Finland is very eqalitarian society when it comes to salaries and thus that has to be taken into account. But still. 2.5 is not much, think how much variance there is in salaries of managers, lawyers, doctors.
How's it in States, what are the typical salaries for good or great programmers vs. below-average progammers? Leave out top 0.5% - i.e. rare individuals with specialized skill sets in e.g. bank security.
This is totally wrong, and the key is "enough to live". I love programming as much as I did when I was 10. My expenses, however, are now somewhat higher than when I was 10. I have a wife, two kids, will not live in a small house, have very expensive car insurance, and I road-race big cars, hard on tires. If you want to hire me, it will cost a lot more than $100k.
Then there is the issue of mobility. Programmers tend to be loyal. They tend to be realists. If I make X here, and I know here to be fun, why would I risk moving for 1.1X, or even 1.5X?
What you have a reversible reaction in equilibrium. You want to bind seats to programmers. Programmers will bind to a seat for a while. But not all programmers will bind for the same price. Sure you can fill a seat for $100k. You might be able to fill a seat for $20k - but you'll have to wait a loooong time. If you want to fill all your seats, you're going to have to appeal to the largest possible pool of good programmers, and some of us need more money.
Even if you ignore the fact that those of us with higher expenses have more experience, the simple math of the equilibrium reaction tells you that if you want to fill more seats, you have to have a bigger pool. Even if we are of no more value than the 20 year old, the question is: Are 5 programmers better than 4 for your business?
Whether or not that makes economic sense for your business is up to you.
So yes RethinkDB, $125k for an Engineer III will get you some hires, but are you going to insist that this is the right price, even if it means that you have empty seats? What is your opportunity cost? It may be the right decision. But it may not.
My results are not statistically valid, I've only gone through the hiring cycle five times, but my impression from actually trying it is that salary is not what it's about.
Dan Pink said it well:
http://news.ycombinator.com/item?id=782171
http://news.ycombinator.com/item?id=1357390
http://news.ycombinator.com/item?id=1439939
The problem isn't attracting candidates, it's getting the candidates to see your job opening, to understand that it's a great place to work, and then filtering out the clueless.
And then offering them enough money so they don't have to worry about it. Because, I'm sorry to say, minimum wage isn't going to cut it.
"IF YOU DONT PAY PEOPLE ENOUGH, PEOPLE WONT BE MOTIVATED."
"THE BEST USE OF MONEY IS TO PAY PEOPLE ENOUGH TO TAKE THE ISSUE OF MONEY OFF THE TABLE".
"ONCE YOU DO THAT THERE ARE THREE FACTORS THAT LEAD TO BETTER PERFORMANCE..."
Once you do that. Clear? Once you pay people enough to take the issue of money off the table. This is your link dammit.
For me, with a wife, two kids, and a car racing habit, that "enough" is a lot higher than it is for a 20yo student. Its about $130k in fact.
As for your results, as you say: "not statistically valid". That actually means something.
EDIT: sponsoring hackathons may be another way of finding great programmers. And don't forget the colleges in your area: if you have an interesting piece of technology you can show off, you can present a talk and hopefully get a handful of resumes.
Hackathons and design contests like topcoder.com are great for employers but really bad for contestants, most of whom are left with nothing.
http://codeanthem.com might turn into something of an inverted marketplace where employers can compete for the attention of good programmers. (I'm not associated with codeanthem.com)
I've never known the salary for a job at the time I applied. I'm not even sure I had a ballpark. It does come up in interviews, since companies tend to want to know what you're expecting. But why should I care? That's what an offer is: if I don't like the offer, I don't have to accept.
To attract good talent, you have to put your requirements right into your job posting. Ask for proof of work on open-source projects, for example; things that are hard to fake. A candidate that feels daunted by your application won't even make it to the interview.
If you know ahead of time they're only interviewing for a position that tops out at $35k and you don't want anything less than $60k, it's better to not waste everyone's time.
But paying the good programmers you already have a much higher salary and looking after them well will deter them from jumping ship.
We don't have to show that it would make inept people stop applying. We just have to be able to get better at weeding out the rubbish ones - i.e. in less time, lower cost.
The same goes for fun: rarely you know exactly what you'll be doing or how interesting it'll be.
The thing about money is that easy to compare. If you have 2 offers from companies that are both startups, both well funded with seemingly great people and interesting problems to solve, it's very compelling to decide based on salary, because all other aspects are hard to compare and judge before you spend a few months working at a company.
this is a real challenge. I'm trying to get better at judging if a company is good to work for, but so far it still feels like a crapshoot.
Of course, we often cheat and go to places where we already know someone :)
a) Salary is rarely disclosed in a job posting. Salary negotiations usually happen after a candidate was interviewed and deemed worth hiring.
b) Even if you were to disclose a salary in a job post, an unusually high salary might make it easier to find a qualified programmer (because more people will apply) but it is not likely to increase an average quality of submitted resume, so you'll still have to look at 200 resumes to find 1 good candidate.
It's not about money.
I'd take Google job if I'm fresh out of college for the sake of experience so I can get better position, salary, and wide-range of opportunities in the future.
But check this out: if there's a better place than Google and they pay better, do you not expecting Google's employees to jump ship? (for example, Facebook pays more or Facebook has a good potential to make yourself to become a millionaire)
These 3 examples are strategy to position yourself for a better future. A better future usually involves better position and/or compensation. Sometime it's not about money, but it's about power. Power to tell fellow developers that they're not that good so they have to do TDD, code-review, and help QA to test their own shit.
Yes, it's not _entirely_ about money, but at the end of the day, mostly it is about money, especially for people who can accept other negatives.
Being a non-technical co-founder, I did learn this the hard way a few times.
I totally agree that having a competent, hardworking and passionate programmer is probably the most important part of a startup.
My Buffet said it best IMHO... I've worked with some competent, hardworking, and passionate with no integrity who have really caused a lot of problems.
Ultimately, within reason, good programmers are worth whatever you have to pay them and bad programmers aren't worth what you pay them. There are way more bad programmers than good programmers and money isn't the way to attract the good ones. You have to attract them with interesting problems and a great work environment. If they're there for the money then they're probably no good anyway.
The salary that a company offers might not be listed in a job offering, but the culture and many other factors are neither. And even though they are not listed you probably heard of companies with a great culture etc. Don't you think the same is true for salaries?
http://en.wikipedia.org/wiki/The_Market_for_Lemons
Solve that problem to solve this one.
Furthermore, it seems that weeding out the chaff is something probably everybody could agree on - that is, what would be nice is some kind of informal certification process or standard test. Nothing like an AMA board certification or the attorney's bar in terms of formality and obligatory nature, but perhaps some kind of hoops to jump through.
Perhaps some kind of list of programming tests and a way to administer them?
The best way I've seen to evaluate the ability of a programmer and their* fit at your company is to:
1) Ask them to program something simple in the language you expect them to use.
2) Present them with a problem your team recently faced and ask them to talk through how they would approach finding a solution.
3) Ask them about things that relate to your startup/corporate culture (eg. if you're a bunch of practical jokers, ask them about practical jokes they've done or been victim to)
4) Ask them what part of your product sucks the worst. What specific thing would they do to improve it? Why would that be an improvement?
5) Have all your short-list people meet and spend some time together. In a followup interview, ask each about their opinions of the others.
* I hate to use "they" and "their" as a gender-neutral, singular pronoun but haven't really found anything better :-(
Personally, I'd love to see a nicely-indexed list of jobs. Things like location, work environment, remote working arrangements, languages used, expected number of hours worked, typical responsibilities, schedule flexibility, vacation possibilities, who I'd be working with, degree of autonomy, level of recognition for work, perks and benefits, etc. are all factors that go into liking a job. And that's not even mentioning money.
Personally, I'd love to start a job working remotely at $40/hour for 20 hours a week or so. Once it was determined that I'm a good fit, I'd be willing to relocate to a lot of different places (e.g., Baltimore, Chicago, Denver, Atlanta, New York, pretty much anywhere warm and coastal).
I think the question isn't so much why is it so hard to find the right employee or job. The real questions are:
What are the actual job requirements? I don't mean traditional notions of what a reasonable work week are. I mean what do you truly need? It might be possible to get a rock star developer working for you at a cost of $40K per year, if you can eschew the standard notion of a 2000-2500 hour per year commitment.
If you're a potential employee, what do you really want from the job? Focusing on the money is not the answer. Make sure that what you'll be doing, who you'll be working with, and where and when you're working all fit well with your personality and work habits.
And why is it so hard to match jobs and people up? Is there a decent resource anywhere that I could use to actually narrow down job opening according to a slew of criteria? In a high-demand field, doesn't it make sense for the potential workers to post what they want in a job, and have the jobs bend to that? Maybe I'll make a submission along those lines...
http://www.rethinkdb.com/blog/2010/06/will-the-real-programm...
Pay is but one factor, and resume (or job description) plus salary requirements aren't going to communicate what you really need to know. More than 90% of the jobs I've interviewed for had laughable interview processes. I've asked harder questions of my interviewers than they've ever asked of me. Most people just don't get it.
A "competent" developer needs to be hard working, interested in your particular problem set, and like the work environment you've created. You need to dig in and find out what this person is really about. Even if they're competent they may not like your company, idea, or even you. These are things you, and they, need to find out before the hire.
You/They aren't finding competence because you/they aren't looking for it.
I agree with the original poster to the extent that I see some employers trying to get a "deal" on a great programmer without compensating the lower pay with great work, meaningful equity, or good work/life balance.
You've seen the job posting by Big Dumb Company that wants a "rock start programmer" but has strict policies that won't let them pay rock start salaries or give more than 2 weeks vacation their first year, telecommute, etc.
Then there are the small guys that want you work for peanuts in exchange for worthless stock options i.e. they want you to take $30K less pay per year and if they ever have a liquidity event your diluted stock would be less than that $30K you per year you gave up. If they fail (and they usually do) you'll get squat.
If Salary.com tells me that the 75th percentile for my general qualifications in my area is 80k, I'm not going to believe that I'm qualified for a job paying 120k. My mind would resolve that discrepancy in favour of the job requiring something I don't have, not just they employer's willingness to pay well. This may even be true if they say why the salary is so high
[1] http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
Sometimes bargains can probably be found, but they're probably rare and difficult and don't last very long.
Getting really good grant writers (like us) is going to cost at least $100 an hour, and probably more like $125 – 200. The same is, as far as I can tell, true of web consultants. Good lawyers? $300/hour. Escorts? Probably also $300 in most of the country.
If you don't realize how much things and services costs, you'll end up with sub-par quality, or you'll pay, and/or you'll complain. A lot of people do the latter. I wouldn't expect it to stop.
Also, the main point of the submission wasn't that programmers ought to be paid more. It was that I find it offensive when people claim that there are no good programmers out there but don't even seem to consider offering higher salaries. I'm reminded of the woman who is asked out five times a week by reasonably good-looking men of average social status, rejects them all out of hand, and then laments, "There are no men out there!"
Actually, this is worse. The woman may not be able to alter her personality or appearance enough to attract the caliber of man she's interested in; but companies can always offer higher salaries.
Because I'm currently only a few years out of school, no one would come close to paying me what I really feel I deserve. Even in the best case, the long term for a programmer doesn't look all that great. This is an extremely ageist industry.
For this reason in my off hours I've been working on trying to increase my prestige through writing books, blogging, and speaking at events. Eventually, I hope this helps me either find a startup with excellent prospects or allows me to charge large amounts to existing companies for consulting.
I can't see doing this with a family though. It's a difficult road either way.
You have to keep in mind that you are competing with the excitement and potential earnings of running your own show.
When it comes to programmers, the consensus seems to be the opposite. I mean, they ought to be motivated by having a refrigerator full of Red Bull or being able to bring their dogs to work -- I mean, the Linux kernel got developed by people who work for free... Why do we need to pay people anything at all to develop applications for our intranet?
Although you'll find programmers with very different stories, I think that we'd see a healthier IT ecosystem if software people got more pay and respect (a friend of mine and myself both got offered a particular job... for him this was a big step up in pay and benefits, and for me it would have been a step down -- I've seen the compensation of programming jobs where people do comparable work vary by more than a factor of two.)
I think the "equity culture" is often part of the problem. There are startups in my town that pay $10 /hour, no benefits + equity (which might be worth something, otherwise not.) I also interviewed at a place where people were starting a new job shop; they seemed like a nice bunch of folks, they had all the trappings of "good management" (the CEO was a freshly minted MBA from an Ivy League school) but the biz plan didn't make a lot of sense to be and they were talking low base pay + some equity... This is a frickin' job shop... The kind of place where you might get $50,000 worth of equity and really be able to cash it out for $40,000 if you're insanely lucky.
That said, the interview question they asked me was the best interview question I'd ever been asked. They asked me to estimate a project they'd done for a client. I was smart enough to ask questions rather than blurt out a quick answer ...
I estimated about 160 hours for the project, and they told me it really took 200. That's not far off for a "seat of the pants" estimate, but driving home I thought... These guys probably charge $150/hr to clients; their client spend $30k for a really crappy intranet app that tortures end users... they "need" it for regulatory compliance, but there's no way that this app creates $30k worth of value.
For christsake they wasted 40 hours dealing with a deadbeat D.B.A.!
So that got me thinking about where my career was going and about software economics. For instance, if you want to get paid $150k a year, that money has to come from somewhere. Unfortunately, the shortest path to that is to get in a position where you can collect that as a rent, but assuming you're (i) the average unlucky joe, and (ii) somebody who wants to make a contribution, you need to be in a place where you're (a) creating > $150k a year in value and (b) in a position (politically) to get a good chunk of that pie.
Marx will tell you to work on (b) and that makes some sense, but I'll tell you from experience that it's a much better life to make $X for your boss and get paid $X/2 and it is to make $X for your boss and get paid $2X.
Practically, Job Shop work tends to be pretty marginal; the usual business model is to underquote work, lose money, but make it up in volume. It can be a nice biz if you've got sugar daddy customers who do stuff on a T&M basis, but otherwise job shops that look really profitable and productive today are frequently gone in a decade.
Now, you can make a lot more for your employer, potentially, if you're making a software product [or developing a SaaS-y service these days] but it's not at all unusual to put a man-decade into a product, spend $100K trying to sell it, and end up with $20K of revenue.
"Getting paid more" is therefore a matter of (a) making more value, and (b) getting a bigger piece of the pie. (a) interests me more these days -- I find it disturbing how much it costs to create business software and how bad the quality is usually is.
hint: it is not just a performance and productivity, its also morale, influence and starness factors. And it works.