DEV Community

loading...
Cover image for Is there a Developer Shortage?

Is there a Developer Shortage?

kallmanation profile image Nathan Kallman ・4 min read

Cover photo by Uriel SC on Unsplash

Disclaimer: this article is my opinion, based on my experience interviewing candidates for my current employer. In no way should this article be taken to represent the opinions or viewpoints of Root Insurance. All views expressed in this article are mine and mine alone.


So is there a shortage of developers?

By Betteridge's law: No.

There is no shortage of people writing software. Interviewing potential candidates being a part of my current role (which I appreciate) I've seen no shortage of people to interview.

But there is a shortage of something. There is a lack of experienced, senior level developers. From my experience, this type of candidate comes around less than 5% of the time.

Where are the senior developers?

1. They're working for someone else

Being rare means these developers can choose their ideal working situation (and they won't stay unemployed for long). This isn't an article on how to make a working environment that attracts senior developers, but a few highlights most people want:

  1. Good working environment (varies by person, but usually friendly, not bureaucratic or political, supportive, quiet ...)
  2. Exciting work (and don't think "But I'm in a boring industry"; I'm working for an insurance company, in claims no less, and I'm excited to work every day; it's all about giving agency to solve the hard problems and see the results first-hand)
  3. Fair compensation (both now for immediate expenses and later in the form of stock options or retirement funds)

If a company doesn't have top working conditions, they won't attract the limited supply of top talent. Period.

They're not working for you because they're already working for someone else.

2. They're working for themselves

The only thing better than working for someone else with almost perfect conditions is working for yourself with personally taylored conditions.

The current climate allows a single motivated and skilled developer to code and deploy a respectable small software-based business.

They're not working for you because they're already working for themselves.

3. They're open source

An offshoot of working for themselves; they're working for everyone by creating and maintaining an open source project (or two).

They'll be making the majority of their money through crowd-sourced channels like Patreon or corprate backers or speaking engagements or paid adaptations / support of their project. But it's probably not about the money for them (funding open source projects is an ongoing problem). They're in it because of some ideal or passion that won't be changed.

They're not working for you because they're already working for everyone else.

4. They've been promoted

In most organizations, the path of promotion goes into management. If a developer started in their teens or twenties and reached a senior level by their thirties or forties, the only way "up" for the last half of their career is to leave software behind.

This is an unfortunate viewpoint as it removes a person from a position they've just spent years becoming adept at to place them in a position they are probably much less qualified for (see The Peter Principle). But it's a pay raise, better title, and better perks; what choice does the developer have but to take it.

They're not working for you because they're not a software developer anymore.

5. They're FIRE 🔥 (financially independent / retired early)

Touching back on the "fair compensation" for both now and later: the senior devs have been collecting quite a salary. They are also very smart and understand how systems work (and can be worked to an advantage).

They've taken the six-figure salaries, the stocks, and the side-hustles to build enough wealth to remove the need to work to continue their lifestyle.

They're not working for you because they're not working.

Get off my lawn!

How do we get more experienced developers?

First, figure out how to keep developers developing. This will both keep the talent pool as full as possible while also naturally helping with the second step of training up new developers.

  1. Give them office time to work on personal projects
  2. Give them office time and/or personal budget for their continued learning
  3. Promote them to higher development based roles where they have greater influence and autonomy (and opportunities/authority to train and mentor the more junior developers)

These things increase developer happiness, while also growing them into better developers and keeping them doing what they do best.

Second, figure out how to train the glut of beginning developers into the senior developers that are needed.

  1. Give them office time to work on personal projects
  2. Give them office time and/or personal budget for their continued learning
  3. Keep senior developers developing so they can train and mentor the new developers. There's a reason apprenticeship in one form or another has been the backbone of training skilled workers for centuries.

Agree? Disagree?

Take it on in the comments. I read them all and love to have healthy, civil debates.

Follow me for more articles like this or try one of my other series.

Discussion (5)

pic
Editor guide
Collapse
wulymammoth profile image
David • Edited

Solid post, Nathan! I think you've summed up what I couldn't for the last several years! I love that you included the FIRE bullet! That's actually quite true.

There is a huge shortage of highly experienced/senior level developers and one of my previous employers refused to hire any juniors until we put other seniors in place to mentor them -- not all code is production-ready code. Talent alone is not enough.

But one thing that I'll mention is companies should still consider eager devs with some experience. What I mean by "eager" is someone that has some visible signal of a desire to learn and ability to take feedback. This is hard to see in an interview, which is why I always hope that the candidate has a Twitter or GitHub account with activity on it. It's not 100% accurate but pretty close when the accounts have history -- I'm able to gauge how they've interfaced with others online when filing issues, responding to issues, and generally conversing with others. Are those interactions cordial, are they confrontational? Are they actually solving issues on top of repositories with stuff they've made public, one could glean what sort of abstractions are used, and overall attention to detail -- I've seen so many repositories from candidates with logging calls, uneven formatting, etc.

I mention all of the above, because if I can't chat with this person or engage without feeling comfortable, it really doesn't matter how smart and/or talented this person is. I'd much rather have someone receptive of feedback and engaged in their learning while less experienced. It goes both ways. I try to remember that, I, too, could learn something I don't know about that someone with less years of experience than I has worked with. I wonder if you'd agree here :)

Collapse
kallmanation profile image
Nathan Kallman Author

Thanks David! That's brave and respectable of your previous employer to be so dedicated to mentorship. So many want to hire a junior (at junior salary) with the expectation of senior performance with little to no support.

someone that has some visible signal of a desire to learn and ability to take feedback.

This is a huge swing factor in my decisions for candidates. Did slightly worse but was learning and asked and received feedback well? I'm a yes. Did slightly better but struggled to listen to suggestions? I'm a no.

I'd much rather have someone receptive of feedback and engaged in their learning while less experienced. It goes both ways. I try to remember that, I, too, could learn something I don't know about that someone with less years of experience than I has worked with. I wonder if you'd agree here

I couldn't agree more. Humility makes all the difference. Reminds me of a quote:

I have never met a man so ignorant that I couldn’t learn something from him. - Galileo Galilei

You may have more experience; but someone else definitely has different experience and something you can learn from.

Collapse
hugertown profile image
Hugertown

Under these circumstances, standard software is required to avoid losing money later. We are aware that, with our expertise, it is necessary to think about knowledge workers if we are to build this type of software. Since there are not sufficient professional resources to trigger problems. I believe I can support you if I advise you to identify and approach shortage of software developers on request. I believe that these guys also helped me greatly. Good luck!

Collapse
n8chz profile image
Lorraine Lee • Edited

What we have here is a tragedy of the commons. All the businesses want to get experience without "giving" experience (or giving opportunities to get experience). Part of the problem is the death of long-term employment that started in circa 1980 and has only gotten more intense with the passing decades and further rightward migration of the Overton window, on economic policy, anyway. Another part of the problem is the lack of "portable" ways to get experience, such as formal apprenticeship programs such as in those trades that somehow still have trade unions. But "tech" is run by techbrotarians who are viciously anti-union. If, as is certainly the case in the Detroit area where I live, 100.000% of the jobs require experience, the industry has only itself to blame. Cry me a river.

Collapse
kallmanation profile image
Nathan Kallman Author

It really presents itself as a catch-22. It requires time from experienced developers to train the new developers. But there's a limited number of experienced developers and an unending need for software. So to get the software needed today consumes the experienced developers time, leaving less for training the new developers into experienced developers, leading to fewer relative experienced developers....

And so the cycle continues....