How employers can navigate the current software developer market
Tags: software, jobs, itmarket, career
Published: 2022-02-22 10:17:34

The big skills crunch is coming and we need to rethink how we approach talent acquisition. According to a [Mckinsey report](https://www.mckinsey.com/business-functions/organization/our-insights/beyond-hiring-how-companies-are-reskilling-to-address-talent-gaps) from last year, most businesses expect to suffer from skills gaps soon and are looking to alleviate the problem by upskilling their workforce.

Demand for software developers is at nearly an all-time high, if not an all-time high. Developer salaries are reaching record levels. From the job boards, it appears that companies are struggling to hire senior developers more than anything else.

The ratio of senior developers to junior developers has always been small. According to [Bob Martin's famous analysis](http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html), the population of software developers roughly doubles every five years. These days, however, the ratio of senior to junior developers is extraordinarily small. In the most recent [StackOverflow developer survey](https://insights.stackoverflow.com/survey/2020#developer-profile-years-coding-professionally), developers with less than 5 years of experience make up almost half of the demographics.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7b1wn0g1g2qpnyvgcngh.png)

Traditionally, businesses have strived to keep a balance between the amount of junior and senior developers on board. The idea was to have enough senior developers to allow them to coach and guide junior developers while still being able to focus on their own work. This balance is breaking.
Amid fierce competition from the big players, many small and medium companies are giving up on their pursuit of senior developers and opting to bring in junior developers instead. What does this mean for small and medium companies?
Having teams composed mainly of junior developers is not necessarily a problem. But it's a situation you need to manage. If you have very few senior developers, you can't rely on them to be able to coach and guide your junior developers while focusing on their own work. You have to change your approach to upskilling junior developers.
Most companies don't have proper training programs for junior developers. They expect junior developers to somehow be able to grow and learn by themselves with the help and guidance of their more senior colleagues. In my experience, this works in certain situations, but it also leaves many otherwise capable developers behind. A recent [thread](https://news.ycombinator.com/item?id=27596687) in Hackernews captured the feelings of most developers around this problem, and [one of the comments](https://news.ycombinator.com/item?id=27597232) summarised how many of us see the situation:
Devs don't spend money on expensive training courses and certs to gain skills; we just get hired somewhere and then pester our co-workers.

In the current market conditions, you can't afford to leave any developer behind. You need to invest in your developers and make sure they receive the necessary support to grow into skilled developers.

## How to make training effective

Now here's the important note for business managers: training your employees doesn't mean go tell them to do a course or two in Udemy or Coursera. Most online courses are good for basic training, but the real value comes from advanced training tailored to your needs and delivered in real time by subject-matter experts. You need to bring structured training as part of the job routine, and you need industry experts to deliver the training.

Let's dissect the recommendation in the previous paragraph. In particular, let's look at the following questions: why real-time training? Why training tailored to your needs? And why training delivered by subject-matter experts?

**The benefits of real time training**: real time training allows the instructor to interact with the audience, which has the following benefits:

- The instructor can adapt the content on the fly. For example, if some of the attendants never heard of certain concepts, the instructor can explain them in advance to make sure everybody is on the same page.

- The instructor can look at the audience's reactions and gauge whether they are following or not. Again, this allows the instructor to be adaptive to make sure the audience understands all the concepts.

- The audience can ask questions during the lecture if they don't understand something.

**Training tailored to your needs**: it's great to do a course about AWS, or Kubernetes, or GraphQL, or any other topic. But if the course covers those topics exclusively from a generic point of view, there's a great chance that the content delivered doesn't address the needs of your team. If you're planning to use GraphQL, talk to the instructor about your use cases and the instructor will be able to adapt the course to your needs. That way the training will be a lot more effective for your employees, as they'll be able to relate their experience to it, and they'll be able to apply the lessons learned straight away into their job.

**Training delivered by experts**: you can argue that anyone can deliver training. And sure enough, everyone has something to teach. But to make the most of your corporate training, you want to engage subject matter experts. Not generalists or random professionals. You want instructors with hands-on experience in the field they're teaching, and with proven abilities to teach either through published books or courses. Think of the instructor as a consultant who'll not only teach your employees best practices around each topic, but also can advise on whether you're making the correct use of certain technologies.

## But, why should I invest in training my employees?

Many companies think investing in employee training is a waste of money. After all, corporate training workshops are expensive, and your employees will be "out of work" for a few days. But the reality is far from that. From experience, I can say that the right training delivered by the right person will save you tens of thousands of dollars. Yes, there's a hidden cost to lack of training.

How's that possible? Consider the case of APIs, which is one of my subjects of expertise. If you ask around, most developers will say they have a solid understanding of how APIs and API authentication work. And sure enough, most developers have a fairly good idea of how APIs work. After all, we work with APIs all the time!

But consuming an API is a very different task from producing one. Think of it this way: we can all read books, but that doesn't mean we're all writers. It takes a special skill and knowledge to produce something. When it comes to APIs, common knowledge gaps are around available API technologies with their pros and cons, documentation standards, how to work with an OpenAPI specification, JSON Schema syntax, how to leverage API documentation for testing and validation, or to run mock servers, best practices around the design of the endpoints and resource modelling, API security and authentication, and many others.

Without guidance, each of the knowledge gaps listed in the previous paragraph typically cause development teams to lose weeks or even months doing research and learning. When deadlines are around the corner, it can be frustrating for everybody.

And it's also expensive! [According to StackOverflow's 2020 developer survey](https://insights.stackoverflow.com/survey/2020#work-salary-by-developer-type), the median salary of a backend developer in the US is $120k. Assuming ****roughly**** 220 working days a year (11 months x 20 days), knowledge gaps cost businesses approximately $2,700 per developer per week. And assuming a developer only spends one month a year (it's usually more) filling knowledge gaps, the yearly cost sits at approximately $11k. In a team of ten developers, the cost rises to $110k per year! Bear in mind this is a conservative estimate.
These spiralling costs can be avoided by incorporating training into the daily job. Training brings expert knowledge and guidance for your team. And it also makes happy teams. Software is a knowledge-based industry, and one of the reasons developers leave their job is because they're not learning new things anymore. To build a strong, confident, happy, and productive team, you need to embrace training.

---

If you liked this article and would like to learn more about my work, please check out my websites:

- Personal website: https://www.joseharoperalta.com
- microapis.io: https://microapis.io

If you'd like to learn more about microservice APIs, feel free to check out my book [Microservice APIs](http://mng.bz/nz48). You can use the following code to get a 40% discount: **slperalta**.

You can also download two chapters for free using the following link: https://www.microapis.io/resources/microservice-apis-in-python.

If you're currently working or looking to work with APIs and would like to arrange a training or consulting session, please feel free to reach out to me at info@algorizm.co.