Software Development

Hiring good programmers: The high cost of scrimping


CodingCame across this very interesting and enlightening piece by Frank Wiles, in which he discusses various topics that we are all too familiar with pertaining to software projects.

He made a few salient points drawn from his experiences that I have summarized as follows:

  • A good programmer can be as effective as 5-10 average ones
  • Finding good programmers is hard in any language
  • Average pay rates for equivalent programmers are out of sync and are more based on language than skill
  • Seriously consider allowing telecommuting to get access to the best talents
  • It might make more sense to hire expert programmers who can learn a particular language than an expert in that language

Why is it so hard to find good programmers? An offered explanation is that when companies find good programmers, they do their utmost to keep them for as long as possible. Essentially, demand and supply takes care of a possibly limited pool of talent.

However, what caught my interest was Frank’s assertion that simply hiring more junior programmers is often not the answer. Instead, the result often culminates in nothing more than “keeping the seat” warm in most situations.

Excerpt from: A Guide to Hiring Programmers: The High Cost of Low Quality:

Companies need to stop thinking about their developers as cogs in the machine. They are more akin to artists, authors, designers, architects, scientists, or CEOs. Would your HR department rush to find the first person who would willing to take on the role of Chief Scientist, Art Director, or CEO in your company? Of course not…

They realize that having the wrong person in that seat is much worse than having the seat empty. It is absolutely the same with programming.

What about you? What are your experiences with hiring or working with programmers?

About

Paul Mah is a writer and blogger who lives in Singapore, where he has worked for a number of years in various capacities within the IT industry. Paul enjoys tinkering with tech gadgets, smartphones, and networking devices.

99 comments
JosB
JosB

One large problem in hiring is that a HR department cannot determine the potential of a candidate. So they will put the resume in the dustbin because it does not fit their checklist. Consider me (if I were available as programmer, which I am not). Looking at my resume would not get me the job. I lack experience and certification. Don't have a degree. However, in the past I have build business solutions in languages like Perl, Java and C. I can learn the basics of any language in couple of weeks. I help people here at work with their programming problems. If you want to hire a good programmer, don't post a 'I want this' list. Make some fictional situation (preferable non-business related) and ask for solutions 'what would you do?'. Look for the creative replies where people also considered and listed multiple solutions. Invite them and then talk about programming skills. If they know Java, ask them if they would be able to do the same in Lisp, given the right resources and time to learn the language. Let them explain how they would learn the new language. I think this gives more insight in a person than dumb checklists.

Fred Cone
Fred Cone

I think it is a crock that experienced programmers are hard to find. I was an IBM ALC programmer, systems programmer, and did tech support for the other programmers in my shop with over 20 years programming experience. 9/11 we lost out contract and I have not been able to find work as a programmer since. I now work in a call center doing tech support primarily for PDA cell phones to help with getting them connected to customer's PCs.

temp
temp

I am a result oriented programmer, good architect, but I cannot find a job. I interviewed many people before. I belive there is always a gap between the recuriters and programmers. A company interviewed me recently, they asked me to do an online test. I failed because I got 72% right. I have used that language for more than 5 years, but I have to admit that I do not know many things about the language. A new guy just finishes a language book will get better result than me. If a company focuses on the pass experience of a candidate, not a basic test, it will have more chances to find good employees. I like google's interview style.

Deadly Ernest
Deadly Ernest

I don't know what it's like outside of Australia, but I know many very good programmers who've left programming and gone into other fields of work, going through extensive retraining in the process - because the pay just wasn't worth the pressure and the hassles. None of the management ever listened to them, they were always given deadlines, those always shifted to shorter time frames, never given the assisting staff they were promised at the start, and then held to blame by management when the application isn't delivered in the shortened time frame management were told wasn't possible to meet, but had to be met because the marketing people promised it for then. Being professionals who took pride in doing quality work, after finding the local industry didn't see them as professionals, most were paid less than the junior marketing guys, and the hassles - they left the industry, just wasn't worth the ulcers for them.

Tig2
Tig2

