Hiring is hard, keeping software developers is even harder
According to the feedback from my CTO report, one of the biggest challenges faced is how to keep talented IT people employed in a company. In the employee market pool, it’s clear to see that they are willing to jump from one company to another easier than in many other industries. This causes frustration and quite often destroys project management.
Below you can find 9 tips on how to make people love you, your company and stay with you longer.
- Be the leader they need
Everyone has their own idea of what a “super boss” is like. When recruiting developers, ask them how they see their manager, what are their expectations and needs for them and how do they see that being implemented efficiently. Next, compare this to your current reality and analyze how close you can get. It’s like dating – if you have a close match then there is a good chance for successful cooperation from day one.
People follow leaders who inspire them, show direction and encourage growth. We admire people who make us feel proud of what we do. Simon Sinek is a great inspirational mentor in this field – take a look at some of his YouTubetalks.
- Build a great company culture
There are many books on this topic but I would recommend that you read “Powerful” – the story of the Netflix culture. When we speak about the “company culture” it’s not about free food and massages (Google-style), but rather a set of values and principles that make the company a great place to work.
For example, at LEOCODE we believe that the strength of our company culture is to be helpful to our clients. What does it mean in practice and how does it influence hiring? We are looking for digital-savvy people who can inspire our clients and help them grow to the next level using modern technologies.
- Pay well and help them grow
Do you remember the Maslov’s Hierarchy of Needs pyramid? Safety first. Most experienced developers have their physiological needs met already – they have children, good cars, homes and so on. They know that they can work remotely and get quite high salaries from different countries if they are good (via marketplaces like Toptal), so many of them won’t work for half of a normal salary in order to gain some glory!
Treat them well, try to offer a competitive salary and make sure that they have extra benefits in the form of joining conferences, training to gain new skills that are applicable to their daily tasks and so on.
- Avoid “princesses”
Some people that I’ve spoken to have said that you can easily find a “princess” among developers – a very demanding person with a weak set of skills and high expectations. Such people have the potential to totally destroy teams. Lonely cowboys quite often drag down the company culture.
Some people have various 4-7 letter names for such types of people but we won’t get into that here! No one likes them, even if they are good. So try to avoid them. I know they might be great experts in this and that area but if they are not team players, or don’t fit your company culture, the total cost of having them in the team will be far higher than just their salary.
- Hire long, fire fast
It’s a sensitive topic. I know you need software developers NOW, but if you hire the wrong people and keep them for too long, you will regret it deeply – in my opinion. Some people can create a toxic environment and you could end up giving them one chance after another, thinking that this person might change. “One bad apple may spoil the bunch”. Not only are they not likely to change, but they might drag others down with them leaving you wishing you had said goodbye earlier. I haven’t mentioned that in many countries firing a person is a long and expensive process as that is another issue. Trust your intuition, it will somehow lead you in a good direction.
My personal opinion:
- Be very careful when you hire (at Google there are around 4-5 stages before becoming successful, but in the end they get the best people on the market).
- Fire fast if someone breaks your policies, company culture or doesn’t work according to your standards.
- Be helpful
Everyone has good and bad days but, at the end of the day, we are all social animals. Software developers are quite often treated like code production machines which can have a very negative impact on their effectiveness. They are only human and sometimes have a bad day and need your support. Be kind. Always. It pays off.
- Fail Better – learn from mistakes (quickly)
The biggest mistake most companies do is that they learn too slowly or they repeat the same mistakes over and over again. For example, after each exit interview you should ask yourself the following questions:
- What did we do wrong?
- What were the consequences of our (wrong) decisions?
- How can we avoid such a situation in the future?
#FailBetter is one of our mantras at LEOCODE. After each big event (organizing a hackathon for example, or launching a new website), we write down everything that went wrong (post mortem) and we establish ways to avoid it in the future. On the next occasion, a responsible person needs to read this document first before planning the activity in order to avoid making the same mistakes again.
- Growth mindset
Some people feel comfortable where they are. They are hardworking but their initiative goes no further than waiting for the task to be assigned. On the other hand, we have the humble folks who are willing to change things. They might be lazy from time to time, but they creatively solve problems. The world is changing very fast and most companies need people who can adapt to the changing environment and grow with the company and their colleagues. Safety shore is good for a brief moment but you quickly have to venture into the open water and sail where the wind takes you. It requires mental changes in the way you perceive people, the organization and their own role in the living organism that is the workplace.
- Keep the balance between discipline and the regime
Some organizations are very easygoing. I call them startups (the 80% that fail!). They let people do what they want. On the other hand, we have companies in which everything is planned and strictly monitored (corporations). Both approaches have various negative impacts in my opinion.
You need to aim for the sweet spot in the middle where people have some defined framework and see the main company goals, but can plan their work by themselves to effectively deliver results. Managers don’t assign tasks but rather mentor and advise. People feel ownership of their work and enjoy solid support structures which make them willing to be a part of the company.
I know all of the above points are easier said than done and are often much harder to implement, but do you have a choice? Find what works best for you and keep the most highly motivated talents in your company.