How To Hire A Software Programmer: Complete Guide
I’ve been working in an outsourcing software development business from a vendor side for many years and on some projects, I have to be involved in the process of team augmentations as an account and overall control manager. Usually, this new staff (mostly software programmers) is going to be a part of existing dedicated teams or such programmers are planned to be the core of new teams.
My experience is connected with creating/augmentation small/medium sized teams (from 2 to 25 people) where direct project management and technical leads (employees of clients) are sometimes situated overseas. This peculiarity (remote and overseas manager who approves final candidate in the team), requires specific approach for the exact hiring process and this article is aimed to provide some tips and tricks how to organize it in an effective way.
If our internal personnel resources are not enough to satisfy customer’s needs we usually hire programmers from our job market. To simplify the overall hiring process and get a better result I usually divide hiring into three important parts: Preparing and Screening; Interviewing; Hiring.
PREPARATION AND SCREENING
The main goal of preparation is to make sure that your outsourcing vendor understands the vacancy and knows everything about it and can imagine the best candidate for this position (according to skills and salary package requirements) - this will help to find a perfect candidate.
In order to increase the number of quality candidates and decrease the number of irrelevant ones vendor’s recruiters should prepare the most detailed, attractive (but, of course, honest) description of the vacancy and working conditions. At least the following information should be provided in a clear and understandable way:
- Information about the vendor, its location; optionally about you as a client.
- Project’s details – every project has its own history, perspectives, and advantages… It is important to mention its duration, age, to give some links if it's possible. Even if it is just support of old system (usually it is not sexy work, but some people love it – make support and do not care about more responsibility-demanding activities).
- Potential candidate’s role at a project and working responsibilities, functions – vendor should pay attention to this point, it is really important to provide exact and true info about the position. It should be mentioned if the project assumes any career growth in perspective, any business trips or other benefits.
- Project team – who are they? It will be great if a newcomer will consider them as a great team!
- Benefits and Perks of vendor’s social package.
- Ideal and Must have skills, education, level of English and required years of working experience etc.
- Salary level.
If you provide detailed information on each point you will get a lot of CVs. If you get a low number of CVs it means that either your Recruiting team is not performing well enough or there is something required to be fixed in vacancy description (like in the picture below) to attract more candidates:
Anyway, with the low or high number of CVs, the next step will be - SCREENING.
The main goal of screening is to make sure that your outsourcing vendor doesn’t miss any potentially suitable candidates.
Screening a lot of CVs looks like a very simple process, but actually, a lot of people are making mistakes in this most important initial stage. The common mistake is in conclusion for the definition of an “ideal” and “non-perfect” CV of a candidate.
"Ideal" CV means that candidate has a lot of required experience, references, text in CV is divided into logical blocks and everything in general looks perfect. When getting such a CV the first desire that appears is to hire this person immediately. Please, keep calm, because sometimes it means that either:
- Candidate used someone who helped him with fulfilling CV (real programmers do not care very much about formatting text in CV).
- Or candidate has already visited many companies and is trying to create a better CV to improve his chances at the next interview.
In any case, it is better to double check all skills, experience and career steps mentioned in such CVs. I had a bad experience with candidates with “ideal” CVs, so please pay serious attention to this point.
“Non-perfect" CV means that candidate does not provide a lot of details, usually, it is a maximum one-page list with a very laconic description of his (her) working career, skills, and experience. Sometimes such CVs does not pass first recruiter’s filter. That is not good because there are not so many good programmers who can describe their skills the way recruiters like it. That’s why you have to pay additional attention to such CVs and if you see that candidate could be appropriate for your project, do not idle to review such CVs more accurate and get more info from the candidate. Believe me, sometimes you will be surprised with the performance of people who had “non-perfect CV”. Though some CVs still should be passed on – like on the image below.
After your outsourcing vendor has fulfilled Preparation and Screening stages, he definitely has to ask his recruiters to speak with selected candidates over phone/Skype to check:
- Candidate’s communication skills – if required English also.
- Candidate’s adequateness, personal qualities and motivation.
- Candidate’s personal opinion on the experience of some key technologies used in the project.
- Possible terms of the start.
- Preliminary level of requested salary.
That is a finalizing process for two previous steps. All the received info will help your outsourcing vendor to create the initial profile (at least in his (her) mind for each potential candidate and compare how it is correlated with his (her) expectations. According to my practice, if at this stage candidate has at least 50 % of similarity to the "ideal" profile, he (she) can be moved to the next stages. You can ask "why only 50% of similarity", the answer is simple - the candidate has passed just screening process, and you never know how a real person will perform at the following stages and whether you find better candidates or not. Correct Preparation and Screening process will definitely increase the chances to get a lot of quality candidates.
The main goal is to make sure that the candidate is fully suitable for your requirements for the project or at least he (she) has the good potentiality to improve required skills in the shortest period.
To make the process more effective and less time consuming for our client we use 2 steps of technical interview scenario:
- First step - all the actions being fulfilled on outsource Executor side (on our side), such as seeking for people, screening them, preliminary and technical interviewing.
- Second and final step is done by our client, who receives just A FEW best candidates from tens screened and who can carry out full technical (based on results of the first step) or just general interview (checking some critical things like a degree of matching with the team on client’s side, communication abilities, level of English etc.).
Usually, I initiate the first step after I’ve completed to build a candidate’s profile and got all the needed clarifications from recruiters and clients. Time is really important and your vendor shouldn’t wait for CV’s of different candidates. They should work with CV’s one by one as they come from recruiters. Before I arrange technical interview I call each candidate via skype or phone to have an “overall discussion”. The main idea goal of this action is to communicate with a particular candidate, present a company and project to him (her), arouse additional interest and check his (her) adequateness (personal qualities etc. In any case, it is really a good gesture when someone from team management (but not Recruiters) takes an initiative to talk directly with a candidate in an informal way and candidates really appreciate it.
It takes some time, but it’s just 15-20 minutes via skype or phone and final result has a huge effect - candidate is intrigued much more than from conversations with recruiters and really awaiting for the following steps.
Next step is the technical interview. Usually, I prefer to do that in live mode - we invite a candidate to our office, meet and greet him/her with our technical interviewers (they could work together in the future) and interview him/her technically. This approach works perfectly but has one negative moment – it takes a lot of time as sometimes tens of candidates can be interviewed before one rock star will be found.
In order to save time of valuable tech specialists it might be a good idea to arrange preliminary technical interview (10-15 min) via skype/phone where it will be discovered whether it is worthy to invite a candidate to the office and spend 1 - 2 hours of tech people interviewing him/her. If this idea is explained properly, candidates will fully agree with it, because this procedure saves their time also and technical people’s time is really expensive in our world.
We remember that programmers are hired into your team (as a part of your dedicated team) and a good gesture from your outsourcing vendor is to inform you on time about updates on the results achieved. I usually send an email to my client with presenting no more than 3 CVs of candidates interviewed and selected by our tech team + short comments on each candidate. If there are more than 3 CVs I prepare an Excel list with Pros and Cons of the candidates. This informative and easy understandable email will make the choice who should be interviewed by your team as easy as possible. This interview will be conducted using Skype, Google Hangout or any other service for voice conferences.
It will be a good idea if your overseas technical team will be informed by your vendor what kind of questions (in one page list) the vendor has already asked the candidate and what were the answers (pass or no pass). That will really help you not to spend additional time to check the same things.
The main goal here is to make sure that all of the previous efforts will lead to the positive final result and you will not lose your “ideal” candidates, otherwise it will take time/efforts to find new ones.
In case you see that one or a few candidates are suitable for the project, you can ask your vendor to prepare a personal Job Offer. The most important thing is describing calendar terms of Job Offer acceptance (usually it is about 2-3 business days). This moment will discipline candidates on providing their fast response on Job Offer acceptance or decline. You can ask why the terms of accepting or disclaiming are so short? I insist that in case the candidate you’ve chosen has passed so many steps and he/she is still on your availability, it will be easy for him/her to make the final decision.
Also, the process of making Job offer is very important. It can be a final personal meeting in relaxing and friendly atmosphere in the vendor’s office where a person who is in charge of this exact position will present the Offer accompanying it with some inspiring message. The Offer can be sent via email, but you or your vendor should inform your candidate via phone and explain him/her that he/she was chosen as the best candidate and so on and so forth. Sometimes you like a candidate but you feel that for some reasons he/she will not accept your offer (for example a project is not so suitable for him/her, or proposed salary package is not fully suitable to the candidate’s expectations). In this case, you can make a Job offer to several candidates simultaneously and just wait who will accept it first - in this case, you need to clarify to the candidates that offer was made to several people and the best candidate will be selected from those who agree.
I can mention that you/your vendor can combine the approaches described according to your wishes. The most important thing here is to have the fast and effective process to hire proper and qualified programmers. And hope your vendor won’t forget to inform the candidates who will not have passed your selection steps. Who knows, probably a couple of weeks/months later you will interview them for a different project and they will fully suite it.
As final words, I wish you all the best when working with outsourcing vendors as like in any business it is a partnership of 2 companies where both depend on one another in order to achieve their business results goals.