If you are a small business and interested in hiring software developers but have no place to start, I'm going to provide a few pointers. I'm sure others will have alternatives to this process but here goes...
1) Start with your network. Do you have mentors or peers that can offer you some advice? Do you know other business owners who may be able to offer you some resources, namely a technical person who can assist in interviews?
2) Place an ad. Be upfront about what the position entails. Be upfront about the positional level, i.e. junior or senior. Be upfront about whether the position will have to support hardware as well.
3) Develop a technical interview. This should be a list of questions to ask any interviewee about the software in use in your business. Cull the questions from the internet or the first two pages of any chapter in a technical book. These should be softball questions, that any candidate with more than one day of training can answer. The subject areas should cover where your business is today in software and where you want to be 1 or 2 years out.
4) Review resumes and cover letters. Anyone applying for the position should take the time to build a cover letter that specifically addresses the position advertised. Resumes must display some form a narrative, rather than a barrage of acronyms. Resumes should be less than 3 pages.
5) Via email, schedule short technical interviews that consist of 2 questions from each major subject area. Be very clear that it is a technical interview only and is a precursor to scheduling more in depth (and in person) interviews.
6) Conduct phone interviews. Score each candidate solely on whether they know the subject matter or not. Scoring is simple yes or no, there are no shades of grey during this round of interviewing. Candidates should not be judged on communication skills or experience level in this round. Top 2 or 3 scoring candidates should be invited to second round of interviews.
7) Via email or phone, schedule complete technical interviews, preferably on site. Make it clear that the interview will consist of both technical and formal questions. Be sure to invite one or more non technical staff to participate in interviews.
8) Conduct second technical interview. Ask candidate to complete an application. Start formally, asking a few questions about candidates history, ability to manage multiple deadlines and what they know about your company. Technical interview should cover all of the questions not previously asked. Judge responses more critically in this round. Can the candidate admit lack of knowledge? Can the candidate communicate technical matters effectively? How do they respond to stress (i.e. inability to answer concurrent questions)? Immediately following interview, seek first impression(s) from non technical staff regarding the candidates ability to communicate, keep conversation on track and maintain their integrity.
9) During the next business day, follow up with non technical staff. Ask if they think the candidate will fit in well with existing staff. Ask if they think the candidate can adapt to future business needs. Ask if they think the candidate will continue to improve their skills.
10) Strong candidates should have their application reviewed thoroughly. Are the salary demands in line with your budget? Do reference checks substantiate your impression of the candidate?
11) Make the job offer. Be willing to negotiate. Do not be afraid to walk away from a candidate if their demands become unreasonable.