As the CEO of a development agency, my company's bottom line is 100% dependant on keeping a hold on talent. However, luckily as a developer myself, and a former project manager, my experience has allowed me to create an environment which encourages our team to stay put, and grow together rather than jumping ship at the first offer.
Forget about the free food, and ping pong tables, to keep a hold of developers – you need to think like a developer too. Here are my four tips for retaining your development talent for the long term:
1. Give Them Real Challenges
Competition between the largest tech giants, and the inevitable poaching which comes with it, is making salaries skyrocket in tech hubs, and is even growing hubs like my new home of Salt Lake City. But while you might think that the offer of potential six-figure salaries from Apple or Google would be enough to make developers stay put, in my experience, often the opposite can occur.
With an abundance of generous offers, serious developers, with honed skills who want to keep improving, are drawn to the right projects, not the right salaries.
Unless they are working in specific departments dealing with emerging technologies like AI, developers working for larger companies often find themselves stuck working on the same thing, modifying and improving existing platforms and working on very small pieces of bigger projects. If a smaller company offers them the chance to earn just a little less (but still a very comfortable wage) to work on a truly challenging project allowing them to experiment with new technologies, and use their creativity to develop amazing software which people will really use, they will jump at the opportunity.
So what's the secret? Offer fair wages, and engaging, challenging projects.
Also try to push teams to learn new skills, and try their hand at tricky emerging technologies like AI and bots. Give your developers the chance to step outside of their comfort zones, rather than tapping away like drones on boring CRUD (create, read, update, and delete) tasks, and they will stay engaged and excited. Developers want the chance to solve real problems and push themselves to the limits with real challenging engineering projects.
2. Stick With Your Processes
No developer wants to feel like a drone, whose skills aren't valued. As such, my company has developed rigid processes internally and externally over time.
If you aren't a good fit for our team, we simply won't work with you. To be blunt: there is no shortage of clients out there – but there is a shortage of developers.
To allow our developers the space they need to excel, we keep a comfortable distance between them and the clients. While we insist that clients check in and give feedback regularly throughout projects – in line with Agile methodology – we put a product manager as a buffer between them, to make sure communication is organized, and our teams can focus on the job.
We have also created organizational processes which put pressure on our developers, but also treat them as human beings, not robots. This is especially important when setting sprint deadlines and expectations. If you give developers unreasonable deadline after deadline, they feel under the thumb, and will eventually get demoralized and leave. All of our product managers have years of development experience and therefore set realistic aims.
When outlining projects with clients, we always make sure reasonable expectations are set. If developers constantly feel like they are clashing with upper management or demanding clients, they will immediately start thinking about the next opportunity.
3. Create the Right Teams
As this article highlights, the best way to keep developers motivated is to offer a sense of hope. If you want your teams to work hard, you need to offer them the support on the occasions when they find themselves out of their depth.
At my company, we have tried to create an environment in which our developers can lean on each other, both for help in difficult situations, but also in terms of mentorship. From our project managers to our senior development teams to our newer talent, we have created a communicative environment in which teams are encouraged to openly discuss challenges and roadblocks and work together to solve problems.
Mentorship in development is not limited to pairing up a junior and senior developer to cultivate the next generation of coding talent. Even the most senior developers can learn from each other too. At my company, we match two senior developers together to create a coding SWAT team which can swoop in and solve problems.
But just like police partners in the movies, these two players need to have skills and character which compliment each other. Even if I have two extremely talented senior developers with ten years of experience, I try to match them with someone else who is an expert in another skill than theirs so they can learn whilst together. And following the forming, storming, norming, performing, adjourning theory created by Bruce Tuckman, when they are both experts on the same level and stop learning from one another, it's time for them to find a new partner.
We, therefore, have a budget for sending our developers to courses and conferences, so they can stay on the cutting edge of their trade, and hold regular community hackathons and events so there is a free flow of ideas. If you are only mentoring and never having a mentor, you will eventually get frustrated – like any other creative type, developers want to feel like they are always improving.
4. Offer Quality of Life
Startup messaging app Slack received great press for their 'work hard, go home' mantra. The company's CEO realizes a work/life balance is important. Around 2014, I realized my teams in Utah were being pushed to near burnout, and working all hours. Developers are problem solvers, and the problem we had was that we were working too much.
The answer could have been hiring more staff, offering more support, offering better equipment, changing processes, or simply firing some clients. But we had to find an answer, or risk losing great people. This is the main reason my company began hiring teams of developers in Brazil.
Thanks to our tech hubs in Brazil – replicas of tech giant's campuses in Silicon Valley – our developers can live outside of expensive tech hubs in the US, but still enjoy all of the same benefits, technology and collective genius which they would find in San Francisco. But, they can do so while being able to live in a more affordable part of the world, which is still on close time zone as most of our clients.
If you want your developers to put in their all, and go the extra mile when it is called for, you need to make sure feel valued, supported and are able to take advantage of their privileged positions. There is no point earning $100K a year if you never get the chance to leave the office.
So, while there is no silver bullet to solve the tech talent shortage, startups, and big tech companies could benefit from taking a step back and thinking about the situation more like developers. Forget the free food and the ping pong tables, if you do don't want your developers to fly away, give them the space to soar within your own company.