Uh oh. I'm seeing laundry list job descriptions. You know, the kind of job description that so carefully bounds the job with so much technical tool skill, that no one could fit the job.
If your job descriptions are laundry lists of tool skill, reconsider how you're describing the job. I like to think about the four dimensions of technical skill:
- Functional skills: what the person knows about their job (development, testing, project management, writing, etc.) Learned job skills.
- Product Domain expertise: how people understand the product and the product domain, and how they apply those skills to the product.
- Tools and Technology: how well the person knows the tools of the trade: compilers, testing tools, defect tracking tools, databases, and so on.
- Industry Knowledge: what the person knows about the kinds of people likely to buy your system, and the general expectations of the your users.
If you are hiring a developer, the kinds of functional skills you're looking for could include: design, debugging, pair work, how to use a configuration management system and defect tracking system. When you look for domain expertise, you're looking for how the candidate applies their functional skills to the development at hand. The tools and technology are the minimum set of tools you require. (And remember, technical people are excellent at learning new tools.) Decide if a candidate needs to know about the industry.
Avoid those laundry lists job descriptions. Organize your technical requirements into these four dimensions, and you'll have a way to think clearly about the job requirements.