Devlico.Us
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @devlicious

Derik Whittaker

Thoughts on Software Development, .Net, OOP, Design Patterns and all things cool



On doing take home assignments before getting an interview

<Disclaimer>
Before I get into the meat of this, or before I start getting 'your an idiot' replay's I just want to state that I am NOT against asking potential employees to take tests.  I just think that there is an acceptable expected time frame that the test should take.
</Disclaimer>

I was chatting with a friend of mine today and he told me that he was thinking of taking an interview with a small .com shop in the Chicago land area.  But that they wanted him to do a 'small take home assignment' before hand.  I told him that sounded acceptable to me as it could be a decent way to judges someone's talent level.  He then forwarded me a copy of the requirements document' for the take home test.  After reading the doc, I quickly slapped an estimate of 4-6 hours of effort to finish the assignment.  When I told him this, he told me that they expect it to take him 10 hours (2 for planning, 8 for coding) or so to complete.  He also told me that they wanted this by Monday afternoon and AFTER they reviewed the code he would be scheduled for an interview.

The take home assignment was to build a complete (i.e. functional) web site from the ground up.  This included the db model, all the domain/business object, the UI, etc.  And from the spec, it was not a simple few tables with a few objects.  The site needed to include user creation, user login, data assignment to a user, data retrieval, etc.  Nothing overly complicated, but would still take time and effort.  And lets face it, if this is for a job, you are going to spend a little more time on it then normal.

When he told me that, I told him that I would pass on the interview.  I personally think that asking a developer to spend 10 hours of their free time in order to simply get an interview is a little extreme.

Like I said above, I have no issues with testing developers, but there needs to be a limit on how much free time you are required to give up.  Do I really need to spend 10 hours of my life to write a fully functional web site in order to get an interview?

There are much better ways of 'testing' ones skills then asking them to spend countless hours on a take home exam.  For example

  • Ask them standard .net questions.  This will weed out 50% of the people
  • Ask them to setup a simple db structure
  • Ask them to do a little object modeling
  • Ask them to refactor some 'smelly' code
  • etc.

In today's job market, quality developers are few and far between.  I personally feel that employees have as much, if not more control then the employer. 

Am I off base, am I being stupid?  I wanna know.

Till next time,



Comments

Luke Foust said:

You are definitely not off base. I agree that 10 hours is very excessive. I would only do the exercise if I REALLY wanted to work for this company.

One thing that always puts up a red light for me when looking for a job is when a company takes the attitude of "You need us more than we need you". This isn't too far from "10 hours of your time spend writing throw away code doesn't really matter to us"

# January 11, 2008 2:48 PM

Peter Ritchie said:

I don't think you're way off base here.  If there's only one candidate, or they're considering shipping a candidate from another company; this might be more acceptable.  But, as a hiring manager I don't want to spend too much time evaluating the result of this work.  If it's going to take 10 hours to complete, evaluating the work isn't going to be trivial.

I agree, I think there's much better ways of evaluating candidates, plus that's what the probationary period is for.  This smells like a management issue to me.  If they're making candidates spend that much time on a pre-interview eval then they likely won't have any qualms about making employees work long hours to cut down the "per-hour" expense.

# January 11, 2008 3:08 PM

Tom Opgenorth said:

I'd also agree that 10 hours is way to long. I'd walk away, or suggest that perhaps I should receive some sort of compensation for this effort.  After all, the time I spend on doing this "assignment" keeps me busy and prevents me from finding work elsewhere.

As well, how do I know that they aren't getting some free work from me?  What is to say they won't turn around and then use this unpaid effort in their own codebase?

# January 11, 2008 5:17 PM

Adron said:

That should take no more than 2-3 hours.

:p

# January 11, 2008 6:42 PM

anonymous said:

Problem is, they think it only takes you 2-3 hours.  Time is relative because everyone has different expectations, and different ways they approach code.  Sure, shitty developers may do it in 2-3 hours.  Even whiz kids can in 2-3 hours however do you want that type of expecation to your team?  That's what is the problem with business in general.  Sure, business wants it done, has to be.   But look at how many fucked up IT departments are out there because of this.

That's not a smart or realistic approach to IT or interviewing when you need to ensure that you're not just coding and running, but that  you are doing x other things to make sure the code is efficient.

They give no real direction on DB schema, how far to go with this.  And, so yea, if you want a hack job, sure 2-3 hours.  They did not tell you this up front, they  just say do it.  But then you find out oh, they expected only 2-3 hours if your time you find out.

I love it when management dictates to me 2-3 hours for even simple web forms.  Reality is, if you're a good coder and care about doing it right, 2-3 hours is a slap in the face and the most idiotic thing you can expect when the assignment really is a 10 hour job.  When I say 10 hour job, I am saying lets say they want you to create not only backend and front end, but a checkout sy stem that accepts concurrent users, sends back random confirmation numbers, *** like that.  That's way overboard.

Makes you wonder if they expect this, then how is their code base behind the scenes.  Do they take and expect only a 2-3 hour hack job?  Do you use layers effectively or a hacked layered approach?  Are these interviewees who have passed it in 2-3 hours who you have been told got hired on, really know what they are doing?  It just worries me, that this kind of approach is expected when most of IT these days are in "chaos" m ode because of these ridiculous expectations and no push back to management saying hey, that's a 6 hour job, because we're gonna f'ing unit test it, we're going to spend some time looking up proper design patterns for this small web form or what have you.

I think expectations can tell you a lot about the shop.

# January 12, 2008 2:18 PM

jason said:

I dont think your'e off base here. Only "problem" I see is if there are so many developers out there - ready to create a website from ground up (with underlying database etc.) - I'm afraid I'm gonne be out of work pretty soon. Come on, 2-3 hours?!?! I know I wouldn't hire a developer that quick - I'm thinking with horror on what that codebase would be like... :-)

# January 14, 2008 6:22 AM

Tomas Tintera said:

This approach lookes like the hiring company can not find out quickly who is a good developer. Maybe they do not have enough knowleable people doing hiring decisions. Then assigning complete task (build up whole website) can help them hire.

I would not be happy in such company. Rewars and etc. will be fuzzy in such company.

Or is the job very one-man show and then it can be a good job for some time for an experinenced developer.

Sure there sould be compensation.

# January 14, 2008 7:06 AM

TomW said:

You can gauge how good a developer with twenty *well chosen* questions, sounds to me like they want a website for free ;-D

Definitely overkill - not a good way to recruit, I'd run a mile.

# January 14, 2008 9:22 AM

Jason Short said:

That is WAY WAY overkill.  I have done things like that in past after we had narrowed the field down to the last 2-3 people.  But what I would do is tell them up front what is happening (You are 1 of 3 we might want).  

Then I will offer to bring them in on a weekend and PAY them for it.  Usually people have full time jobs, asking them to spend that kind of time out of work is just silly.  If they are out of work we can do it on a work day.

There are plenty of ways to screen out people before hitting this level.  A friend of mine had to spend about 10 hours on a similar assignment after a phone interview on Monday they wanted it Wednesday morning.  That is totally crazy for someone with a job and family!

Be fair to people, you wouldn't want someone doing that to you... Don't do it to them.

# January 31, 2008 4:56 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Derik Whittaker

Derik is a .Net Developer/Architect specializing in WinForms working out the northern suburbs of Chicago. He is also believer and advocate for Agile development including SCRUM, TDD, CI, etc.

When Derik is not writing code he can be found spending time with his wife and young son, climbing on his bouldering wall, watching sports (mostly baseball), and generally vegging out. Check out Devlicio.us!

Our Sponsors

Proudly Partnered With


This Blog

Syndication

News