Hiring software developers takes a lot of time and effort and can be very complicated. In this article I will outline a simple, three step approach that many companies have used successfully.
The goal of this step is to filter out candidate that aren't even close to what you're looking for, without spending the time of your developers. First, scan their resume to make sure they didn't apply for the wrong job. Next put them through a quick automated test. Services like hirebooth.com, recruitcoders.com or codility.com work well for this. These service ask the candidate to solve simple coding problems and automatically grade the results.
The purpose of this step is to dive deeper into their technical ability. This step will be performed by one of your developers. Your developer will talk to the candidate on the phone and watch them write code. This step will take at least one hour. By the end of this step, you should have a pretty good understanding of where the candidate's technical abilities are at.
This is the most expensive and time consuming step in the process. You'll want to ensure the first two steps were performed well. In this step you are looking for team fit, personality and further confirmation of their technical abilities. Typically it involves having several developers spend an hour each (often in groups of 2-3) in a room with the candidate. The sessions will involve having them write code and solve problems similiar in nature to those they would face on the job.
The first two steps in this process are essential to an effective interviewing process. Without them you will frustrate your developers and waste a lot of their time on low quality candidates. You are also likely to lower your standards and end up with a less effective team.