Tell me more ×
Answers OnStartups is a question and answer site for entrepreneurs looking to start or run a new business. It's 100% free, no registration required.

There have been references here to programming tests that are used to hire programmers. Even Joel has written about such tests. While that makes a lot of sense for new or intermediate developers, is it appropriate when looking to hire an experienced developer? Is this expected by such developers or would this process chase them away?

share|improve this question

4 Answers

up vote 6 down vote accepted

The market for programmers is what you can consider a market for lemons:

In short, a lot of people run around claiming to be programmers, but the knack for producing code (much less good, working code) is relatively rare in the population.

Testing is a dual edged sword. But is probably necessary unless the person comes in the door with proof (social or otherwise) that they can contribute working code and designs. Unless the hiring party knows as much as a suitable programmer-candidate, you can never be quite sure that your questions are adequate to determine their ability level.

Having sat on both sides of the interview desk I can assure you that it is exceptionally easy to snow someone with your "abilities" in a conversation.

Here is the downside of any kind of testing. The best developers and most senior ones will often be exceptionally turned off by the requirement to perform a test or an online skill assessment. Many won't consider it "fun".

One strong recommendation. If you DO implement a formal test, use someone else's or buy a test or use an online testing service. Do NOT attempt to write your own test. Virtually every "self created in house" test I have ever seen has been a terrible indicator of abilities.

Some edits:

You absolutely need some kind of objective "vetting" process in place. Here are my recommendations.

If you have a network and you find a developer via recommendation from someone that you trust, then you should not need to test them, depending upon their pedigree of projects. (see next paragraph)

If you have a candidate in hand via a placed ad or other general response, then they are an unknown, so they may need to be tested. If the candidate has a body of relevant work that they can refer to, and they can refer to clients for whom they did the work, then you should weight that heavily, and if the work is highly relevant, you should not need to test them.

(As a senior developer, the greatest turn-off for me in interviewing has been the client or recruiting agency to whom I would provide a list of relevant projects, recommendations, and past clients, and they insist on a test anyway. )

Lastly, you need a probationary period as a failsafe. Maybe consider something called a "contract to hire" arrangement. You hire the person as a contractor and either convert them to a full time employee after the end of a probationary period, or you release them.

share|improve this answer
Thanks all for the answers so far. Interesting that no one mentioned checking with references and previous employers. At a senior level I'm not sure what a programming test would do - unless it is a dedicated programming job. My interest is in getting senior developers who can create solutions, not merely write code. I dislike contract-to-hire schemes even more than tests, and you can always fire a new hire early on if they can't acheive what they said they could, and especially if you find they misrepresented their skills and experience. Of course, we're trying to avoid this. – Patrick NY Nov 11 '11 at 22:00
I believe anyone you would actually want to hire should not be at all turned off by a reasonable test of their abilities. After all, your interviewing process determines how good all their prospective team mates are going to be, so they should be impressed by the thoroughness of your process. Also, IMHO, any employer would be CRAZY not to have programmers program in an interview unless they come with a rock solid recommendation from somebody who has worked with them for a non-trivial period of time. – Tall Jeff Nov 18 '11 at 0:22

In my opinion you should test each and every developer.

If you don't do, how do you know that he is an experienced developer? Do you judge based on the resume and his answers to somewhat unrelated questions?

The company I used to work for did not test some of the developers. They eventually ended up firing most of them four to five months into the job. That was when they realised, that at least parts of the resume was made up or their 'experience' was more likely a 'I watched the real developers do the things and fetched the coffee' type.

As for your concerns of annoying the prospective employee, I personally would not mind such a test, as long as it goes beyond the trivial or repeating buzzwords ("What technologies are you familiar with?" and the expected answer being something like "XML, C#, SOAP, REST, BDSM...").

In fact, I went to an interview for an internship at the development department of a very famous automobile manufacturer. The question that was most programming-related was "Which Design Patterns do you know? Please only state names, don't explain any." I turned down the offer after that interview.

So I think that developers will see those tests as fun - don't worry about it and do it.

share|improve this answer
Ditto. A truly experienced developer will love the chance to show off their knowledge with test questions. Only posers will be chased away or annoyed--which is exactly what you want! – Flimzy Nov 11 '11 at 14:00
1  
+1 for "I think that developers will see those tests as fun" – MikeNereson Nov 11 '11 at 18:39
1  
There is that "fun" in "showing off" that keeps popping up. Only a very young person will consider a test entertainment and showing off to be a priority. My own personal reaction to online tests administered as part of a bulleted HR procedural list is that I am being treated as a questionable, run of the mill commodity. Particularly if I provide a list of past projects and contact information for my past clients. Colleagues of mine in their 30s and up reason exactly the same way, and some will simply walk out if this is attempted. Yeah, they're afraid of being unmasked, right? Not really. – user2757 Nov 11 '11 at 19:01
@DonWallace: I don't think anyone is talking about "online tests" or "a bulleted HR procedure." Everybody hates those--even high school drop-outs. I think the OP is asking about programming tests. See here. – Flimzy Nov 11 '11 at 19:43

As a senior developer I get anxious if a prospective employer doesn't test me, unless they know me or have personal recommendations. I've seen what happens when people talk themselves into positions, and I wouldn't want to work in such an environment. Since I believe I'm competent I feel secure in these tests.

I would also recommend against third-party testing. Their tests tend to be inane. Back-and-forth with a competent interviewer, including light coding, leaves me with a good feeling.

share|improve this answer

I believe that It is essential to test developers first before hiring. This will help you prevent hiring a person who does not know the job, which will also save you time and money when hiring. The best way to test developers is to start from the most basic tasks when screening so that It can give you an idea if the applicants are capable to do the more advance work.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.