Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Just had a discussion with coworkers about test tasks for programmers. Is it morally appropriate to ask programmers do some helpful work for the project in their test tasks or such company just uses the job applicants to do job for free? Is it ethical to do it?

share|improve this question

closed as off-topic by Ixrec, MichaelT, durron597, GlenH7, Snowman May 28 '15 at 18:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, MichaelT, durron597, GlenH7, Snowman
If this question can be reworded to fit the rules in the help center, please edit the question.

I'm confused - do you mean "is it OK for a company to ask job applicants to test the product as part of the interview process?" or "is it OK for company to ask the programmers it has employed to do test tasks?" When you say "programmers, I'm not sure if you mean programmers employed by the company or people interviewing to join. – bethlakshmi Mar 28 '11 at 15:18
I mean people who are interviewing to join. Sorry for being not clear. – Vladimir Ivanov Mar 28 '11 at 15:19
up vote 7 down vote accepted

It is not morally or ethically acceptable to deceive candidates into working for free, ever.

If you want to give a sample task related to the function of the company, have them solve a problem that the company solved in the past. I often use for interview questions generalized problems that I was tasked with earlier in my career.

share|improve this answer
I agree, but it's not about deceiving, but giving a real task to test the skills. – Vladimir Ivanov Mar 28 '11 at 15:24
If you want to give a "real task", have them solve a problem that the company faced and solved in the past. – whatsisname Mar 28 '11 at 15:25
@Vladimir Ivanov - if they are upfront about asking you to do a task that they are going to implement with no intention of hiring you, that's not deceptive. – JeffO Mar 28 '11 at 15:42
@Jeff O: is anyone really going to do that? – whatsisname Mar 28 '11 at 15:44
My first interview for an internship was with a government research lab. My interview consisted of me fixing resources around the lab (printers, network connections, installing hard drives and setting up new users within an NT domain). I basically did the work that would be required of the job to get hired FOR the job. Yes, it does happen. Did I care? Not really, I was trying to get the job (which I did ultimately get). – jmq Mar 30 '11 at 1:19

Do not ever expect job candidates to work for free and solve a current problem. That is unethical. Not only is it unethical, but you are testing their skills, I wouldn't want a solution to one of my issues to be dependant on the average skills I've seen in interviewees. The whole purpose of the skills test is to weed out the incompetent. Don't rely on them to produce a good product that you can use.

You should give them a problem that has been solved in the past in your company. This has the advantage of you know at least one working solution and you know some of the things that were tried and didn't work. It may also give you insight into whether the person has a better way of solving your problem than you did and you can test his solution against yours to see that.

share|improve this answer

I suppose it depends on your morals.

Many would say no because they believe you should not get work, not just for free, but at the expense of the candidate. Remember it costs them time and possibly money to make it to the interview.

However, there are others that feel it is not only useful, but in some cases necessary to evaluate the candidate in a real world setting. I have participated (on both sides) with interviews that had an hour of pair programming or other similar activity. During those times I did real work, but the purpose of which was to evaluate my performance, not the accomplishment of the work itself. Indeed, the work done probably needed to be redone later to account for style discrepancies and any other work that was skipped in order to focus on the evaluation.

share|improve this answer
+1 This is right way to view it.But it sure sucks to be the interviewee. – Aditya P Mar 28 '11 at 18:35
Actually I thought it was very useful because I got to see the people I would be working with in this setting as well. It can be somewhat stressful. – dietbuddha Mar 28 '11 at 19:50

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