Are job descriptions to blame for software labor shortages?

An article I read on my phone this morning wanted to lay some of the blame for the shortage of skilled software laborers on job descriptions. I thought it was worth the read. But, by the end of it, I walked away disagreeing.

This isn't to say that job descriptions can't be blamed for some delays in the hiring process. Nor that they can't be blamed for turning some people away. But, the notion that they make up a reasonable percentage of the problem doesn't seem likely to me.

Part of what the article stated was that these JDs are posted with massive lists of requirements even though the companies could probably get by with just satisfying the top X requirements and otherwise being a good fit for the company. And then they go on to say that people without degrees are just as good at learning as those without.

And then they lost me. This is a grievous mistake on the part of the author. I have a degree in computer science. I have 10+ years of programming in a very progressive company which has forced me to learn even more new frameworks, languages and skills than I picked up in University and I still regularly stumble across jobs where I don't even have the top X skills.

At the end of it I walked away with the following issues:
  • Just because a job has ludicrous requirements it doesn't mean it doesn't get filled.
  • Even if a job doesn't get filled, it doesn't mean it isn't re-posted with less strict requirements.
  • An ability to learn is a great skill, but minimizing training is a primary concern for teams back filling intermediate and senior positions.
  • For introductory roles, a formal education provides at least some level of testing of qualification over a period of years.
In short, the article was really more a complaint about the difficulties of getting a job without a degree than it is about shortage of labor.

The first point is INCREDIBLY important. You can't assume that because a JD has seemingly  ludicrous expectations that it goes unfilled. And, you can't blame a company for trying to get the best talent possible. While it may not be your fault that you don't possess that specific array of skills. It is also not the fault of the hiring company.

Secondly, companies NEED to fill positions. So, they will often update JDs as time goes on. Or, they will simply choose the best candidate from among those who applied despite whether or not they ticked all of the boxes. Chances are though, if you're griping about the list of requirements you either didn't apply, or are simply not fit for the job. More often than not, the jobs are filled. If there is a shortage after, then it is because candidates aren't applying or the shortage is real.

The 3rd point is also important. Many of these laundry list JDs are either back filling more senior positions or attempting to hire new senior level positions. I won't suggest that companies don't overemphasize their needs. But, when filling more critical or more senior positions, the time may not exist to train. Or the resources may not exist to train. Most software companies aren't rocking hundreds of employees. If you don't have the skills, there may be no one to train you.

But, the advantage here is, most senior positions... won't even look at your education. They are going to look at your work history. If you STILL aren't getting the job, you're the problem. Not the job description.

Which leaves entry level positions. These don't come with laundry lists of requirements. But, they would likely prioritize those with a degree for a simple reason. Years of testing and a broad range of skills.

I've read a great deal of articles from self-taught developers who don't seem to grasp the importance of things like data structures or algorithms, have only ever built web apps in a handful of frameworks and think themselves coding geniuses. They've done primarily contract work, and thus don't regularly work in teams.

In short, while they aren't untested and they are useless, they certainly DO have a LOT less going for them than a University student. And most regular (non-contract) jobs WILL make use of those skills they think are useless.

They are the software equivalent of the kid who grows up, goes into the trades and says "why did I need to take math in school? No one is ever going to use that skill", as they calculate some angles for a build.

A degree is certainly not everything. And, not every self-taught programming skimps on learning the fundamentals. But, strangely, I've never once heard of such a programming complaining about hiring processes or job descriptions. Or perhaps it isn't strange at all.

What I'm going to say is this; if you think the most important thing about programming is learning or being able to learn a particular language or framework, then you've already lost. There are millions of people around the globe. Many of which will accept pay lower than you to perform the same job. AND, do it better than you.

What makes a valuable software developer is experience, a breadth of skills, and then, lastly, the specific skills.

Just about anyone CAN learn the skills needed for a job. A developer with more experience will often learn them quicker than one with less experience. A developer with a wider range of skills will likely learn quicker than one with fewer skills. A developer with the specific skill may require the least amount of time, but if all you know is that they don't have it, it says nothing about your ability to acquire it.

Those 20 other seemingly useless skills on the list? If you have a lot of the nice to haves, it speaks to your experience and breadth of knowledge. It speaks to your value. It says why you're a better hiring option than a remote employee from Asia or the Middle East.

And, I hate to break it to you. But, yes, knowledge of algorithms and data structures are important. As are security topics. Knowledge of QA. SDLC. And many others. Especially at scale. And that is the direction software is headed. I don't use them all every day. But, they pop up regularly enough.

If you're not interested in that? Accept that you'll be working contracts writing web pages or software for small businesses who can't afford to hire permanent staff. It is still making a living. And, with enough experience you may even land a permanent (low level) position with a larger software company. Larger companies often need some quantity of "grunt" programmers.

Comments

Popular Posts