17 December 2019
Upskilling your software developers – survival guide
In today’s world of software development, helping your developers grow is both a must and a skill difficult to master. When done right, it can help decrease your turnover rate, improve the flexibility and efficiency of your team members and has a highly positive overall impact on your bottom line. When done badly, it may decrease the quality of the code and negatively impact your company’s culture. The question is not whether to do this, but how. That’s what we’re going for today.
In this article, The Software House’s Head of Frontend Witold Ossera and Head of PHP Michał Żądło are going to help us create an upskilling strategy for your software developer in a way that helps achieve all the common benefits of upskilling and at the same time minimize possible negative consequences. Before we get to that, let’s review a few key facts.
Upskilling in software development
Upskilling refers to the practice of helping your employees gain new skills related to their field of expertise so that they can be considered for more and more interesting projects. There is also a similar term – reskilling. When your employee reskills, they take a far more sudden turn, completely switching from field/technology to another. Most of what we’re talking about today is applicable for both. When it’s not, we’ll explicitly talk about reskilling.
From your company’s perspective, well-organized upskilling strategy can make it possible to fill a vacancy from within your current team. But there’s more to that.
According to findings collected by LinkedIn, software development is the industry with the highest turnover on the market, having reached an astounding rate of 13.2 percent in 2017. Considering how difficult it may sometimes be to hire developers (check our guides on hiring PHP developers, hiring React developers and hiring Node developers for more information), and the fact that the smaller your company, the more affected it is by the costs of turnover, increasing your retention rate should be your top priority. And there’s no better way to do it than by keeping your devs happy. Upskilling can go a long way to do it.
Why The Software House?
Being a company that invested a lot of effort into acquiring and retaining a very large cross-department software development team, TSH has naturally gained a lot of experience in upskilling.
“TSH’s Node.js and DevOps departments have been initially created from PHP developers. Today, they are both independent and highly efficient teams in their own rights,” points out Michał, the Head of PHP Development at The Software House.
In addition to practical experience, we have also developed precise guidelines to help organize upskilling in the most productive way for all involved. Let’s take a closer look at how it’s done at TSH.
Who takes the initiative?
You might want to jump into specific methods of upskilling already. But they are not what makes a good upskilling strategy in the long run. One of the most important aspects of it is the initiative in acquiring new skills.
“Developers are often the ones to come up with the initiative to learn something new. They want to grow as professionals. It usually happens when they feel like they hit a plateau with their current stack. At TSH, their ideas are often consulted with mentors – senior developers who are thought of as advisors and usually know best where to go from there. Of course, they also take into consideration what technologies the technology is going for in the long run,” says Michał.
The company can also take the initiative, or at the very least make it clear that it welcomes developers to express their interest in learning something new.
“We have introduced a mentoring program. Each and every dev has their own mentor, who is tasked with advising on all kinds of growth opportunities. We’re also organizing internal bootcamps where developers can learn new tools and frameworks, e.g. Node.js workshops for frontend developers,” adds Witold, the Head of Frontend Development at The Software House.
Senior programmers vs junior programmers
Another important aspect to consider when shaping up your upskilling strategy is the overall experience of each individual developer. Depending on the senior-junior ratio, the strategy should be altered accordingly.
Michał explains: “When it comes to upskilling, it’s important to make a distinction between seniors and juniors. Why? I believe that specialization is extremely important in modern software development and it’s much better to know one language or technology very well than have a so-so understanding of many different things. That’s why I usually encourage less experienced developers to first master their main technology before jumping to other fields. As they get better and better, eventually I suggest new things myself.”
“It’s a whole different story when it comes to seniors. Programming languages have a lot in common with each other and for a developer that have mastered the foundations in one language, delving into another is quite easy. They are also able to compare these different technologies and make the right observations. Young developers often want to use any piece of knowledge they acquired in practice, using it wherever they can. More experienced devs search for the right tool for the job. Overall, it’s important to find out if each developer individually is experienced enough to make these growth decisions on their own and do more or less mentoring depending on your judgement,” adds Michał.
Soft skills are crucial
Upskilling software developers is not limited to programming languages and frameworks. It’s just as important to get better in soft skills.
“Complex projects require good teamwork. Constant communication and a culture that encourages being open about what you don’t know are vital. During the most difficult challenges, the ability to work well with other team members and the sense of responsibility for the project are decisive,” believes Witold.
“The most important soft skills to hone are English as well as the ability to speak your mind in a clear and precise manner while talking to either clients or other members of your team. At The Software House we have processes to help our developers work on both,” adds Michał.
Upskilling in software development – methods
What specific upskilling methods can you add to your strategy? Here’s a list of those popular at The Software House.
- Voluntary department-level workshops, which include presentations and practical exercises.
- Internet bootcamps that teach or introduce supplementary skills, such as the “Node.js for frontend developers” bootcamp we held recently.
- Financing or co-financing the participation of your devs in external IT conferences, meetups and workshops.
- Encouraging your developers to set growth goals (to learn in their free time) for themselves through their department-level mentors.
- Encouraging developers to help each other by discussing their goals and code, e.g. by making code reviews for their peers.
- Making sure they actually do have interesting and challenging projects to work on that can test both their present and newfound skills.
- Communicating your growth-friendly approach both internally and externally, through your marketing efforts, so that your business could attract candidates with the kind of attitude your upskilling strategy requires. That’s because no matter how good it is, it will still come down to whether your developers are willing to make time for learning new things.
Freshly upskilled developer in the project – tossing into the deep end?
Considering the complex nature of professional software work, it’s often not viable for a developer to show off their freshly-learned skills in an actual commercial project right from the get-go. How to create a fail-safe path from theory/exercises right to the heat of the battle?
“Special-purpose bootcamps are the most straightforward way to do this. When a developer changes technology or adds a new complementary skill to their stack, they are tasked with an internal project to be created with the new technology. It’s more than just an exercise, because it allows you to get familiar with the standards and practices followed in the company. It makes it way easier to introduce a developer to an actual project”, explains Michał
“Another good way to introduce such a developer is to pair them with a more experienced programmer in a given technology. It ensures a successful project and allows the less experienced developers to constantly learn from the more seasoned ones,” adds Michał.
The recap: How to upskill software developers
- Upskilling your devs is crucial for the company. It keeps developers satisfied and improves the efficiency and flexibility of the whole team.
- For the upskilling strategy to work, it needs to be adjusted to the structure of your team and to each developer individually.
- Both the developer and the company can take the initiative when it comes to upskilling.
- Regardless of whether developers have the initiative or not, they still need proper mentors.
- There are usually large differences between how senior and junior developers approach learning new things. Junior developers need more guidance to make good decisions both on the general direction and while implementing their knowledge in practice.
- Polishing soft skills can also be a part of upskilling.
- Attracting developers with pro-growth attitude in the first place can make upskilling much easier.
Need more advice on upskilling in software development? Or perhaps you are in need of more developers to boost your team? Contact us and let’s talk about your development needs.