When recruiting developers, it's easy to fall into the trap of thinking that money is what brings in the best and the brightest. After all, developers tend to receive paychecks a bit beefier than other professionals with similar levels of experience and education. But at the end of the day, it is often the non-financial rewards that attract the top developers — and that's almost always what keeps them on staff. Here are some ways to entice and hold onto first-class developer talent.
Note: This information is also available as a PDF download.
Very few companies invest in their employees. Part of the problem is that employee benefits tend to be available to all employees, regardless of the department. So it is considered better not to offer education benefits to developers than to have to offer them to all workers across the board. Unfortunately, developers don't quite see it that way. It is a poorly hidden fact in the industry that developers are expected to learn new skills at their own expense and on their own time, not while on the clock. No one would run a factory and expect the plant workers to learn the safety rules at home, so why does the IT industry expect it?
In addition, developers are in a constant race against the obsolescence clock. Sure, some developers with outdated skill sets might find work maintaining a legacy piece of code — but they might not. Put some money into keeping your developers up to date, even if you don't plan to make use of those skills, and your staff will be a lot happier. Not only will they know you value them, but they will be less likely to jump ship for a job that gives them the chance to stay fresh.
#2: Work/life balance
Many developers work a lot more than 40 hours a week. Indeed, a lot of them do it without being asked. The flip side is that they sometimes need some flexibility on their employer's part, too. Let's get real: If someone works 48 hours a week for six months, and then 60 hours a week for the last six weeks of the project, do you really need to deduct it from his vacation time if he wants to take a half day to see his kid's baseball game? Would it kill the department or hurt the project if he took a few days off for no good reason at all?
If you suddenly start to enforce the time-off rules after pushing your team hard, employees will start to wonder if you have a heart at all. Give your people some time off, even if it delays a project, when you see burnout is approaching. It costs tens of thousands of dollars to recruit a developer, weeks (or months) to integrate the new developer into a project, and so on. Missing a deadline by a day or two to make sure that your team stays together hurts a lot less.
#3: Relaxed environment
How often does your team see customers face to face? Probably not too often. So why are you enforcing the dress code? Developers tend to be less happy adhering to certain rules of professionalism, such as hair and beard length, dress codes, office decoration standards, and so on, than other employees in the firm. Giving them a bit of leeway (within reason, of course) will cost you nothing and help keep them content. This also applies to things like personal calls, the timing of breaks, and so on. I have yet to meet a developer who likes to work in a factory environment, with scheduled breaks, no calls allowed, etc.
#4: Professional development
Professional development is more than education. It can range from allowing developers to spend a few hours a week on a personal project with new technologies to letting them try their hand at a different job. Would you rather see your career-minded employees trying on a new job title or learning new skills while on your payroll or on someone else's? The IT industry is fairly fluid, and many developers want a true career path, not just the road from developer to senior developer. Give them that path and you can recruit and keep them.
#5: Free food
I know that this sounds very "1990s dot-com bubble." But some good ideas came out during that era, and one of them was free food. Many developers work through lunch. It is a well established fact that even a momentary distraction severely hurts productivity. I am not suggesting that you chain your coders to their desks and stuff their faces with gruel. But making a healthy, free meal available to those folks "heads down and in the zone" will keep their efficiency and morale up. And let's be honest, for what it costs to keep a good developer on staff, how much can it really hurt your budget to throw a pizza or hoagie in there once in a while?
#6: A career path
Some developers have no desire to ever go past senior developer. Others look toward architect or project manager, or some other job title, as their career goal. Regardless, an employer that helps its developers meet their career goals, and makes it clear that progress is being made, is much more likely to retain its employees. A lot of companies talk a great game in the interview about how they "help their team achieve their dreams." But looking at how some companies treat their people, it's easy to see why folks get cynical about that promise. When putting your people on the career track of their choice is something you actively work to do, your people see it and are much less likely to leave. After all, why leave for a promise, when the current reality looks pretty rosy?
#7: Top-of-the-line tools
Maybe it is a bit of a cliché, but developers and other techies really do like having toys to play with. Spending the extra few hundred dollars to buy a high quality workstation as opposed to an economy model business desktop will make your coders feel valued and special. Give them the new gadgets they crave. Candidates who see that you give your teams serious tools will take you seriously. Even better, this is an expense you can justify; compiling code, performance profiling, and so on, all chew up huge amounts of CPU power and RAM. Buying that fast computer saves your people time, which in turn results in higher productivity.
#8: Physical work environment
No one likes to work in a place that looks like a dump and has all the charm of a dungeon. The candidates you interview have probably been in a few offices (or currently work in one) that look really nice: Aeron chairs, polished conference tables, frosted glass, and brushed nickel. If your office features industrial remainders carpeting, mismatched chairs left over from the 1970s, and a cubical farm of 6' x 6' workspaces, they're not likely to be impressed. And it's not just about looks. Many upgrades truly improve ergonomics and productivity through encouraging better posture, reducing eye strain, and so on.
There are so many reasons to welcome candidates into a pleasant office. For one thing, first impressions really do matter. For another, candidates who see that you refuse to pay more than $20 for a chair will wonder what their bonus will look like. Once someone gets onto your team, a nicer and more ergonomic work environment helps retain them. After all, if someone gets blinding headaches from cheap fluorescent lighting every time he comes into the office, he will eventually stop coming to the office.
#9: A great project and a winning team
Just as a top athlete will demand to be traded to a championship-level team, the very best developers are generally searching for the very best projects to be on. In sports, when great athletes go to a team that is doing badly, they were probably either offered a huge pile of money or lured in with the promise of heading up a "new era" for that team.
For you, this means that to get the very best developers, you either need to have a great project and a winning team or you need to pony up the big bucks. No one likes to play for a loser or with a bunch of losers, and those "top draft picks" have alternatives. If your project is struggling or if the team is floundering, don't hide it. It takes only a week (or less) on the job for an outsider to smell the rot anyway. Make the situation part of your sales pitch. Saying something like, "Our project is having problems because the team is a bit inexperienced. We would like someone like you to provide that senior level quality and help make this a world class team" can attract and keep the developers that the salary you are offering would not bring in.
#10: A challenging job
It may sound really crazy, but few top-tier people in any profession like working in an unchallenging job. Morgan Freeman does not act in B-films, and superstar developers don't spend their time writing "Hello World." After all, they didn't become great by staying within their limits, did they? When you show your candidate (or give your employees) a job that challenges them, within reason, and gives them a chance to learn new things and grow, they are likely to overlook the alternatives. Tell the prospective candidates why the job will be a challenge, and they will leave that interview already savoring the thrill of victory when they meet it. Show them a job that any entry-level person can handle, and they will wonder how long they will be there until they are replaced with an entry-level person.
Justin James is the Lead Architect for Conigent.