Locating and Retaining Good Developers. Like Finding Bigfoot?
More and more often I’m hearing something similar from hiring managers at software companies and agencies. The search for talented developers is hard. Even harder, is keeping them.
I’ve read numerous articles on the web around what companies need to do to keep people. I can agree with a lot of what I’ve read. Some of these quote various studies and statistics and show pretty graphs indicating ‘optimum employee happiness’. They all seem very well informed. Perhaps they are. My only complaint is that I rarely see articles regarding management and hiring decisions targeted at obtaining developers, written by developers.
As a developer I’m going to give some insight that I think will help any employer struggling with this dilemma. I’m not saying that my preferences for a work environment are the same as every other developer. However, I will tell you what I’ve experienced and witnessed to be the most consistent reasons why I see myself and colleagues choose a work environment. I’m also going to tell you what sends us running for the hills and why this is what’s most likely keeping a lot of employers from finding good retainable talent.
Let’s get the obvious out of the way. Developers are in super high demand, and they know it.
As a hiring manager you have to recognize you are looking for talent in a field with remarkable choice.
Rarely does a week go by that I’m not inundated with recruitment phone calls and emails. It’s so much that I have to have a separate filter in my inbox and a separate phone number that I use just for my resume.
I have to admit being in demand is a great feeling and I try to not be conceited about it. I remember being younger and unskilled. I couldn’t get a job if I begged. I also realize I’m not saving lives. I’m making cool stuff happen on a computer screen.
Perhaps there is some future drastic change in technology that makes me irrelevant, but for now I’m loving what I do and am simply happy to know that I’m marketable.
Most good developers like what they do, if not love it. They want to continuing liking it.
Why are there so many Github projects written by someone to provide solutions to incredibly complicated problems that they could sell, only to give it away for free? It’s simply because they enjoy doing it.
When you employ someone who loves their work you get so much more than a warm body in a chair. They will go above what is required. Their day doesn’t feel like work. In fact, often it’s something they would do even if they weren’t being paid. Github is proof of this.
Talented developers want to continue loving their jobs. They will look for a place where this continues. They will also leave immediately when this stops because they have so many options.
“I’m not running a playground. I’m running a business. I want to keep people, but I can’t afford to turn my office into a theme park”.
You don’t have to. Here’s my advice.
Be honest in everything you do. Be transparent.
In this industry, there is a lot of dishonesty. People and companies claim to have skills they do not to win business. I’ve often heard people say “just say you can do it and learn how later”. I NEVER do this.
I tell everyone what I know and what I don’t know. I can learn anything but will not lie about my skill set or claim to be an expert in a field because I did one small project once or took a tutorial. I don’t care what a manager says. “Don’t worry, we will manage the process”, “It will be a good learning opportunity”, “I know a guy who did a project like this and said it was easy”…….I’ve heard it all. Agencies are notorious for this. They are so desperate for work and scared at the uncertainty of making next month’s payroll that they take on any project. Often these are rescue projects or projects that have been passed on, and for good reason. Where does the stress of this land? On the developer of course.
I’m more than willing to take on unknowns. It’s where you often learn the most. I understand if someone requires an expert in a particular technology that I don’t have. No problem, go get them. However, if you can’t find this person, you have to plan for my learning curve and I’ll gladly rise to the challenge.
If you aren’t transparent in your dealings with clients, your employees see this and think “what are they not telling me?”. You’ve lost their trust if you’re doing business this way, and the stress of taking on panic projects will send them away.
Aim to have the most stellar project management and planning in the entire industry.
The MAIN complaint I hear from all of my colleagues. The one that sends every single one of them away is “the place I’m working for has awful planning”.
So many project managers don’t understand their relationship to the developer. Some of them act as client services, simply forwarding on demands from the client to the developer.
Good project managers are not handing out deadlines. Good project managers are constantly thinking “what can I do to empower my team to achieve their objectives”. They are on the search to eliminate all obstacles and serve their team, not be the boss.
— this part sucks, but a reality in software development.
I hate it when this happens, but a good project manager will go to the client and tell them when things are going to take longer than originally anticipated. They take it on the chin. They are a boxer. They never say “well I guess you are just going to have to work this evening and the weekend to figure it out”.
Projects are estimations, not hard deadlines that must be met no matter what the cost. A good PM knows that software development is a living, breathing thing that cannot always be accurately planned and they must get their client to understand this.
— “sounds easy. I don’t see any reason to call in a dev”.
On every single potential project, get your developers input way before accepting or giving an estimation. They are the expert. They have to build it. What they say is vital. You will miss things even if it seems easy to you.
— SOLD! On to the next.
Get control of your sales team. We all know sales is what drives revenue, but you can’t allow sales to make promises and hope it gets sorted out by operations.
If your project managers are being put in situations by sales to meet unreasonable deadlines the stress works its way through to everyone. Projects cannot be demands handed down from the top only to reach the developer at the bottom.
Don’t award “employee of the months”, “dress down Fridays”, “Donut Wednesdays”, and other meaningless “benefits”. Give employees what they REALLY want.
— Flexible leave. No not because people are lazy.
Time off is fantastic. It keeps me fired up when I come back to work and it often gets me through a tough week knowing a long holiday is just around the corner. I’d rather take unpaid leave for an extra two weeks than work overtime and get extra pay. I’ve had numerous options to work overtime and double my rate but turned it down so that I can spend time with my family.
There was a time, especially in the USA where I’m from, that no one would dare ask for extra leave. That time is over. The newer younger tech talent values their time off. I personally will not take a job for any price that does not allow me to rest properly. This does not mean by taking only the law mandated leave. The year that I’m writing this article I’ve had the most time off to-date in my career. This year I’ve also built the most software compared to my previous years. I am far more productive when I’m rested and know that I’ve got extended time off on the horizon.
— Continuing education. You can afford it, you know you can.
Smart people love to learn.
One of the greatest things to come out of the internet is the reduction in education. A current subscription to Pluralsight is thirty dollars per month. I can’t even begin to tell you how ridiculously cheap this is compared to its return in the tech market.
Subscribe to professional online training. Encourage the taking of courses not only in motivational emails, but in company time off to take them. Don’t say “fit it in when you have time”. There will never be time. Make it happen. Employees will utilize it if you pay for it and make sure they have the time.
OK OK, lets talk about what’s on everyone’s mind. Salary.
I’m not going to give you a number. Every skill set and market has its own value. If you don’t already know your salaries need to be competitive, than you are lost. What I will give you is something to never ever say to an interviewee, employee or freelancer.
— “Sorry our policy says….”
This is the cheapest of negotiation tactics. I now laugh when I hear it. “Sorry our policy only allows three weeks off per year, I wish we could do something else”.
When someone says “our policy says”, it’s a way of blaming something else, something that they have no control over. It get’s them out of taking responsibility for their decision. “If only there was something we could do, but our policy says”.
What are you going to do in an industry where a developer is worth twice as much a year later as when you first hired him? “Sorry our policy says we give maximum 8% increases”. ………..Your developer just got poached.
You made your policy, so change it. Better yet, get rid of policies. Don’t say the word ‘policy’ or put it in an email. It even sounds corporate, boring and old.
If you are a pain in the ass to work for, word gets out, and you will forever struggle to find good developers.
Would you believe that the reputation you carry with employees is just as important as the one you carry with your clients?
The software industry might possibly be the most vocal and well connected of any industry. We talk to each other constantly, online, through numerous social media channels and chat clients. We go to Meetups, share projects on Github and talk about the types of products we would like to build.
The one conversation we have more than any other is “what is it like to work with…….”, and we are brutally honest with each other. If you burn a bridge with a developer he tells others.
— Don’t forget to treat your freelancers well.
They have more contacts than you or your employees and will celebrate you or hurt your chances of finding talent immediately. Don’t abuse them because you think they are not your people and you don’t have to be as nice.
Pay them on time every time. I can’t tell you the number of times I’ve been warned off of clients because they had a reputation of not paying on time.
If you aren’t paying your bills on time, you are tarnishing your company name and most likely don’t even realize its already been trashed in the local community of good developers. Everyone talks.
The flip side of this is developers can tell everyone what a dream it is to work with certain clients.
I don’t try to keep good clients to myself. What goes around comes around. I love helping fellow developers get good clients and helping my clients find skills that perhaps I do not have so they can continue doing really cool things. It always comes back to help me.
Team Chemistry. Aim for this if nothing else.
I recently worked with a small team for a few months that did not necessarily have everything that I previously mentioned but was so enjoyable to be around that I actually felt sad the next Monday when I wasn’t in their office.
I learned so much from them. They had smart developers who loved technology and problem solving. We learned and laughed together constantly. I started playing hacky sack (although poorly). There was no pressure from management to work over time. We built cool products!
It is possible.
Smart people have smart friends. Hire smart people and they will help you. Educate them and help them to love working with you.
Now go get them!