There’s a wonderful post over on the JitBit founder’s blog which is apparently a 2nd generation attempt to answer this question. Follow
Job requirements: professional skills in driving normal- and heavy-freight cars, buses and trucks, trolley buses, trams, subways, tractors, shovel diggers, contemporary light and heavy tanks currently in use by NATO countries.
Skills in rally and extreme driving are obligatory!
Formula-1 driving experience is a plus.
This is just a simple miscommunication.
From HR’s point of view they need all of these rolls filled (more on that later) but what they don’t know and have no meaningful way of evaluating is what level of skill is necessary to perform the tasks they need to accomplish. No HR person worth their salt is going to put up a job posting asking for neophytes in photoshop even if the most that web developers are required to do at the company is crop images. Thus we end up with these massively bloated lists of absurd qualifications which no one will ever fulfill.
Those lists lead potential employees to avoid applying in the first place meaning that the applications that are coming in are almost universally exaggerating their qualifications or at least gambling that it’ll be worth the employer’s time to ferret out what they can actually do.
An overly broad list of job requirements thus perversely poisons the pool of applicants, encouraging the dishonest and those unconcerned with your time while driving away those who have the wisdom to know their own limits.
On the other side of the spectrum is the narrow but overly ambitious list of qualifications. These lists demand years of experience for entry level positions and, while narrowly tailored, posture at a prestige enjoyed by almost no one in the field. Google can get away with such postings because many a Sr. Developer would happily take a pay-cut for the opportunity to work there. Everyone else is kidding themselves.
Again, these overly ambitious demands poison the applicant pool. Rather than attracting dishonest or blase developers, these attract desperate ones. A coder who will take an entry level position with 3-5 years experience in a language is something that should give you pause. If you run a company with pay and benefits and a company culture that is the envy of the development community then, yes, it is plausible that your new-hires would be willing to sign on at a junior level despite their significant experience. If not, however, you would do well to wonder why they’re not going elsewhere and bandying that experience into more money and better benefits.
So how to solve this problem? How do you avoid writing up requirements which poison the applicant pool against you? The first step, and perhaps the most important, is to trust the expertise you already have under your roof. Human Resources professionals are a vital part of any growing business but they rarely have much knowledge about the inner workings of software development. Trust the coders you already employ to work out what gaps they see in the teams they work on every day and have them draft the requirements for new positions. Simultaneously, recognize that you have to keep going back to this brain-trust. Even in the largest companies developers are likely hired to fill specific knowledge gaps on specific teams. The best you can hope for is the assignment of particular roles on your development teams and then seeking to develop a canned requirements posting for each of those roles. Even that should draw regular review, however, lest the skills required fall into disuse.
Hiring is a marketplace. Be honest about what you want to buy and you’ll find it a lot easier to get your shopping done.