What I want to do here is to offer the perspective of a developer after quite a few years in the field. I’ve been searching for a good company to work for all the time. I have done numerous interviews and applied to lots of jobs. Now it’s feedback time. A developer’s feedback that is. I will use some personal examples to illustrate my stories, hopefully they will help someone.
I see this coming up more and more often. Businesses complain they can’t get good developers and when they do find some, they don’t stick around for too long.
Recruiters complain they don’t find enough candidates and it’s very difficult to fill roles.
Is it a developers shortage ? Or is it something else ?
These days how a company behaves is very important. If you are a company looking to hire, you need to realize that developers talk. The good ones will research you and see what people say about you. They will talk to people who worked for you in the past or work for you now. They will look at your website, check out your clients, check what you build and how.
Once you have a bad name in the community, you’ll find it very difficult to hire anyone, except people who don’t bother to do their homework.
How to get a developer
We all know the tried ways of finding developers, right ? Ads on job boards, recruiters, newspaper ads.
This is pretty much the past. These ways don’t work as they once did, if they did you would have no issue finding developers.
My firm belief is that networking will help here.
1. Jump on LinkedIn or any other place you know of that is likely to house developers.
2. Start searching, once you find some names, aim to build a relationship with these guys ( or gals ! ).
3. Send them a message, tell them what you need, tell them what you can offer them and see if they are open to discussion. If they’re not, maybe you can keep in touch so that when they are looking they will come to you first. Be careful how you nurture this relationship, you want them to remember you in a positive manner, not to avoid you like the plague. Maybe you can have a coffee every now and then, you get the idea.
The point is that good developers have jobs, a lot of them have good jobs and they’re not going to be available when you contact them.
A lot of them are comfortable where they are, it may not be perfect but they’re used to it. In order to attract them, you need to stand out from the crowd. Do what other companies don’t. Think about it. There are companies recognised as very good places for developers. Everyone knows about them, most want to work for them. Not everyone can be Google, but there are certain things a business can do to attract good developers, and KEEP them.
This brings us to the next point.
Ok you got me, but how do you make sure you keep me ?
It would be great if you would understand that your job hasn’t finished when you hired someone. No, the hard work barely begins. You also need to be sure they stay put. What can you do, as a business to make sure you keep your people especially those that know what they’re doing ?
This is quite a big subject but let’s give it a go. A lot of companies ask what a developer is making, add an extra 1 or 2k ( add your local currency here whatever it may be ) to it and that’s it. They think their job is done. If you do this you will not attract the right crowd. The good guys, in UK at least are on £40-45k or more. An extra 2k means nothing. What this means is that you cannot offer market rates alone. These guys will be on market rates already. So by putting a top limit on what you can offer and advertising that, you’ve just ruined most your chances of finding someone. Developers will look at what you offer, think, I am on that or more than already so let’s move on. Now if you build relationships and get people in without going through recruiters, this means that you won’t have to pay the huge recruitment fees so you can offer more to someone you want. See how that works out in your favour ?
Once you managed to hire someone, now it’s time to plan how you will keep them. The painful point for a business is this, you need to understand that developers are a hot commodity. This means you cannot put them in the same category with everybody else. I remember a few years ago I was working for a specific company. They wanted me to build them a new website / platform. I did that in a few months, then review time came. During the review I was told how happy they were they hired me, that I was the best choice and they really wanted me to stay. But they told me they could not offer me a pay rise because I hadn’t been with them long enough. One month later I had another job offer for about 30% more and I was gone.They hired another guy, offered him almost the same the new company offered me, so quite a bit more, then they paid the recruitment fees as well and guess what? One year after that, the new guy left as well.
Morale of the story, if they offered me a nice pay rise for what I did, I would have stayed put and they wouldn’t have had to go through the process of waiting for the new person to learn what I did. This is a point that many businesses refuse to consider. It is very expensive to replace someone. First they lose the knowledge of what they already built. Then they lose the business knowledge accumulated on the job. Then they have to hire someone else, then pay the recruitment fees, then wait for the new person to learn enough to be able to do the job properly. This process is extremely expensive so would it not make sense to do your best to keep your people ? Let’s look at this in-depth next.
Ok so I want to keep you, what can I do ?
The first piece of advice I can give is to be proactive. Good developers are always courted and will always be offered opportunities. So, you need to stay ahead of the pack on this one.
In order to do that, analyse what the person is doing and the results of their work. if they help your company grow and make money then you want them to stay. So every year offer them a nice pay rise. Oh my god I cannot afford that, is that what you are saying ? Well then how can you afford to hire someone else AND pay the recruitment fees too ? Think how much it would cost to hire a new guy, take half of that and offer it as a pay rise, it makes much more sense than losing someone you really want to keep.
What you try to achieve here, is to make your company stand out. You want your guys to go out there in the wild and tell others how great their employer is. You want their friends to come work for you, direct and then you save money. if someone brings you another developer, then reward them for that. That person has just saved you quite a lot of money so the least you can do is show some appreciation.
Developers are funny beasts. Most don’t like suits, heck I don’t even own one. Most like to feel comfortable so if they want to come to work in T-shirts, why not ? yes you are a business and your image matters, but these are not the guys that go out there promoting you most of the time. They are the engine that makes your company run and if they are a a little … oily …. so what ? Leave them be. Some like to listen to music while they work. That’s fine too. It helps with concentration, it mutes all background noise, phones, chit chat and makes us more productive. I suggest you do a bit of research into the true cost of interruptions for developers. I suggest you start by reading this excellent article on the subject.
Next, make sure your developers have the best tools money can buy, an MSDN subscription, decent hardware to run on, lots of memory, multiple screens. Yes having multiple screens is not a luxury, but something really needed.
Try to understand what it means to be a developer. Our field changes on a weekly basis. New frameworks and technologies appear all the time. Products get new versions every few months. We have to learn all the time, just to keep up and even if we do learn all the time, we can’t know everything. So show a bit of respect and understanding and help us get better. If we get better, your business benefits, if we know more, we can choose better solutions for your problems. So let your developers research, maybe even send them to some technical conferences every now and then. It will work out in your benefit anyway.
A very important point, this is something I have been subjected to myself not long ago. The owner of a company had a very annoying habit of asking why do things take time. His firm belief was that everything is easy. The guy did not believe in testing anything, did not believe in planning anything, loved to change his mind every few days and add new “features” all the time, while expecting the time to develop to remain the same. In addition to this he thought everything was simple because 15 years ago he managed to drag a button on a form and something happened when he clicked it. After that he thought he was a developer and knew what he was talking about. You think I finished ? No, the guy was a control freak as well and loved to micro-manage.
Let me tell you, there is nothing more annoying than such a manager/ boss. No offence intended here, but we do not tell you how to run your business and how to manage your people, so don’t tell us how to do our job and most importantly do not diminish what we do because you think it’s so easy.
No, what you want is to trust the people you hired to do the job, manage themselves as they see fit and you stay out of the way. No one says you should not have any input, but its a far cry from trying to micromanage everything. Make everything a dialogue, let us manage the technical bits and make it easy for us to do our job. That’s what we want not to be micro managed.
Finally take a personal interest in your developers. Find out what makes them tick, what do they want from their career and if there is something you can help with, then do it. Find out what will it take for them to stick around a while longer. maybe you can offer flexible hours. maybe you can let them go home earlier on a Friday. Maybe they can work from home every now and then. Maybe, if they help you be successful, maybe you can give some of that back to them. People are not going to feel invested in your company, if you do not offer them something in order to feel that way. If someone does overtime, then appreciate it and either pay them extra or offer time off in lieu. Understand they’ve gone the extra mile, now it’s your turn. Make it a two way street basically, don’t just expect people to do things for your business.
Think what is the rule number one in business ? That’s to offer something no one else does. Why don’t you apply the same when it comes to your developers ? Offer something other companies don’t. Then people will have a reason to come to you I am sure there are things you can think of which won’t cost you much but may make a world of difference to someone.
What exactly are you after ?
Most companies have a list of things they are after. If the developer they talk to doesn’t know some of them, it’s all over, right ? Wrong. There are a lot of technologies out there and we cannot know everything. What we know depends on the needs of our current employer and our personal interests, because some of us study things in our own time.
Think what are you after ? You should hire for attitude and aptitude. That means hire people who are happy to learn and keep learning. If they have a track record of delivering things, that’s what you want. Any specific skill can be learnt on the job. I will give here another example. Last year I had an interview with this company. Among their long list of skills, they had technology X. I had no experience in that, I even mentioned it from the first contact but also mentioned that I am happy to learn it and it won’t take me long. Then we had the first interview. The guys prepared a list of questions, all of them on that one technology. I told them, look I already told you, I don’t know that, but I am happy to learn. Even so, the guys kept asking their questions, on the same topic for half an hour until I got frustrated. The result ? They are still looking, because they couldn’t comprehend that we are more than the sum of what we know at any point in time. Don’t be like that. Hire for attitude first, knowledge will come anyway, especially for someone with a track record of learning new things on the job.
We’re finally there. I hope this can at least shed some light and maybe it will help bridge the gap between companies and developers. We need each other so if we understand each other a bit better maybe things will get better. Please let me know your feedback, I am very interested to know how others feel about this “hot” topic.