Appropriate Interviewing For a Worldwide Search? 440
jellomizer writes 'I am a manager of a small Software Development department, looking to hire some more developers. By edict of the CEO, the search must be made globally, so we are dealing with different cultures and different ideas of truth and embellishment, etc. To try to counteract this, we give the potential employees tests where I watch what they do, to see if they actually know what they say they know. However, it seems a lot of applicants drop out when I mention that this test is mandatory. Is this a sign that we caught them in a lie, or are we weeding out good people where we shouldn't be? Would you be willing to take a test as part of an interview? If so, is there any type of heads up you would like to know beforehand to make the decision of whether to take the test easier?' What other difficulties have people seen while trying to hire from many different cultures?
A good test (Score:5, Insightful)
I'm starting to think that our interviews here should literally be: give them a day's work and see how they do.
Re:A good test (Score:4, Interesting)
hire them as a contractor for 30 days.
I've been hired into bigger projects many times that way.
Re: (Score:3, Informative)
Remember that the recruiting is Worldwide: how do you hire someone with no work authorization for 30 days ? Would you relocate to a foreign country for 30 days ? If I get similar offers the one where they say "you're hired, when can you start" and the one "we'll try you for thirty day, then if we don't like you return to your country" it's pretty obvious which one I will pick: a little bit more potential money is not worth a much bigger risk. How do you know the company is not hiring 3 candidates for 30 day
A better test (Score:2, Funny)
Make them do the "Which feminine hygiene product are you?" quiz on blogsbook.
Re: (Score:2)
Re:A good test (Score:5, Insightful)
it is a good point about tests.. there are 3 kinds of people in the world when it comes to puzzles, those who havn't a clue how to solve it, those who figure it out slowly by thinking it through, and those who read the answer while they were surfing the web when they should have been working.
Trouble is CEOs tend to hire the latter ones. The reality is that the former group can be as good, if not better workers that the other 2 groups, when they're not asked stupid arbitrary tests, and apply themselves to real world problems.
I went to an interview a few years ago, the boss gave the test, on a flipchart. It was a 'write code' type test, unfortunately he asked relatively open ended questions ("how would you implement a stream class") but the answer had to be the one he expected or wanted, and as I did it differently, I was obviously a useless candidate.
So the problem is how to make your tests applicable to real people, in the real world. I would suggest you give them a large problem to solve, one that has no 'right' or 'wrong' answer, and make sure they explain what they're doing and why. The why matters more than anything.
If you're still thinking about this, why not post your test to a slashdot comment. Then I guarantee you'll get a load more candidates who pass your test with flying colours, I'm sure none of them will be the kind who surf the web during their work hours....
Re:A good test (Score:4, Interesting)
so somebody who is actually learning outside of their everyday requirements, somebody who is raising their qualification and is able to apply this knowledge when it is needed... is the worst candidate for you ?
you would be more interested in somebody so narrowly focused and unwilling to learn new things unless forced, only because he doesn't "browse the internet" ?
i would say that an employee that has the desire to learn, has learned something outside their primary work requirements AND knows how to apply that in real world scenario is the most valuable one of those 3 generalised categories.
Re:A good test (Score:4, Insightful)
so somebody who is actually learning outside of their everyday requirements, somebody who is raising their qualification and is able to apply this knowledge when it is needed... is the worst candidate for you ?
I've hired one of them - he did brilliantly at interview. Unfortunately, he could recite the words from the web, but had difficulty applying it. Also, he continued to 'raise his qualifications' during work time. We had to let him go.
I've known others like him, people who always want to apply a new or different technology to work problems, always because the boring work of work is not fun enough or too difficult and the 'grass always seems greener'. They don't *do* anything but chase the latest technology craze, I suppose continually dropping things when they get difficult is a nice alternative to working, wish I could do it!
That's the trouble, when hiring you need someone who has done the stuff you want, not a theoretician. If he knew how to apply his knowledge, by doing some of it, he'd be significantly more desirable as a candidate. Web surfing is not a qualification for a job.
90 day probey (Score:3, Interesting)
Re: (Score:2, Informative)
Re: (Score:3, Informative)
My company does this too. It's 4 months and through a temp agency. I hated it but I needed the job. From the employers standpoint it's a great way to go. The headhunter does all the work finding people who "qualify". You interview those who rose to the top and bring them on. Since it's through an agency you don't have to incur all the expense of hiring someone and all the HR work. If they work out we bring them on.
The agency we use provides some benefits at a reasonable cost but it's certainly not li
give them a day's work (Score:4, Interesting)
I knew a guy once who, when he got a large fungible job in, would put out a want ad and "interview" people exactly as you describe. He'd literally get hundreds of hours of free labor this way, and the bastard knew he'd never be called on it.
It is for exactly this reason that I don't work for free during interviews. If my prospective boss isn't sharp enough to know that I know my stuff after a brief conversation and a look at my credentials, then I'll happily work for his competition.
Re:A good test (Score:5, Interesting)
I'm starting to think that our interviews here should literally be: give them a day's work and see how they do.
At my current job (Which required relocating out of state), I was basically given something like this. After the initial round of phone interviews, I signed an NDA, and was given a design specification for part of the product that I would be working on. I was told to ask whatever I needed clarification with, and to keep track of my hours so they could pay me when I was finished, regardless of whether I was hired or not. After I thought I was done, I submitted my project. They had a few revisions that they wanted, so they sent it back to me to see what I did with it, and presumably see how I handled needing to make changes.
Once they approved my work, I was flown on-site for the final interviews. During those, they asked about my project, why I had done things certain ways, and different ways that I had considered completing it. The project took me about 25 hours of work to complete. The day after the interview, I was offered the position.
In the end, the project that I had worked on was incorporated into the software that we released. From what I've heard, all new-hires go through this process, all with a different project to complete. It seems to work well for the company, we've got a very high retention rate.
Re:A good test (Score:5, Interesting)
He spent another hour debugging the problem then turned to his interviewer and said "I figured out what the problem was, but if you want to know, this will be my first day." They hired him on the spot and payed him eight hours for the interview.
The question (Score:3, Insightful)
The answer to this question is extremely useful in assessing the candidate's knowledge of and maturity in software development. For example:
Re: (Score:2)
This is a good point. I certainly don't have a problem in principle with taking tests (in fact I usually do fairly well on them if I have some knowledge of the subject - in high school I was on the math team, and I would routinely place well above other kids who were just as smart as I was but who just weren't as good at taking tests), but it does seem reminiscent of the typing pool: Your value as an employee is directly related to how many words/min you can type. If the position has even a whiff of bein
Good developers dont have time to take many tests (Score:2, Insightful)
Re: (Score:2)
Most people don't do testing until the 2nd or 3rd interview. Such candidates have a pretty good idea if this is a company they'd like to work for, and if not, they refuse the interview. They don't have to spend that much time taking tests, because presumably they only end up in a few final-round interviews before they find a job (unless the testing outs them as a fraudster).
Re:Good developers dont have time to take many tes (Score:5, Informative)
Re:Good developers dont have time to take many tes (Score:4, Funny)
Re:Good developers dont have time to take many tes (Score:4, Insightful)
But what if they want you to meet multiple people? This happens a lot when scheduling conflicts make it impossible to do one all-day interview.
Personally I go out of my way for a potential company if I like what I hear throughout the interview process. I can come back more than once. In fact I did two phone interviews with the same company and I'll be flying down there Monday to do an on-site interview. I get paid a very good living and I understand that my employers expect the best so I'm not too put out by it. A great job can turn into a lifetime position so one might as well put as much effort as needed.
Re:Good developers dont have time to take many tes (Score:4, Insightful)
You've got to be kidding me. If I have to come to a location multiple times for a job interview, I'm probably wasting my time. The only way I'd bother is if we start discussing salary right away, so I don't find out at the very end that this employer is a low-baller.
In my 11 years of experience and many, many job interviews, I've never had to come back to a place for a second interview. If the employer can't tell if I'm a good fit in one visit, they're doing something very wrong.
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
Or maybe since you are not planning on being their slave you go work for someone else?
You want me to work during the interview? You can pay me.
Re: (Score:3, Insightful)
In the real world though, most people have encountered people that sounded great on paper and who had great recommendations, but were lousy in practice. People will lie and embellish, and prior bosses will lie because often company policy is to never geed bad references. This
Re: (Score:2)
Exactly. Anyone who "refuses" to take a test for something as important as a career change is probably going to "refuse" a lot of other stuff once he actually gets in the door. Someone who is "too good for tests" is generally trouble in the making.
Re: (Score:2)
I would have 0 problem taking a test, but too many times I have seen interview "tests" that are nothing more than a quest for free labor.
Unless a serious offer is being made I am not taking a test.
Re: (Score:2)
You mean like a free consulting day for the company? That's a half empty glass. Maybe you should look at it as another company you can put on your resume. :)
Re:Good developers dont have time to take many tes (Score:4, Insightful)
I have been put in such situations and I just politely end the interview process.
I don't work for free, and anyone that would expect me too is not going to be an employer I want to do business with.
If a serious offer has been made and you want me to write on a whiteboard, great. If you want me to email you a finished project that you get to keep, you are going to have to pay.
Re: (Score:2, Insightful)
I do a software test for my candidates.
I hand them a small (40 line) program that is broken. Since most of my work involves code maintenance it's real world enough.
I tell them up front that the object is not to fix the code per-se, but rather to walk me through them debugging it. I've hired guys who couldn't solve the problem because they showed enough promise that I wasn't worried that I could train them, and it was obvious that they could think well.
We have a total of 4 hands on tests. Three on hardwar
Re: (Score:2)
Re: (Score:2)
I imagine sending out the same requirements sheet to 100 interview candidates lets you get positive work out of them if even only 1 does what you needed.
Re:Good developers dont have time to take many tes (Score:4, Insightful)
Re: (Score:3, Insightful)
Even though aptitude tests are pretty annoying, I really see them becoming more important since it's getting harder and harder to judge a person by their resume.
Re:Good developers dont have time to take many tes (Score:4, Insightful)
One thing employers should do more often is talk about salary up-front, so prospective employees don't waste a lot of time with testing and interviewing just to get an insulting low-ball offer. This has happened to me several times, and it's annoying. This doesn't mean testing is bad; I had some simple tests in the interview for my current position, and they gave me a very generous offer unlike other firms in the area.
I've found too many companies are tight-lipped when it comes to salary; they want to waste a LOT of your time in interviewing and such (and their own employees' time too), but then when the hiring manager says "he's great! hire him!", the HR person wants to give a lowball offer, and refuses to bring it up to anything reasonable even when you have a much better offer in-hand. If these companies would just state up front what their salary range is, we wouldn't waste all this time and effort.
Meanwhile, these tests do NOT need to be difficult or long. I had to help phone-interview some contractors at one job, and I came up with some very simple questions to ask them. One was, "In C++, can you tell me what a 'class' is?". Several contractors who stated "expert-level C++ knowledge" on their resumes couldn't answer that basic question. So you don't need to give them a 2-hour test; just some simple questions, maybe some short code samples with errors in them, etc. to see if they're completely lying about their credentials or not. So many people lie on their resumes (and this is definitely cultural; I saw this mainly in people from India), it's really important that you screen out the liars from the people who can actually do the job.
Re:Good developers dont have time to take many tes (Score:4, Informative)
Totally, if you are offering less than current_income + 10%, why should the interviewee waste his time?
Re:Good developers dont have time to take many tes (Score:4, Interesting)
One C++ shop I worked in we used to have a short sample C++ program (~~ 2 pages long) that was deliberately written to contain a large number of problems, many obvious and some quite subtle. It was an "Animals" style example program so manifestly not production code. We asked candidates to examine the program and find as many of these problems as they could then suggest better ways of achieving the same thing.
We weren't terribly interested in how many problems they actually found but were vitally interested in how they approached the analysis and how deeply they understood object orientated design and the C++ version of that paradigm.
It was great fun to write and we eliminated quite a few posers with this tool.
Re:Good developers dont have time to take many tes (Score:5, Insightful)
Not having an answer proves they don't know how to use Google. It took me 5 seconds to find a good overview of what a c++ class is. If you were talking to me, I'd tell you straight up; I'm not good at regurgitating formal definitions, but I would tell you where to find the same article I am looking at, then riff on various real world projects and problems.
If you can't tell me, in very general terms, what a C++ class is, then you're not qualified to claim you're an expert on C++. It's that simple.
Yes, I do a lot of Googling around when programming to learn more, to find other answers to problems, etc. I also don't have the C++ operator precedence memorized, and refer to a table for that. But some things you need to know or else you simply cannot claim that you're "proficient" in the language. When the job req says "needs to be proficient in C++", then certain basic things like that you need to know.
I'm sure I could Google around, read a book, or whatever and put together something in Python pretty quickly even though I've never programmed in it before. But I wouldn't tell an employer that I'm proficient in it.
Really, who do you want to hire? someone who can tell you what a class is, or someone who can tell you about problems they have solved.
Are you trying to claim that it's OK to lie on a resume and claim knowledge of programming languages you've never worked with?
Don't forget, this particular job was a contracting job. Long-term employment was not to be assumed here; the company wanted someone who could sit down and start contributing right away.
If you are in a smaller organization, it is very likely that there will be periods where other skills are needed - such as interacting with customers (pre-sales/post-sales), design, documentation, etc. etc. So be careful that your are not screening for one-trick pony (coders) if there is any possibility that you will need someone with other skills as well.
It seems to me that if the job entails those responsibilities, that should all be stated up front instead of assumed. I wouldn't take a job that required a lot of customer contact; my specialty is software engineering, not schmoozing clients. Time wasted with customers is time that could have been spent productively. Find a different employee to do the customer-contact stuff; this is why humans invented the concept of "specialization of labor".
Re:Good developers dont have time to take many tes (Score:4, Insightful)
Copying and pasting code amounts to 90% of even the best programmers' jobs. Other than some aspects of GUI design and input validation (which even then just means "tweak the conditionals of what you have", not "write an input handler from scratch"), if you sit down at a blank editor on anything but a toy project, you either work in academia or need a much tighter deadline.
And there, I have my biggest objection to "testing" applicant, particularly in a vacuum. In the real world, I program with access to huge libraries of functions and at least half the time, a web browser open to look random things up as I need them. Yeah, I could rewrite Windows from scratch if you give me 500 man-years to do it, but do you want to see if I can really do the job, or do you want to see if I happen to know the prototype for some particularly obscure network calls off the top of my head?
People pay me to solve problems efficiently, not because I've memorized the latest edition of K&R.
(and for the record - Yeah, I pretty much do have the prototypes for the entire standard ANSI C library memorized, but would prove just as valuable if you wanted me to program in any language, including one I've never used before)
Re: (Score:2)
This is about IT and not about programming, but the best question I was ever asked in an interview was the classic POSIX locking/deleted file/du vs. df question (each reports different amounts of space used, why?) because it gives the competent interviewer a chance to instantly evaluate your level of knowledge. Some people say "oh yeah, that one" (which wasn't me at the time, heh) but the responses tell you how familiar people are with basic commands they should know a lot about, and what their problem solv
It's mandatory here. (Score:5, Interesting)
I know there are definitely people who refuse to take a test out of principle. I'm not really sure what principle this is; maybe it's that they do poorly on testing in general. But we have been burned too many times by people who know how to talk the talk but turn out to have very little real skill. Sometimes too, there are multiple similarly skilled candidates to choose from. Giving them a coding test; especially an open-ended one can give you some insight into the sort of developer they are. Some people will be a better fit for the team just out of the approaches they tend to take toward problem solving.
Also, tests must be taken in-person. We do not allow phone or otherwise remote test taking. There are a lot of really unscrupulous agencies and individuals out there. Some of them have you interview with a different person than who they claim to be, including the person who will take the tests if any. The guy completely aces your questions and really knocks your sock off with his knowledge. Then he shows up, and his voice sounds different. You put him in front of a keyboard, and he asks you which key is the "Any" key.
The thing is, it's no offense meant to the interviewee. Indeed, just as it protects our interests to be certain that we hire a qualified developer, it's in your interests too (if you are a qualified developer) - the fewer and more quickly we sort through the deadbeats, the faster we get a job to a person who deserves it. It's not that you'll necessarily lie to us, it's that there are plenty of people out there who will, and until we really get to know you, the only way to tell the difference is to require you to answer questions that only a qualified individual is able to.
Re: (Score:2)
do you want to hire someone who 'qualifies' or someone who is an asset to the team?
Airfare (Score:2)
Also, tests must be taken in-person.
The article is about a worldwide search. Who covers the airfare?
Re:It's mandatory here. (Score:4, Funny)
This might be off-topic, but you got me curious: What's the answer?
I don't take test as a matter of priniciple (Score:3, Interesting)
Sorry, but when I did I saw them go screwy so many times. almost always of you didn't do it the predetermined way you were wrong, or if you answered with an answer someone didn't know, you were wrong..
Plus after 15 years I find it a tad insulting.
Re: (Score:3, Interesting)
You find it insulting that a total stranger doesn't take your word for how good you are? You must get insulted very often.
I mean, what's there to be insulted about? They asked you to do a beginner's test? Well, if it's clearly below your level, then that's a good thing for you -- now you know that you're not the one they are looking for.
Now, if I came strongly recommended by somebody, and they give me a test, maybe the guy who recommended me should be insulted. Me? Never.
Re: (Score:2)
It's no different then hiring an electrician and then asking him take a test on Ohm's law, it's insulting and not professional.
I ahve references, I have letters of recommendations, I can talk about a subject intelligently.
Tests are out.
Re: (Score:2, Insightful)
Re:I don't take test as a matter of priniciple (Score:4, Insightful)
References are mostly useless unless you also know the reference person. Anyone can find some lackey to put in a good word for them. And lots of people can bullshit about a subject and sound knowledgeable while not being really qualified to work in it.
Re: (Score:2)
except if the electrician suspiciously refuses to talk about anything specific regarding the planned installation, which makes you question whether he really is electrician, whether his references, letters & sertificates are just fake, and whether the intelligent talk is just scripted.
now, some extensive testing for a job isn't sensible, i believe. that belongs to certification process. on the other hand, few simple tasks or questions with an absolute maximal time spent being some 30 minutes - that migh
Re: (Score:2, Insightful)
Re: (Score:2)
I would think taking such a test would also be a good test of your potential new employer. If they are rigid and unreceptive to new ideas as in your examples, you probably don't want to work there anyway. If they appreciate that you solved the problem even when it wasn't necessarily the way they would do it, that says (to me) that they're probably pretty easy to get along with.
Re: (Score:2)
Re: (Score:2)
I know devs with more than 15 years experience who couldn't write a class to save their life.
That's to be expected. Not all programming languages have the concept of a "class".
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
That's a bad test, and if the interviewer is your possible boss, then it shows that maybe this isn't the company you want to work for if he's so out-of-touch.
The good tests I've seen (and made up myself when I had to do some interviewing) are short and simple, and serve mainly to see if someone is lying about their experience. My own example: for a job requiring C++, explain briefly what a "class" is. I've had people with "expert-level knowledge of C++" not be able to answer that one. Or, show some small
Re: (Score:2)
More insulting than seeing the job go to a younger, less experienced, less capable candidate?
In five years or ten will you even make it to the interview?
Re: (Score:2)
You'd be sHoCkEd at how many people who supposedly have made a living writing C code cannot write a simple program from scratch in a couple of hours. These are people who I would have hired if I only looked at their resume, talking to references, and interview. Then they sit down AND CAN'T WRITE A SIMPLE PROGRAM FROM SCRATCH?
The f
Re:I don't take test as a matter of priniciple (Score:4, Insightful)
If you can't read a resume why did I write it?
Because people embellish resumes and creatively bullshit through interviews who have no experience anywhere near the task at hand that they are supposed to do. An open ended test weeds out a lot of that. Even those that have been doing it for years may not be versed in how the rest of your group is working and could not have the kinds of experience you really need.
Re: (Score:2)
Because there's a LOT of liars out there, and it's expensive to fire someone after finding out that they completely lied about their experience and ability on their resume.
I've interviews contractors for a position that required C++ knowledge (not expert level, but intermediate), and people who claimed "expert level knowledge of C++" couldn't tell me what a "class" was.
There's a lot of people that can bullshit their way through an interview and sound like they know what they're talking about, but they reall
Re: (Score:2, Funny)
Re: (Score:2)
I mean, what syntax would you use to join queries like that!
preposterous~
Reminds of a story (Score:5, Funny)
Which one did he hire?
The one with the biggest tits, of course!
Global search? (Score:2, Interesting)
Companies claim that they can't find good help domestically, but what they're really saying is that they don't want to pay for home-grown talent.
Sorry for the rant.
Re: (Score:2, Flamebait)
That's better...
Re: (Score:2)
To mollog's point, I agree with him, and I actually work globally (freelance translator for various agencies).
My experience has been that the less accessible an agency is, or another freelancer I've subcontracted, for that matter, the shoddier the work. My best agencies are ones where I can actually go into their office if I need to and speak face-to-face with someone.
In other words, local. It's not that hard to find local talent, really. Unfortunately, many companies still use the non-lo
Re: (Score:2)
That's better...
Umm... Unless your chaps are so tight that your ass actually becomes part of them, no, it's not better.
Re: (Score:2)
but what they're really saying is that they don't want to pay for home-grown talent.
Usually it's not the home grown talent but all the other crap/paperwork/regulations that go with it.
Much easier to "hire" someone in India, wire them the money every week, and not have to worry about little details like the Labor Code.
You are a what? (Score:5, Funny)
Good luck with eating the department.
Re: (Score:2)
Actually, if he's a manger, isn't he rather likely to be eaten out of by livestock?
Or perhaps have a ceramic baby Jesus put in him at Christmas-time.
Either option doesn't sound enjoyable to me.
Language (Score:2)
No, I wouldn't be willing (Score:5, Insightful)
No, I wouldn't be willing to take a test, and I actually flat walked out on an interview in 2003 when I showed up and was told - by surprised - that I was going to be taking an exam. I was also then informed that the open position was for a junior position. When I expressed surprise at this, the HR flack's response was "Oh, didn't I mention that in my email?" She hadn't. Either of those would be sufficient for me to end the interview process, which I did.
Why would I refuse to take a test? Simple: if you're giving me a test, the usual reason is that I'm being interviewed by someone who does not possess the ability to discern whether I know what I'm doing/talking about or not. If that person is the hiring manager, then I certainly don't want to work there. Working for people who cannot identify competence or incompetence is not pleasant. If that person is not the hiring manager, I still don't want to work there: it shows they would waste my time by having me interview with such a person rather than with the hiring manager or any other person who can tell if I'm competent or not.
Re:No, I wouldn't be willing (Score:4, Funny)
Was it at a systems company? I worked at one where the HR flak would ask stupid technical questions if s?he couldn't follow the conversation. Something to do with adding value or some such nonsense. Her favourite was "what is the difference between a union and a structure?". I was always hoping somebody would give a dissertation on the effects of organized labour vs bureaucratic incompetence on innovative organizations.
Re:No, I wouldn't be willing (Score:4, Insightful)
Speaking as someone who interviewed 30+ people over the last year: I can ask you a whole bunch of questions and listen to your answers, or I can sit you in a room and have you write down the answers and spend a 1/4 of the time going over those answers to see if they are right. Given that, in my estimation, 3/4s of the people I've interviewed were almost entirely incompetent at the technical skills claimed on their resume, I've been increasingly tempted to take the later route to save myself the time.
Given the number of people claiming to be ubergurus who know jack shit, some sort of test, either in person in an interview session or with some kind of test is a requirement. The way to identify competence is to ask questions taht require it to be displayed. This can be done verbally in an interview or with pen and paper.
Personally, I prefer interviews that include tests, because it means that the company is more interested in knowledge and skill than ability to bullshit in an interview. I've met plenty of people in interviews who could talk a mile a minute about any buzzword you could name but got the deer in the headlights look if you asked them to solve the simplest problem with code.
Stay put on factual tests and questions (Score:5, Informative)
In our company, we work with offshore programmers.
Our selection process includes a mandatory test, during which we assess the candidate on several points, mostly: IT Skills, ability to understand requirements, motivation. In order to avoid cultural issues, we tend to focus on facts and we try to avoid questions which may lead to a culturally biased answer. For instance, we would ask: "please explain me how you will implement such feature" instead of "did you understand what I mean".
The test is a simple project, and the candidate can work on it at his/her own pace. They are followed by a project manager as in a real work environment. Its duration is normally one week as candidates usually have a day job. We renumerate the candidates for the test they take with us.
The recruitment process has been found to be effective in most cases, allowing to effectively select quality programmers. We found that there are enough programmers ready to go through our selection process for us not to worry about the one refusing to take a test.
Job interview, the Steve Jobs way... (Score:2)
Yay for tests! (Score:4, Insightful)
I've worked several places that had some sort of practical skills test for programmers.
I consider them a strong success.
There's a surprising number of people that can talk a really good game, but fall apart when asked the most basic actual questions. And, conversely, people who aren't extroverts or for whatever reason aren't stars in the verbal part of the interview, but clearly know their stuff when given a written test. It's a really good way to fairly judge technical skills across candidates, and weed out the fakers before you have to fire them later.
And as an employee, I like working with smart, competent people. I know how much, from experience, a bad hire wastes my time and ruins morale, so I'm happy to work for places that put out effort one way or another to not enter into this trap.
Anyone who'd refuse on principal, I'd worry is either a) faking it, or b) too arrogant to work well with others. A good candidate is happy to prove that they're a good candidate, and won't have to work with idiots.
A test isn't the _only_ way to do this. Any sort of nice, concrete technical grilling will do. But for a programmer, it _must_ involve actually writing code of a non-trivial nature. You can't believe resumes - even if people aren't lying, a Senior Programmer at one shop may only be barely competent at another, and not even realize that the bar is set differently.
Of course, the quality of a test can vary just like the quality of an interview question, but the goal is good for the company _and_ the employees, and in my experience it works better than most techniques.
Now, if your shop isn't terribly compelling based on product, and you're desperate to not turn people away... well, you probably should be looking for places that feel like they need a test to screen out unqualified candidates, so you can stop hating your job, and not worry about fixing this particular problem. :)
Re: (Score:2)
And some people are just very good at taking tests, and fall apart when you ask them to actually write any code.
Do you have any actual evidence that tests improve your selection of candidates, or are you just blindly believing in tests?
You have to lie to get the job interview (Score:2, Insightful)
Re: (Score:2)
I saw a job posting recently that asked for 18 years of web development experience. I guess Al Gore would be the only qualified candidate.
Personally, I won't lie on a resume or in an interview though. I don't want to hire weasels, and I don't want to work for them either. If they can't formulate reasonable job requirements, how are they going to be able to give me reasonable work requirements after I'm hired? Granted, sometimes sacrifices have to be made for the sake of having a job, but working for idi
A lot of people do lie about their qualifications. (Score:3, Interesting)
Knowing this, having interviewed a lot of people and having known a lot of interviewees, I wouldn't be insulted to take a test. However, its also true that a lot of the gimmicky kinds of questions that are asked on tests don't show very much about a candidate's depth. Certainly a test shouldn't be a primary criteria.
If they don't take the test, forget them (Score:4, Interesting)
If someone doesn't interview (or worse, complete an interview) because of a test I don't care how smart they are. They're too much of a prima donna. I've been in situations where an interview had tests that were way beneath my skill level, and in those cases I've either known immediately that the job I was interviewing for wasn't for me, asked the interviewer if there were more high level jobs available, or helped them fix their test. (In one case the test had questions that helped answer previous questions, so I helped them fix it.) In all cases I impressed the interviewer enough to get the job.
Test the right things, consider legal issues (Score:3, Interesting)
Testing isn't necessarily a bad idea, but it can create problems as well as solve them. In most software development environments, any testing should usually be used to weed out unsuitable candidates rather than to produce a single number that will be used as the primary hiring guide. Other things like interpersonal dynamics can also be important, for example. Multiple-choice tests are probably the least useful, because they test specific bits of knowledge rather than broader concepts; that may be useful in a classroom where you're testing the student's knowledge of a specific curriculum, but most real-world software development positions (other than perhaps the very most entry-level jobs) are more about design and problem solving and not so much about things like the details of a specific computer language. Essay tests of whatever sort would usually be the most useful, but also the hardest to design and grade.
Even worse, if you aren't careful, in many places and depending on whether you are a public or a private entity, you can potentially open yourself up to things like discrimination lawsuits if you don't end up hiring whatever person received the highest score on the test even if they don't fit some of your other criteria very well.
I would certainly not want to give a test that wasn't in person - there are far too many ways to get scammed: For example I've had someone ask if I could "help them out" with an online employment test - not just asking me for one or two bits of information, but essentially asking me to take the whole test for them! If you are doing a "worldwide" search, that creates problems for a small software group - the cost of flying a number of candidates to your location can be astronomical.
FWIW.
All my interviews included tests... (Score:4, Insightful)
I'm now retired, but all the way back to my first tech job interview in the '60s, the interviews have included tests of my ability to perform as needed.
If one cannot test an applicant one is seriously handicapped in making valid hiring decisions.
--
Tomas
University Place, WA
Choose your failure mode (Score:3, Insightful)
You will lose some good people who do not want to take the test. But without the test, you might hire an incompetent employee. Which is worse?
Personally I'd take the former failure mode. In that case your job search just takes longer. I'd rather that, than hire a bad employee.
Yes! TEST! (Score:5, Insightful)
If more employers were able to test their employees adequately during screening, there would be a lot fewer bullshitters out there trying to claim they can do what they can't. Burn in hell you cert-chasers who don't know what you are doing!
Every employer who gave me such a test, I always got an offer -- usually a good offer. Some of us are actually good at working through IT related problems and solving them. Some of use are not and just want to coast through on bullshit.
There are very few people who feel that they are "above the test" and the eager ones actually say "bring it on!" Those are the ones you want.
As for setting up a "practical" part of a test? Absolutely! If you have the skills to build a nice one, do it.
Nothing gets under my skin more than HR people screening resumes of really good people because the right set of words didn't appear on a page. Every successful hire I have ever had was when another IT person was involved in the screening and interviewing.
Tests are a waste of my time and yours. (Score:2, Interesting)
A test is only as good as it was designed. The question is, how do you know if you're measuring what you think you're measuring?
One time when I was applying for a job I was told I was going to be tested on writing fast SQL code, so I should be sure to be up on it. I heard from one person at the company that this was something they deeply valued. I bought a book on optimizing SQL and started reading it. After a few days of reading I decided fuck it, why should I be ALREADY be spending my own time doing wh
Dropouts (Score:3, Insightful)
However, it seems a lot of applicants drop out when I mention that this test is mandatory. Is this a sign that we caught them in a lie, or are we weeding out good people where we shouldn't be?
I won't venture a guess as to whether you've caught them in a lie but unless your test is seriously overbearing, you're not weeding out anybody you shouldn't be. Competent developers serious about finding a job won't balk at an interview merely because you ask for a demonstration.
I will say this though: be honest, be open and be brief. Tell them that the point of the test is to eliminate folks who talk the talk without walking the walk. Encourage them to take a copy of the test with them so they can use it to improve on any issues they weren't prepared for. And don't ask 100 boring questions. Something as simple as, "write a function in C to reverse the characters in a string," can be surprisingly revealing.
how much change will you allow? (Score:2)
'I am a manger of a small Software Development department, looking to hire some more developers. By edict of the CEO, the search must be made globally, so we are dealing with different cultures and different ideas of truth and embellishment, etc. To try to counteract this, we give the potential employees tests where I watch what they do, to see if they actually know what they say they know.
So you are already changing tests to account for different backgrounds, yadda, yadda, yadda. Exactly how much of the company is also going to change just to accommodate someone? I assume you are making the ability to speak and write in English mandatory? Are you going to make any concessions considering you are going international with your search? Sounds like management just wants an excuse to pay less for the same work, not to say it doesn't happen for other reasons but work done by foreigners isn't alway
I have rejected test interviews (Score:2, Interesting)
I'm not very good with people
Test Yes, Code Test No (Score:3, Insightful)
Stay away from pure code tests. Asking a person how they would solve a given problem or a puzzle is a great idea. But have them explain to you in their own words how they would solve it and don't focus on a particular programming language. The reasons are:
A) Programming languages can be learned. You don't want to rule out people who are great problem solvers just because they don't know your favorite language yet. And don't let them pick their favorite language because you may not know it well enough to judge their effort.
B) You want them to demonstrate good communication skills. In the real world good programmers have to deal with people (Customers, Mathematicians, Human Factors Engineers, Electrical Engineers, Safety Engineers, etc...) who aren't coders.
Because you aren't as smart as you think (Score:5, Interesting)
Many moons ago when I was doing coding jobs I had a series of interviews that required me to code stuff to demonstrate what I knew. I was looking to move away from my current job into new areas and didn't know how they worked but they all seemed to ask the same thing
1) Code something
2) Take a coding test
What I learnt very quickly was that lots of people are really looking to hire people not quite as smart as they are. I knew this because I had three interviews where the following happened
Interview 1:
Set an "impossible" task to code (in C) an address book and calendar solution with a GUI (this is the mid-90s) in 6 hours. No internet connection and no reference books.
3 hours later I set off to find the interviewer in the pub.
Interview 2:
Set a series of questions around "write the most effective code to do X".
There were 10 questions and I answered them in 10 different programming languages (Ada, C, Prolog, C++, Eiffel, 68k assembler, LISP, SQL, COBOL, Fortran) and the chap interviewing me didn't have a clue if I was right or wrong.
Interview 3:
They had a major bug in a current release, my job was to find the bug and explain why it happened. I knew free work when I saw it. It was a big C programme and it took me 4 hours to find the bug (pointer referencing problem). I wandered into the office of the person setting the "test" and said...
"How much to tell you the answer"
I didn't go for any of these. What I went for, and what I have done since, is go for the company that set me an abstract test that asked me to design a system which had a number of constraints. They didn't want code, just to see the conceptual model that I would create. When I joined I asked why they did it this way and the answer was enlightening....
"Because we want to hire smarter people than we are. If you talk code then its just about optimising, but if you talk about the abstract then its about thinking. We want people who give us answers we think are wrong and then they explain why we are wrong."
The key point was to give people a limited time (15-30 minutes) to understand the problem and propose the solution. You want people who are agile and quick, not people who can sit on their arses for 6 hours doing a troll job.
If you want to hire people dumber than you, set complex long tests that "only you" know the answers to. If you want to hire smart thinking people set very short tests that challenge their abstract thinking.
Bingo. (Score:3, Funny)
Hell if I know how to reverse a string in place. I'll freeze if you get me to even try. I'm 1) left handed 2) a poor handwriter and 3) sometimes easy to frazzle. Get me in front of a whiteboard and ask me a stupid question like that and I'll freeze.
It is a stupid question anyway. What does solving it really mean? That you are good at writing bit-twiddling code? Screw that. Ask me to solve a problem. Ask me to sketch out a high-level view of the solution. Maybe a couple traces of code tossed in.
But
Re: (Score:2)
We need to test the submitters.
I agree. I especially didn't like the part on the test about "how would you write code to solve for problem X", and then the form I had to sign that said "all answers on this test become property of Small Dev Shop Inc and you are waiving all copyright and patent claims for such code"...
Re: (Score:3, Funny)
00A0, in decimal