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.
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.
The projects were challenging, that's why I stayed for so long. When you have tons of student loans, mortgage, and hospital bills, you can't forgo the perks and bonuses. I have a family to take care of so what I really want is everything. I want a good work environment, I want good money, and I want fun projects. Why? Because I give them back what they need: stable/reliable, problem-solver, productive etc.
Nothing says "I love your work" more truthfully than a bonus or a raise.
By the way, it is proved by countless experience that once salary is good enough, it is disconnected from happiness at work.
Good pay and respect will bring you way further than good pay, bonus and "you are my slave".
That's not any different then what they OP is saying. The issue people have at finding good programmers is that they aren't paying enough.
Yes, other things matter, but if you start off by offering minimum wage, a "Good job!" doesn't really matter.
For me, high-enough regard can mean someone whose work I know of and can appreciate on its merit, or it can mean someone who used my software by choice.
For example, if my boss' actions don't show that he's interested in my happiness at work and he thanks me for making his pet project happen, it means nothing to me. But, if a customer, or someone whose work I admire, tells me they like the software I created, they've just made my day.
If an employee says to the boss "Hey, I think I'm worth X more than you're paying me", and after extensive "due process" the answer comes back from management as "No, and you can't have more time off either", that's a clear sign that the decision makers have, at best, limited respect for that employee's work. Verbal claims of respect, at this point, are almost offensive.
That said, on the other hand, piles of cash but nary a kind word is also not very respectful.
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 :)
I believe OP is trying to say: Money is an incentive. But it isn't the only incentive.
(== in php isn't the equality operator insomuch as the 'kinda like' operator.)
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)