I used to was a good programmer. Then I was re-directed to Project Management. Fortunately, I am a good Project Manager. My partner? My partner is "amusing" himself with writing a database to house trivia so that we have things to occupy ourselves with on long walks. Visualised chess on a long walk doesn't work so well- too much else to get distracted by. Trivia is the right answer. He is an incredibly good programmer. But no one needs good programmers as much as they seem to need cheap coders. Therein, the problem. The value of a really good programmer is not well aligned to the value of someone who can only work in the world of drag and drop code. The really good programmer will lose sleep over making sure that the code is correct, maintainable, answering to standards, and bullet-proof. You find these guys languishing in Project Management roles... maybe. And only then because someone was bright enough to recognise that they are irreplacable and giving them something to do might be a good thing. You keep good programmers by recognising their unique abilities and challenging them. My opinion, your mileage may vary.

Tony Hopkinson
Tony Hopkinson

Well I'm not someone you'd hire if you were in scrimp mode. As far as I'm concerned it's the industry's own fault, concerned by how much we cost they flooded the market with a bunch of single track highly educated morons. No matter how many of those you pile together, they still don't equal one decent developer. Unless you are going for the 1000 monkeys typing and you end up with a Shakespearian sonnet manoeuvre! Would you hire a bunch of guys who once made a coathanger to design and build a cruise liner? Probably not, yet in our industry, nippleheaded decisions like this get you a pat on the back for saving money building submarines that don't ever surface. A good programmer can program any process that is understood by someone, in any language on any platform, the rest are MBA'a with delusions of grandeur. :D

andy.nelson
andy.nelson

Very true - so often as a specialist IT recruiter, I come across HR departments who seem to think the developer/programmer's skillset is just a "shopping list" of keywords, and run a simple keyword search on a CV/resume, before deciding that it is unsuitable. Funnily enough, when presenting the same document to the relevant departmental head, the person is hired....... Fundamentally I would say the key issue is that within an organisation, the responsibility for selection, interview and subsequent hiring should lie with the person who will be managing the programmer, rather than an HR department who at best get the candidate through after a delay (after which they have often gone elsewhere!) or at worst overlook a good prospect because of the keywords not appearing often enough. One of my fave examples was an HR manager rejecting a top flight J2EE/J2ME developer for a "Java Developer" role as his CV didn't contain the keyword "Java". Oh how I enjoyed educating her and passing on the problem to the Development Manager as to why he had spent 6 months unsuccessfully recruiting for the role.......... ;-)

aabare
aabare

I like your idea. However, depending on what you need (straight heads-down programming, analyst, some combination in the middle) some level of skill should be required. I am currently looking for a programmer/Analyst. If I don't give HR some (at least) basic criteria, I will be weeding through resumes from people that have analyzed the mating habits of frogs. I need someone with basic understanding of the manufacturing process. I am not as concerned with the programming language, many posts here are correct in that a good programmer can pick that up a new language in a (relatively) short time. I do like the idea of seeing how a person thinks (not just programs.) as part of the hiring criteria.

pgm554
pgm554

and go to where the jobs are. I'm from the area and left a long time ago. Philly ,Hbg and DC are close by and you would probably have a better chance there.

Tony Hopkinson
Tony Hopkinson

The 42 years cumulative experience in 55 disimilar products none more than three years old, the team player who can work alone..... is an unfortunate fact of life. The people asking the questions don't know the answers, they don't know what the test score means , they don't about the F1 key and Google without which all programmers would be knackered. I've done several sorts of test, passed some failed others. I now judge employers based on what sort of HR hoops I have to jump through. If they come out on the wanker end of the scale, I don't give a crap whether I pass or not. Keep trying you'll get there, you wouldn't have enjoyed working for them anyway.

Conger
Conger

I think we need to be more specific in what we are talking about here. A good 'programmer', in my mind, is someone who can pound out good quality code in a timely fashion, regardless of language. 'Programmers' generally do not need to be good at dealing with other people, but they do need at least reasonable problem solving skills. A good 'developer' or 'analyst' on the other hand, could get by with so-so coding skills, as long as they have really good people skills and problem solving skills. I think the pay rates should be higher for a good developer or analyst than they should be for a good programmer.

kovachevg
kovachevg

