Is there a Developer Shortage?

Is there a Developer Shortage?


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 Buy Me a Coffee 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.