views:

321

answers:

9

Doing the interview round at present, and one place had a 'small test' for candidates. We were asked to write a requirements doc, specs, design doc, test plan, as well as code and build a small web app with database backend, document the tests, and be required to demo it at a future interview.

I did some estimates and figured a week if I did it properly, 3 days for a rush job. I had no intention of doing such, and spoke with the recruiter and pointed this out. She said that the other candidate for the role had said the same thing.

The company then asked for 'just a few hours worth - they don't have to have it all working' - but inevitably you're going to want to do it properly if you're up against others, and where does it end...

At that point I politely declined to continue, although would be happy to do further interviews and discuss the technical points of anything they wished. Naturally, this got me wondering - how often does this happen?? I've had many programming tests, code on whiteboard or laptop etc, but not a full project? Would they have wanted the project afterwards - sneaky but not impossible? Is it the norm to do something like this? Would you have?

+1  A: 

Hi UberRouse,

I completely agree with your choice. I don't see any benefit in continuing with spending such a great amount of time to a possible job. That week of effort could be much better put towards continuing to look for employment.

I know where I work this isn't a requirement. However I am interested to see what other people have to say about this.

Cheers, Mike

Mike
+1  A: 

That is completely unreasonable unless they pay you for the effort, and I wouldn't be reluctant in saying as much!

ennuikiller
+10  A: 

Unless the offering salary is some astronomical figure, this company is already sending out a very clear message: "We place no value on your time".

You were correct in declining to continue.

Congratulations for doing it politely.

Andrew Shepherd
Don't see how this is any different from the whole day of interviews common at places like MS, Google, and Oracle. At least you can do it in your own time rather than having to miss another day off work. Maybe they just want really, really keen candidates who want to work there, and there is nothing wrong with that.
sstewart
@sstewart It's different because they're demonstrating that they're willing to spend an equal amount of their time talking to you. In most cases they also fly you out. With a project, there's no guarantee they're going to spend more than a few minutes skimming the code even if it takes a 10s of hours to write. Indeed, since the cost is so low to a potential employer there's no indication that they have any serious interest in hiring you.
patros
A: 

Asking for all those requirements + a fully coded app is a little too much. They must not have any faith whatsoever in people who did face to face interviews. If I were you, I would have still coded something up but good that you declined to continue.

Omnipresent
+1  A: 

Hi,

This doesn't happen normally. If there is a project to do then it will be something for +-3 hours and they will point out what is important to them.

That company was obviously new at this.

Bob
+7  A: 

A place I used to work used a 4 hour code test with subsequent code review as the second interview.

We found that this was not a very good predictor of a person's performance, in addition to being a burden on applicants, and ended up dropping the practice. Instead, the second interview was refocused on the candidate's grasp of concepts relevant to the particular position. Additionally, we presented some code fragments with issues and asked the candidate to comment on them.

This turned out to be a much better predictor of an employee's ability.

I did take the code test at the time (it was during the last recession and there weren't that many openings in general) but probably would not do that kind of thing again, especially not if as involved as you outline.

Eric J.
+2  A: 

Some companies like Facebook and ITA Software post programming "puzzles" as part of the screening process, I've heard that some parts of Novell may have candidates write code ahead of time, and a friend of mine applied to work at a game company, and they gave him a sort of take home exam with some coding problems to solve in a week before the interview.

I've worked through some screening puzzles myself, but I've never been asked to code anything up before an interview. I'm not sure if I would decline to do it or not. I guess it depends on the position and employer and my level of interest. If it's just a run of the mill programming position, I'd probably move on to the next company before investing a lot of time in it. Who knows, maybe the project will be interesting.

Also, the requirement to write up all requirements and design documents... well, that's just too much and would take a potentially fun program to hack on into a mindnumbing typing task.

Suppressingfire
+9  A: 

I have heard of companies giving these kind of projects before as part of the interview process, but never had one myself. My understanding is that they don't expect you to finish it completely, and the nature of the project was probably designed in such a way that it would be impossible to completely do so in the time given. That should be a strong hint that they really only want to see that you can to make a sensible start and justify your design decisions, rather than to deliver a complete system.

The thing you should be thinking is "how can I use this opportunity to show off my skills". As developers, we don't have much of a chance to show off the goods in the recruitment process (graphics guys have their portfolio, salespeople can do their sales act). From the interviewer's POV, it must be hard to find ways that show off the exceptional candidates from the guys who just fill their resumes up with keywords. So we end up with puzzle/riddle questions, aptitude tests and whiteboard coding as HR people try and figure out a way to do that. So this is just another way, and a better one, as far as you are concerned. Instead of having to remember how to approach certain types of riddle questions, or memorize the big-Oh complexity of algorithms, you can go away and produce something that shows both your interest in the job, your reasoning ability, and your coding skill all at once.

The coding and deploying a small web app would probably not be so hard if you were given a choice as to the implementation language. Using RoR or Python/Django and some CSS wizardry you could put together something that works and looks nice in a weekend. Writing a thoughtful spec and design doc and considering whatever vague requirements they have given you might be harder. Are they a TDD shop? If so, maybe you should write the tests before you code. Most of all, follow a process that makes sense and that you can justify based on what you were told.

If I really liked the job I would do it for sure, and really go out of my way and try to wow them. If I wasn't sure about the job then I would probably do the same as you, and just politely decline and keep looking. In the end, ultimately it is for the best; If they are looking for someone who really wants to work there, and if you're just ambivalent about it or not sure, TBH you probably wouldn't have been happy there anyway.

Dale Halliwell
I'm just thinking aloud here but ... software guys can show their successful software ... (?)
stefanB
I'm a grad, so that's pretty limited for me - just my student and personal projects. Work on open source projects, that might be harder or easier to assess someone's contribution to a project, I don't know. Someone with a lot of experience wouldn't necessarily have it better though, you can't really break out the code you've been working on at your last employer for ethical reasons. Anyway, the interviewer is limited in the amount of time that they can devote to assessing your contribution to a codebase, which, for all they know, you might have pasted from codeproject anyway.
Dale Halliwell
+1  A: 

I think you all are missing what really happened. The company is trying to get their project done for free. Divide the work up among enough people and get each candidate to do that little bit in an interview... Pretty soon you have a full project completed (at least, that's what they were hoping).

I bet there was no job at all. They probably just lost their one tech guy and had an imminent deadline with no one to do the work.

Ether