You say many programmers left the field - I am about to do the same. After so many years of living up to top management's expectations, I decided this profession is NOT the venue that makes you happy. Even when you achieve your goals on time and on budget with half the resources, someone up there still tries to outsource you - they call it "maximizing financial performance" (one of my degrees is in Economics, so I know what these pen pushers are talking about). The comment of the CFO of a company I worked for was quite revealing - "...those soft-spoken IT people". Then it hit me: they thought we did not have teeth!

stan
stan

Managers see programmers as replaceable parts, and seem unable to comprehend that someone who is ten times as productive should be paid more than an average programmer. I also know a number of very good programmers who just got fed up with it and went into other fields. One now has his own little business rebuilding VW engines. The work is easier and the pay is better. If you want top developers, you have to treat them better and pay them what they are worth.

vbnomad
vbnomad

Nothing frustrates good programmers more than bad management. The source of unrealistic deadlines, unworkable solutions, moving targets and shifting expectations are managers who don't know their craft. Good programmers who know their craft will have little time or respect for people who wear a title, collect a high wage, wield power but know very little. Too often real management (leadership) is treated a 'common sense', seat of the pant knowledge. MBA's are taught to do presentations and collect 'metrics' on spreadsheets... yet projects succeed or fail on skills few management classes teach. And sadly, it's far easier in corporate culture to outsource the IT staff than solve the problem of managers who don't know their job.

Riverwind
Riverwind

My experience told me that a bad programmer may lead to increase other team members workload for debugging what he done.

cvicd9
cvicd9

Good programmers like any in any industry are needed but many at time there is no filter withing the education system for poor programmer to be eased out therefore until they try to work comes out. Many think "per hour" and forget the challenge of creating a solution to some else problem. They only see the satisfaction of the money with poor solutions. How to balance money with skill is still the problem. Should be a way to gather the individuals who relish with the challenge to create solutions and let the rest just to do minor changes to software.

Locrian_Lyric
Locrian_Lyric

A GOOD programmer can pick up ANYTHING. It is the PROGRAMMING, not the language that makes a programmer good. I know a guy who is absolutely brilliant, he can pick up anything in a week. when HR begins to realize the difference between a programmer and a trained chimp, the better for all of us

Tony Hopkinson
Tony Hopkinson

Could have ended up with me. I had javascript on my cv, obviously the same thing. Not often a recruiter posts stories like that, most of the time it's us posting them about you guys. Four years experience in xxxx2007, etc. My favourite was the firm who sent me no UK based jobs in three months because I'd foolishly limited myself to Europe.

Don Ticulate
Don Ticulate

What do you suggest bearing in mind there could be 20+ applicants and you only have limited time?

Locrian_Lyric
Locrian_Lyric

Show me a programmer who doesn't use F1 or google, and I'll show you a yutz from an one of those H1-B mills that couldn't keep up with a trained monkey!

akke.bengtsson
akke.bengtsson

What is a programmer who is either unable to properly understand what his program should accomplish or unable to translate this understanding into code? Not very useful, would'nt you agree. If this stage of the problem solving process "belongs" to developers or programmers is most of all semantics. If this visualization process is explicit (pictures, graphs, schemas, whatever...) or subconscious does not really matter much either, save for the fact that an enlighted formulation of the problem early in the process can help the buyer to reformulate his initial idea into a more productive one. What I find indispensible though is the skill in itself, to visualize what later should be cast in code.

Tony Hopkinson
Tony Hopkinson

You seem to be intimating there that you are a so so coder, but you are good at developing, therefore you should get more money. Is that what you meant to say? You do get paid more than a straight programmer, they are lucky to get a job stacking shelves at a supermarket. Next to extinct they are. If you are so so at coding, stop doing it, it's bloody annoying!

$dunk$
$dunk$

In my mind, a developer is someone who does it all, both the job of programmer, analyst and tester. Anyways, the vast majority of my time is spent on deciding what to build, how to build it and testing the system. Comparatively, very little time is spent programming. Thus, I agree the topic should be good developers instead of good programmers. As you said, a good developer/analyst may be able to *get by* with so-so coding skills but they aren't one of those who can be as effective as 5-10 (or more) average developers. The really good programmers will know a lot more *simplification* tricks to make the code/design easier to understand and implement. Thereby saving a great deal of time, which is why they can do the work of many average programmers. I don't believe someone who is just a good designer/analyst will have the same insight if their coding skills are not up to date and sharp.

