Whether you’re running your own company, looking for people to help you with a side project, or hiring additional talent for the company you’re currently at, you want to make sure that you find the right people. It’s a task far easier said than done. If approached in the right way, though, you’ll find people to help propel your ideas forward.
Most of the points in this post can be applied to any field. I am just focusing on software development because that’s what I know.
I hear time and time again that finding the right people for a tech company is borderline impossible. That is a complete lie, though I’ll agree that using “traditional” methods of hiring doesn’t work too often with developers.
Finding Good Talent
Step number one: stop relying on job boards. If you’re going to use them, at least use developer-focused boards like Stack Overflow’s Careers. And did you know that there are places where developers actually group together, many of them potentially interested in new jobs? They’re called user groups, and they are usually very open to companies coming in and saying, “Hi, we’re Company X, and we’re looking for one senior Y developer.” If you’re local to the Twin Cities and looking for a Rails developer, you would probably have great luck stopping by one of the Ruby.mn meetings.
Step two is getting rid of recruiters. I can’t even count how many times I’ve spoken to a recruiter who knows nothing about development: “I am helping a Fortune 500 company find a senior developer! It appears you have an extensive background in PHP, so I think you would be a great fit for their Cold Fusion position!” At best these people only slightly irritate me. At worst, they make me promise myself to never work with whatever company they’re hiring for. If you already have a few developers working with you, offer a small cash bonus if they find additional talent. They’ll be able to more accurately judge the skill sets of other developers, and you potentially save money. (I’ve seen how expensive recruiters can be.)
There’s also the challenge of making your office/workspace/command center developer-friendly. Currently the number of developer jobs far outweighs the number of good developers, so someone with a lot of talent can afford to be picky about where he/she ends up.
I’ve worked at past jobs where they care more about your rear being in a seat from 9-5 than the quality of the code you produce. If you focus on someone’s rear, you’ll get a wonderful 40 hours a week of sitting, but you’re not necessarily going to get good code.
Development is an art form. This is why a developer will often grab a cup of coffee and just sit thinking for a while in the morning. “The code I’m going to write today… I’ll need to make sure I account for 418 status codes. Oh yeah, I’ll also have to make sure the user can upload multiple files instead of just one at a time.” Code is often written and rewritten several times in a developer’s head before it gets typed out into a file. Sometimes the proverbial lightbulb comes on at 7:30pm, after a nice dinner accompanied by a milk stout. If you demand that your developers work from 9-5, at 5:01pm they will be officially checked out. If instead you allow some fluidity in a developer’s work schedule, they are much more likely to take that evening idea, jump back on their computer, and produce quality code.
That’s not to say that you should allow 20 hour week works or accept people to work only 2 hours a day. I am simply advocating that a company be flexible with its ‘when’ and ‘where’ of the code writing. If your response is, “I can’t trust my employees to work when they are outside of the office,” then I ask: If you don’t trust them to do their job unsupervised, why did you hire them in the first place?
On a somewhat related note, arm developers with tools to help them succeed. If you give a developer a desktop, it keeps him/her physically stationary. “But you can work on any computer!” is something a non-developer would say. That’s like saying a mechanic can work in any garage, ignoring the fact that there is likely a completely customized workbench layout with years of tools accumulated and placed precisely where they fit best. Making sure your developers are armed with laptops allows them to be physically mobile and gives them the ability to take their technological tools with them everywhere they go.
I also know that some developers heavily prefer their own computers over anything bought for them. I have seen several companies that allow the option of a “hardware stipend,” and they’ve had good results.
Playing with new programming languages is fun. Passionate developers like to experiment with new languages. If you encourage them try new languages for projects, two things will happen: 1) they will increase their existing skill sets, making them more valuable as employees, and 2) their happiness will increase, usually resulting in them staying around for a long time. It’s been known for a while that Google has an 80/20 policy, where 20% of an employee’s time can be put toward things he or she finds exciting. And guess what they got out of it? Gmail. One of the largest email services to date. Give your employees a little freedom, and an idea they have might be the spark that ignites something awesome within your company.
The hardest part about finding passionate people is having passionate products to work on. If you’re working on “the next Facebook,” no one is really going to care about it. On the other hand, if you’re working on a realtime zombie survival app, you will probably get a few developers knocking on your door saying they’re interested in working for you.
In short, take your products, skip the recruiters, and look for talent at local meetups. You’re much more likely to find someone who will be excited to work alongside you, and enthusiasm goes a lot further than lines of code these days.