One of the most important things for any business is to make timely decisions about hiring the right people. Small businesses in particular know that one bad hire can ruin their entire team’s productivity. If your business is related to information technologies and software development, most of your team will be software engineers.
For the last 7 years of my life, I’ve been continuously hiring software engineers for remote teams established by my company for our clients around the world. That’s why I won’t take away your time giving general advice on hiring. I’m going to share my own experience and some real-life cases.
The hiring process consists of several steps. Here are some tips for each step to help you avoid bad hiring decisions.
Job descriptions: send the right message
First of all you should realize your needs and write a description of the job vacancy. If you don’t have a clear idea of what employees are supposed to do, you will have a hard time finding the right person. You can compare recruitment to sales where you offer your company and the job vacancy. That’s why it is important to know everything about the vacancy and the ideal candidate because you are selling the job to the candidate. Be aware of your market: the job description should correspond to a candidate’s CV. In most cases it’s impossible to find an Oracle database administrator with excellent knowledge of WordPress, or to find C++ developers with experience in all desktop and mobile platforms.
Another concern is seniority of a candidate. Very often I hear from our clients that they are looking for only senior software engineers to build a dedicated development team. Why? Because they are looking for the best developers. But is the seniority (i.e. years of experience) the only valuable metric to consider a candidate by? Don’t close the door on real talents.
So, the first step is: identify your ideal candidate, write an attractive job advertisement and start looking for a matching CV.
Planning an interview: ask the right questions
Create a questionnaire and evaluation scorecard that can be used to grade and compare the performance of candidates on a series of criteria. See the example below:
A questionnaire should always be tailored to a job description. Avoid asking questions that are too generic and not related to the opening. If you are looking for a WordPress expert the common questions about objected-oriented design are not as significant as in case you are interviewing a senior Java programmer or a Magento developer.
Give strong preference to practical questions. Ask the candidate to solve a problem and write a piece of source code. I have a laptop with standard working environment installed and a set of tasks which I offer to solve during interview.
Interview: discerning true value
The technical skills and years of experience bring only half the score to your evaluation scorecard. The other half is on how well a person fits in with the rest of the team and his/her personal qualities. At the very least, you and your interviewing team need to like a candidate. Inattention to this aspect can cause a very large problem in the future when you suddenly realize that the members of your team do not collaborate with each other as expected and you don’t know how to fix it.
Personal qualities are also very important. It’s not a big problem to learn a new framework or a library if you have a strong technical background, but it’s almost impossible to master if you don’t want to do that.
I look for people who are:
- goal-oriented. People need to fully commit to the final goal and do whatever it takes to finish a project.
- not afraid of uncertainty. Uncertainty is the biggest challenge when you create something new. Engineers should be able to make assumptions, ask the right questions and reveal the risks in order to create a plan and unblock the process.
- cooperative. Greater accomplishments cannot be achieved alone. People should be willing to help each other.
It’s rather hard to determine personal qualities based on a short interaction such as an interview, especially if you are not a certified psychologist. But fortunately, you don’t need to do that. Our life experience has taught us to trust (give preference) to people that are more like ourselves and those that we tend to like. So, just trust your gut feeling.
Avoid standard culture-fit and personality-type questions. We all know the typical interview questions like ‘Where do you want to be five years from now? What are your strengths and weaknesses? Tell me about yourself?’ Don’t be a cliche. Initiate a dialogue with a candidate and try to understand if you like this person.
Engage the team
When you do find a candidate who looks promising, get them to meet with the right people within your team. If the team is engaged in the processes of interviewing and discussion of candidates, they will be more committed when the time comes to review the performance of a new employee at the end of a probation period.
It is a great idea to create an interviewing working group. This group may consist of a direct supervisor, i.e. a project manager or a team lead, a tech person who is really proficient in the necessary technology stack, an HR manager or someone who understands the value of soft skills and personal qualities.
Hire slow but don’t blow your opportunity
As a matter of fact, there is a shortage of experienced and talented software engineers in the world. That’s true for Ukraine, too. The average time we usually have for a decision is about 2-3 weeks after the first interview. By then, the candidate will most likely have accepted an offer from another company, if not, probably, he or she is not as good as you had expected. That’s why it’s so important to have a clear and detailed job description: you need to find a candidate who fits all your major requirements, and whom you and your team like. You don’t need to see all the available candidates, you need the only one. Don’t waste your time and miss a good opportunity to start with the right one because you decided to interview a couple more.
Good employees lay the foundation of a company’s success. Hope my advice can help you in building a strong development team in the way that will save you time and any unnecessary hassle.