<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,