Sat 17 March 2018
Developer Survey released its results last week. I read Quincy Larson's take on the results, then didn't give it much thought.
Then the other day I was responding to a Reddit post where a Computer Science student was lamenting about not finding an internship. "It's not you", I wrote, "the market is tough for junior-level people with nearly a third of all developers having entered the market in the last two years," I recounted from Quincy's article.
I made my post, and then I paused...could that possibly be right? A third of all developers have less than two years of experience? This article is about diving into what it means to have so many junior developers in the job market.
There are two big caveats to this analysis:
1. StackOverflow has not yet released its raw data, so I'm using their provided aggregated data. I'll update when the raw data becomes available, if needed.
2. Population bias is likely to have played a role in the outcome of this survey. The sample size is large, but was drawn from heavy StackOverflow users. We'll draw what conclusions we can, but just keep that source of error in mind.
While there's a lot to unpack in the survey, we're going to focus on the impact on the job market caused by a proportionally large number of junior developers. The survey indicates that
30.1% of developers have less than two years of experience, with over half having less than five years experience. 1/3 of developers have less than two years' experience: what the heck is going on?
We can take a few guesses about why the numbers would be like that. We would expect to see less senior developers in general because of:
1. Attrition of experienced developers through death, promotion outside industry, changing careers, retirement, etc..
2. Industry growth increasing the number of developers hired each year.
First, let's try to verify whether this proportion of junior developers is anomalous, or business as usual. If we look at
StackOverflow's data since 2011 (the first year for which they provide data) we can see a trend in less experienced developers becoming a greater proportion of the respondents. The 2018 Survey shows a spike in the proportion of junior developers, jumping 10% compared to 2017.
So we can now confirm that this is a shift in the industry (again, assuming this isn't a polling artifact). Let's explore what this shift could mean.
For this analysis let's make three assumptions:
1. The demand for software
will continue to grow.
2. Junior developers are significantly less productive than more senior developers, on average.
3. Attrition of developers out of the industry will remain constant.
Since we don't have a crystal ball, lets take a look at three scenarios regarding junior developers in the job market over the next few years, and then explore which scenario might be more likely.
Scenario 1: Crank it up to 11.
This scenario represents a completely supply driven employment market. Employers are desperate for developers and are happy to take inexperienced developers to fill their empty positions. This scenario is most likely if demand for developer talent continues to grow rapidly and the increased productivity of a more experienced work force does little to sate the demand.
Scenario 2: The gravy train is full.
In this scenario employers respond to the increased availability of mid- and senior-developers by reducing the proportion of junior developers. Top computer science graduates will continue to easily find work, but less impressive candidates will find themselves in a very tough job market. This scenario is most likely when demand for developers remains strong, but much of the demand for increased output is being met by an increasingly experienced and more productive work force.
Scenario 3: Seniors only, please.
This is the doomsday scenario for coding bootcamps. Employers are tired of the added expense and lower productivity of junior developers and instead restrict their hiring to experienced developers. This scenario is most likely if the increasing productivity of the current work force is able to meet the growing demands of industry output.
The point I want to make is that while we usually talk about an increasing demand for developers, what employers actually want is increased output. While the demand for increased output is likely, that demand could be met by new hires or
increased productivity. It will likely be both, but a greater proportion coming from productivity would be great for employers and bad for first-time job seekers.
Increased productivity has the potential to be a major driving force in the job market because of the historically large proportion of currently employed junior developers. For example:
Suppose a software development shop has 100 developers and 15 of them are junior developers. Let's also assume that mid- and senior-level developers are 50% more productive than junior developers. Assuming the company retained all its developers it could count on a 5% team productivity gain in 2 to 4 years without hiring anyone else. If the company's target was a 10% increase in the team's output, they could hire 7 junior developers to reach that goal.
If the number of junior developers was 30, instead of 15, there would be an 11% productivity gain for the team in 2 to 4 years. This company could
fire 1 of its developers and still make its 10% increased output target.
The viability of hiring new developers hangs on two inputs, which I have chosen arbitrarily for this example:
1. The size of the desired increase in output, and
2. The amount of increased developer productivity stemming from more experience.
Are junior developers doomed?
There is every indication that demand for new software will
remain high. Even if average developer productivity shoots way up, it's unlikely to surpass demand. However, if we really are looking at a 10% increase in the proportion of junior developers in the industry, their increasing productivity should not be ignored.
There has been no shortage of
grumbling in the industry about junior developers not properly prepared to work as professional developers. It's exceptionally hard to spot if you're in a bubble until it pops. What you can do.
This article has talked about the increased risk of a poor job market for inexperienced developers. I didn't start out trying to write a doom-and-gloom prognostication article, and fortunately there is good news.
First, if you're able to enter the industry now you can get in before this wave of junior developers gains enough experience to be mid-level developers. If gloomy scenario does come to pass, you can get in before it hits.
Second, you can mitigate your risk by doing what you should already be working on: leveling up skills and getting more experience. Even if you're not currently working in the industry you have the opportunity to build personal projects and contribute to open source. You have the power to ensure that when you apply for a job your are not applying as a junior developer, because you'll already have the experience that employers are looking for.
All that being said, software development is a great career. I currently mentor aspiring software developers at
SC Codes, and my advice to my students is still whole-hearted encouragement in becoming software developers. Hard work and determination pay off in any industry, and nothing suggested in the StackOverflow Survey is going to change that.