Locrian_Lyric
Locrian_Lyric

I don't know of any programmers running a company into the ground.... A friend and former coworker of mine ended up quitting because for four years in a row it was the same thing... in Feb, project with Dec. 31 deadline announced. Programmers/analysts insist overtime will be needed. Management denies overtime or contract workers. September rolls around, project is 2 months behind... Everyone is working OT AND coming in on Saturdays, vacations are cancelled and programmers don't get to see their families during the holidays. Finally my friend quit on Dec. 1 one year... drove the place into a panic because he was a key player. He had enough BS and wanted to actually have a holiday with his family for once.

Tony Hopkinson
Tony Hopkinson

Bad programmer though requires defining. I've seen guys who would score very high from a technical point of view cause enormous amounts of unncessary work. Extremely clever code, tight, highly optimised, hard to read, expensive to change, impossible to port.... I'd rather debug a fool's work than enhance a moron's. Beaaring in mind over 60% of the shelf life of an application is enhancement.... Change is a given, prepare for it.

Tony Hopkinson
Tony Hopkinson

such thing as a minor change. :D In some of the designs I've worked on, he was quite correct. There is nothing in academia in place to judge how effective someone will be in the real world. 90% of it is in some imaginary place where everything is done with recursion and a back end database in 5th normal form, already fully specified and tested by some git with a magic wand. While business believes in the lie perpetutated by academia and the cert muppets, that learning a programming language makes you a programmer, we are f'ed.

Don Ticulate
Don Ticulate

Two can play they Typo Game as well you know!

Tony Hopkinson
Tony Hopkinson

Mainly because I've been trained to double it and add ten when producing an estimate. :D HR will never realise it. No programming cert, no programming qualification. Though I have hopes JJ can implement his pragmatic training course.

HiCSQ
HiCSQ

When I was working on my BS in Aerospace Engineering (60's), the emphasis was on how to teach good designers. These people had to be eclectic so they could relate to other disciplines and design a solution to solve a problem. Why do people think that it takes the right genes to be a great painter or musician but problem solving can be taught? Of course both can be taught, but to excel you must be wired correctly. Too many people who do the hiring have no understanding of the work or how to recognize good people. Two of the best designers I've ever worked with were two year vo-tech grads and most people thought they were inferior because they did not have a degree. BTW - most of those "superior" folks never had a successful project. I wouldn't hire them to fold a paper bag!

andy.nelson
andy.nelson

Tony - so very true!! Unfortunately our industry is plagued with people who don't actually know their market, it's technologies or their clients' requirements very well..... When we set up just over a year ago, it was set in stone that we would take on consultants who actually have a background in the areas they will be working in. So a Tech/IT Sales recruiter is an ex tech sales guy, a recruiter for Java developers is an ex developer (or as near to as possible). Not only does it mean we get it right first time as far as understanding a CV and "reading between the lines" where required, but it also means that potential clients can have a whole load more confidence in us as well. It's not exactly rocket science! Now if only HR departments took a similar view....... ;-)

Tony Hopkinson
Tony Hopkinson

but the person judging the result, should know what it means. We do alot of client server DB work. One telephone question is, what is a transaction, BS us, or just don't know. It's wind up politely and next.

Don Ticulate
Don Ticulate

I have a NoN that need replacing and may use some of your tips. His non work internet access records are through the roof and I think we are going to let him go!

temp
temp

It's OK to find junior programmers using their test scores because they do not have much experience. For an experienced programmer (senior position), it is easy to know his skills from the past projects he has done and his roles in these projects. You will have a good judgement from what he says. The interviewer must be good in this area to make the judgement. I got more than 100 resumes once, the average time I spent on each resume was less than one or two minutes. It was for a senior position, so it was easier to get ride of some resumes. One candidate was not quite qualify for the position, but I thought what she did was great. I called her, interviewed her. She did not have much confident on what she had done. I hired her. She did great job in the company. Do companies want to spend time to train experienced/godd programmers? Please remember, you get what you paid for.

Locrian_Lyric
Locrian_Lyric

