Whether intentional or not, I have noticed a trend recently of some prominent computer industry folks try to spell out to programmers that non-technical skills are important when looking for work. Normally these tend to be along the lines of “improving communication skills” or “try not to look like you have Asperger’s”.
Then, from Joel Spolsky came the first piece of résumé advice I could believe in: “you may want to highlight the Banging Out Code parts of your experience”. Over the years I have heard numerous recruiters (both agencies and direct employers) say things like “People skills are important”, “some technical deficiencies can be overlooked for the right candidate”. Baloney! I have been on both sides of the fence (i.e. looking for work and looking for programmers) and I have never seen any proof of that. Despite the common-sense that suggests if you put an intelligent eager person into a position that they will succeed, the person with the right set of skills on paper will get the nod.
I guess this is a sign of risk-minimisation. If the person has the right skills on paper, then the only risk is whether or not they can apply themselves effectively in the environment a company offers. This is going to be a risk, no matter who you take on, so why not take the approach of choosing the candidate who ticks the most boxes?
The simple reason this approach is used may lie in the fact that there simply needs to be a fast and effective filter. Too many candidates apply for any and every IT job. For this reason a brutal skills filter needs to be used to narrow the search.
If you are looking for employment, take the time to look for the right job and not apply for every job. Do not lie to yourself, or a prospective employer and do your homework on determining how aligned an employer is with your own goals.
If you are looking to hire a new programmer, take the time to make sure you spell out the exact needs that you are looking for in a candidate. Make your requirements as clear as possible listing them in order of importance. If you list a skill as optional, that is what it is. Just because someone does not have that skill should not put them at a major disadvantage to someone who does.