Why do you hire programmers? Seriously, why? Think about it for a minute.
If your answer is “to write code”, then think about it some more. I don’t know what your reason is, but I’m pretty sure that’s not it. Writing code is merely a means to an end, not an end in itself.
Do you want to create internal systems that keep your company running? Or are you looking to produce a product for sale to customers? Maybe you’re doing something else entirely?
I’ve seen this question presented from the marketing side a few times, usually in terms of “features” vs. “benefits”1, but the same principle applies here. Just as you need to present a benefit to your customers when selling to them, you also need to consider the benefit that you want to obtain when you’re buying.
Probably the most common issues I see in this area are companies looking for a programmer who knows a specific language, or uses a specific database, or has experience with some other particular tool rather than focusing on the actual objective of the project: the functionality that they require.
This is not to say that you should never look for someone who can use specific tools. If you’re adding on to an existing Java application or if you have an existing team of Java developers that you mean to add to, then you’re probably going to want someone who can work with Java, and for good reason.
If you’re building something new, though, then you’re likely to be better served by finding someone with broad experience and the ability to create what you’re looking for, then asking him what the most appropriate tools would be. Since you’re hiring an expert, use his expertise. Any genuine expert should be able to clearly explain the advantages and disadvantages of different options to you in terms you can understand, no matter how technical or non-technical those terms may be.
Just don’t be surprised if the best option ends up not being the one that you would have chosen if you had started by picking the tool.
What have you hired programmers for in the past and what would you want to hire one for today?
1 Basically, the concept is that you don’t want to sell the feature “our product has X”, but instead you should sell the benefit that “our product allows you to do Y”.