but not to exclude, but as a means to target the interview. If someone scores low in an area, interview questions are geared to explore (again, not exclude). this company cares if you can do the job, if you can get along with others and if you can be part of a team. I love it here.

Tony Hopkinson
Tony Hopkinson

So how much time, does hiring the wrong person quickly, save ? Last job I interviewed for we ended up with thirty cvs(resumes in the US). Of those we picked ten candidates for a phone interview. Two of those got to a face to face. Took one on, made the case for a second and took him on as well. That was anything from ten to fifteen minutes on the phone, followed by about an hour face to face. Of course the estimation that someone was worth hiring was down to me and a colleague. Putting your money where your mouth is might be a bit risky for some. I don't have a problem with it though. No "Oh he had a cert", no "oh he had a degree", no "Oh he got x in the test". Just the view of two blokes who are judged to know their arse from their elbow. As opposed to some HR clueless numpty, waving a peice of paper as an excuse for abysmal failure! Every candidate who got past HR has learnt to negotiate them as a hurdle. Every candidate who doesn't hasn't. Whether they are worth job is not in this equation. As far as the discipline of development goes, I can judge you ability in ten minutes. I'm a shed load more accurate than any test ever invented.

Deadly Ernest
Deadly Ernest

he now earns 30% more doing contract work for the same company. After they screw the project up with the few half trained in house people they kept, he fixes up the project and charges the earth. He even takes on whole projects from scratch, without managers pulling him away to BS meetings and other garbage, he can concentrate on an individual project and get it done right quick,

Don Ticulate
Don Ticulate

and now these very same companies are aghast that there are none left.

Locrian_Lyric
Locrian_Lyric

"This shouldn't take you too long, it's just a minor change".

Locrian_Lyric
Locrian_Lyric

