At the second RailsConf, David Heinemeier Hansson told the audience about a recruiter trying to hire with “5 years of experience with Ruby on Rails.” DHH told him “Sorry; I’ve only got 4 years.” We all laughed (I don’t think there’s anyone in the technical world who hasn’t dealt with a clueless recruiter), but little did we know this was the shape of things to come.
Last week, a startup in a relatively specialized area advertised a new engineering position for which they expected job candidates to have used their API. That raised a few eyebrows, not the least because it’s a sad commentary on the current jobs situation.
On one hand, we have high unemployment. But on the other hand, at least in the computing industry, there’s no shortage of jobs. I know many companies that are hiring, and all of them are saying they can’t find the people they want. I’m only familiar with the computer industry, which is often out of synch with the rest of the economy. Certainly, in Silicon Valley where you can’t throw a stone without hitting a newly-funded startup, we’d expect a chronic shortage of software developers. But a quick Google search will show you that the complaint is widespread: trucking, nursing, manufacturing, teaching, you’ll see the “lack of qualified applicants” complaint everywhere you look.
Is the problem that there are no qualified people? Or is the problem with the qualifications themselves?
There certainly have been structural changes in the economy, for better or for worse: many jobs have been shipped offshore, or eliminated through automation. And employers are trying to move some jobs back onshore for which the skills no longer exist in the US workforce. But I don’t believe that’s the whole story. A number of articles recently have suggested that the problem with jobs isn’t the workforce, it’s the employers: companies that are only willing to hire people who will drop in perfectly to the position that’s open. Hence, a startup requiring that applicants have developed code using their API.
It goes further: many employers are apparently using automated rejection services which (among other things) don’t give applicants the opportunity to make their case: there’s no human involved. There’s just a resume or an application form matched against a list of requirements that may be grossly out of touch with reality, generated by an HR department that probably doesn’t understand what they’re looking for, and that will never talk to the candidates they reject.
I suppose it’s a natural extension of data science to think that hiring can be automated. In the future, perhaps it will be. Even without automated application processing, it’s altogether too easy for an administrative assistant to match resumes against a checklist of “requirements” and turn everyone down: especially easy when the stack of resumes is deep. If there are lots of applications, and nobody fits the requirements, it must be the applicants’ fault, right? But at this point, rigidly matching candidates against inflexible job requirements isn’t a way to go forward.
Even for a senior position, if a startup is only willing to hire people who have already used its API, it is needlessly narrowing its applicant pool to a very small group. The candidates who survive may know the API already, but what else do they know? Are the best candidates in that group?
A senior position is likely to require a broad range of knowledge and experience, including software architecture, development methodologies, programming languages and frameworks. You don’t want to exclude most of the candidates by imposing extraneous requirements, even if those requirements make superficial sense. Does the requirement that candidates have worked with the API seem logical to an unseasoned executive or non-technical HR person? Yes, but it’s as wrong as you can get, even for a startup that expects new hires to hit the ground running.
The reports about dropping enrollments in computer science programs could give some justification to the claim that there’s a shortage of good software developers. But the ranks of software developers have never been filled by people with computer science degrees. In the early 80s, a friend of mine (a successful software developer) lamented that he was probably the last person to get a job in computing without a CS degree.
At the time, that seemed plausible, but in retrospect, it was completely wrong. I still see many people who build successful careers after dropping out of college, not completing high school, or majoring in something completely unrelated to computing. I don’t believe that they are the exceptions, nor should they be. The best way to become a top-notch software developer may well be to do a challenging programming-intensive degree program in some other discipline. But if the current trend towards overly specific job requirements and automated rejections continues, my friend will be proven correct, just about 30 years early.
A data science skills gap?
What about new areas like “data science”, where there’s a projected shortage of 1.5 million “managers and analysts”?
Well, there will most certainly be a shortage if you limit yourselves to people who have some kind of degree in data science, or a data science certification. (There are some degree programs, and no certifications that I’m aware of, though the related fields of Statistics and Business Intelligence are lousy with certifications). If you’re a pointy-haired boss who needs a degree or a certificate to tell you that a potential hire knows something in an area where you’re incompetent, you’re going to see a huge shortage of talent.
But as DJ Patil said in “Building Data Science Teams,” the best data scientists are not statisticians; they come from a wide range of scientific disciplines, including (but not limited to) physics, biology, medicine, and meteorology. Data science teams are full of physicists. The chief scientist of Kaggle, Jeremy Howard, has a degree in philosophy. The key job requirement in data science (as it is in many technical fields) isn’t demonstrated expertise in some narrow set of tools, but curiousity, flexibility, and willingness to learn. And the key obligation of the employer is to give its new hires the tools they need to succeed.
At this year’s Velocity conference, Jay Parikh talked about Facebook’s boot camp for bringing new engineers up to speed (this segment starts at about 3:30). New hires are expected to produce shippable code in the first week. There’s no question that they’re expected to come up to speed fast. But what struck me was that boot camp is that it’s a 6 week program (plus a couple additional weeks if you’re hired into operations) designed to surround new hires with the help they need to be successful. That includes mentors to help them work with the code base, review their code, integrate them into Facebook culture, and more. They aren’t expected to “hit the ground running.” They’re expected to get up to speed fast, and given a lot of help to do so successfully.
Facebook has high standards for whom they hire, but boot camp demonstrates that they understand that successful hiring isn’t about finding the perfect applicant: it’s about what happens after the new employee shows up.
Last Saturday, I had coffee with Nathan Milford, US Operations manager for Outbrain. We discussed these issues, along with synthetic biology, hardware hacking, and many other subjects. He said “when I’m hiring someone, I look for an applicant that fits the culture, who is bright, and who is excited and wants to learn. That’s it. I’m not going to require that they come with prior experience in every component of our stack. Anyone who wants to learn can pick that up on the job.”
That’s the attitude we clearly need if we’re going to make progress.