development

An Inadvertent explanation of the problem

November 30, 2004 8:07:11.626

Greg Reinacker has a post up detailing some of the requirements he has for new employees. The post is actually a short explanation of nearly everything that's wrong with IT hiring (and by extension, development). Go ahead and look at his list - do you see a description of the problem domain anywhere ? Nope, just a set of Windows (and C++) specific technical jargon you have to hurdle to get past the bar. One thing I've learned over the years is that domain specific knowledge is far, far more valuable than technical trivia - if you hire a competent person, the technical stuff can be learned pretty quickly. Hiring managers unwittingly eliminate a lot of great potential hires by making lists like Greg's.

Comments

RE: An Inadvertent explanation of the problem

[Greg Reinacker] November 30, 2004 9:47:24.122

I don't think it's a problem in this case. With a couple of exceptions which we're specifically recruiting for, we can pretty easily train folks in the problem domain. But if a candidate doesn't have the depth of general knowledge we're looking for, it's much more expensive and time-consuming to train for that.

And also, I don't think my list contained _any_ technical trivia - and this is on purpose. I don't care if a candidate knows some particular technical detail about something...but I do indeed care if they get the general concepts around certain areas. Most of the list I posted should be pretty straightforward for someone who "gets it".

the list is trivia

[bryan] November 30, 2004 10:42:32.239

Okay, Greg just said that his list didn't contain any trivia but his first two items:

  1. You know the difference between _beginthreadex and CreateThread.
  2. You know all of the ways to share memory between Win32 processes. (hint - it's a short list.) (another hint - it's a really short list.)
these may not be trivial, but they are trivia.

[] November 30, 2004 12:07:12.976

A competent person is also able to communicate with business people and understand the domain. What is important is a combination of technical ability, communication skills and business understanding and compatability with the existing team. The third one is the most important in increasing or decreasing productivity. Somebody who fits into a team like they've always been a member is up and running very quickly, but it's just as possible to introduce a new team member who kills the team spirit and destroys productivity.

An Inadvertent explanation of the problem

[ Dennis Smith] November 30, 2004 12:55:03.559

Comment by Dennis Smith

I have to agree with the origina post. The items in that list are all superficial and in hiring I would not really care about most of them. What I (and you) need are people who understand systems at whatever level you are looking for. How to choose which is many designs (for whatever is being worked on) is the appropriate, what is the best way / best tools (even within C /C#), how to build a solid system, what about testing? XXunit? what about separation of parts (domain, UI, etc). These are the things that are important, and a top Language X programmer is going to be able to deal with something in Language Y (or environment Y) if he has that -- and may be he doesn't know the nit details of the latest Windows thingy, but that is trivial compared to the rest.

 Share Tweet This
-->