When you manage to say the wrong thing to the wrong person at the right time. (again, that won't be me because I am neither vindictive nor violent)

Locrian_Lyric
Locrian_Lyric

"Not from me, of course, as I am mostly harmless."

Locrian_Lyric
Locrian_Lyric

I offered a prognostication. You are heading down a path where you will attract the attention of someone, other than myself, who will get annoyed enough by your tactics to take it into real life. If you choose to remain on the path you are on, you will attract the attention of such an individual within the next 3 to 6 months. It won't be me, so you can forget about your caterwauling and cries of victimhood from the big bad Nobody of note. I have factored in all the information and have concluded that these events will unfold as I have stated with 90% certainty. The fact that I've posted this reduces the likelyhood down to approximately 77% because you will take some of it seriously, if even for a moment, though you will be dismissive of it, throw up more bluster and claim victimhood once again. Whether it gets past your arrogance to the point of actually affecting your behavior is another matter entirely. I've posted this because despite the fact that I think you are a repulsive little toad, you don't deserve the fate that is coming your way. I offer this as a warning to you, though I know it will be ignored. Again, you have nothing to fear from me, as I have stated. I am a savant, I see patterns, and this is the pattern I see in your life. This is not a threat, the previous post was not a threat. I am merely analyzing data and drawing conclusions. What you do with the analysis is up to you. I hope you use it to affect change, if you don't, you only have yourself to blame for what someone other than I or anyone I know ends up doing.

Don Ticulate
Don Ticulate

Is that a THREAT? You do know there are laws against THREATS on line (don't you?? - http://www.usdoj.gov/criminal/cybercrime/index.html) One more outburst like that and I will contact the appropriate authorities and take some action. You have been warned. PS: Did you know RPU, a division of the City of Rochester, MN

Locrian_Lyric
Locrian_Lyric

for now.... I will reveal one thing. You are in for some rather disturbing news in the not so distant future. Not from me, of course, as I am mostly harmless. Lovely talent, that pattern recognition. Enjoy your misery when it comes.

Don Ticulate
Don Ticulate

you have indeed some. Otherwise you have none. I am bored of you now, you really need to get more than one train of thought. So after all that this will be my last post to you on the matter. If indeed you have something to show for your efforts please, please do so now or shut up completely.

Locrian_Lyric
Locrian_Lyric

You're attempting to get me to reveal something. It won't work. I don't show my cards until I use them. If you reveal your knowledge, you reveal your sources and your methods.

Don Ticulate
Don Ticulate

therefore you know nothing. If you did you would have put somthing down to try and scare.

Locrian_Lyric
Locrian_Lyric

... But I think I'll let it out in bits as you annoy me.

Locrian_Lyric
Locrian_Lyric

Please, let me know what I did to irritate you so... I may want to do it again. Please continue, I'm getting more and more of a profile of you with every post.

Don Ticulate
Don Ticulate

especially a Nobody_of_note that is easily noised up.

Locrian_Lyric
Locrian_Lyric

I'm not so narcissistic to break everything out into win/lose. I find you to be a mildly annoying, more than a bit childish, churlish little chimp. I am, however amused that I have taken such prominance in your life. I'm nobody of note, the fact that you are so obsessed with me is indicative of how empty your life is. Keep feeding me data, I'll have your life story before long.

Locrian_Lyric
Locrian_Lyric

You are obviously missing something from your life. Oh, BTW, my 'inferior genetics' have given me the savant skill of pattern recognition. I've got your number, and it isn't 'one', it's a big fat zero. Have a nice day, stalker.

Don Ticulate
Don Ticulate

My definition would be: A Wife A Good & Healthy Family Own my Home Own my Car Good Job with Money Good Friends Good Health Not much more I really need....

Locrian_Lyric
Locrian_Lyric

It's already being done. Someday they will have cures for many many genetic disorders. But you still won't have a life.

Don Ticulate
Don Ticulate

no, in fact do. Would be nice to see you go blue. There is no cure for bad genetics I'm afraid.

OldER Mycroft
OldER Mycroft

"Two can play THEY Typo Game as well you know!" Or perhaps you missed a comma, as in: "Two can play, they Typo Game as well you know!" In which case 'Typo Game' is some sort of activity that I am not yet familiar with! Loser!

Tony Hopkinson
Tony Hopkinson

logic, no. Not sure why you chose to re-animate this thread, but if was to put across the idea that academia teaches you to program in the real world, well not in my experience. The real world isn't about incomprehensible snippets, but comprehensible applications. Not saying people with degrees can't do it, just that generally they haven't. I learned many useful things in academia, then in the real world I learned when, how and where to apply them. Then as I gained experience, I learned why that was the best method at the time. The thing they miss every time in academia? Change is a given.

Tony Hopkinson
Tony Hopkinson

I don't believe there is any such thing as an obsolete programming technique, well given that it's an effective one. Obsolete languages, may be Basic with line numbers isn't a lot of use anymore. My own opinion of what is wrong is balance. The over reliance on using a specific language to teach programming techniques, coupled with a near total aversion to good coding practices, means very few are`fit for the industry straight out of academia. They know the the theory, if you couch the 'question' in the correct way they can give you answer. Very, very few can develop though...

chraigs
chraigs

using the same logic

chraigs
chraigs

I for one have to disagree wholeheartedly with the last posts here, I have a degree in electronics and software engineering, I got my degree at the age of 25 (i am 40 now) having written software for the zx spectrum and other 1980's computers for years before taking the plunge into a degree. Since qualifying my skills have increased immeasureably and i, like this programmer better than 90% of the programming set, can adapt to any language and retain info like a sponge and turn my hands to anything thrown at me. Having a degree does not make one an idiot neither does it make me pompous arrogant or an arsehole I could say managers with this viewset are stuck in a victorian concept of what makes a valid employee but i wont go there. The fact is qualifications do nothing to enhance anyones prospects within this industry, but for myself and i am sure many other programmers it was an invaluable life experience that took a lot of dedication and effort (mainly due to the lack of anything i hadn't already studied being on the curriculum.) In conclusion Programmers who have a degree are no less a good candidate than those who have no such qualification, this however is not due to people with degrees being arrogent etc but that the method of educating people in this area is poor, choosing to force its students to study obsolete languages and techniques rather than how to program

Tony Hopkinson
Tony Hopkinson

not developers, or any other discipline for that matter.

Locrian_Lyric
Locrian_Lyric

has only a High School diploma, never took any formal courses, and can code circles around 90% of the folks out there. He has a natural aptitude, can absorb information like a sponge and can learn new languages in a week.