In this post I will share my view on how to interview someone for a job and more specifically for developer, programmer or DBA roles and I will also provide links to questions and answers pages (SQL Server : SSRS, SSIS, SSAS, T-SQL, MDX)
I have come across many times that the job spec was inaccurate, out of date, misleading or didn’t describe clearly the job. Let’s list consequences of poorly written job specifications:
- You can get much higher number of "not suitable" CVs which you have to review
- You may not get candidates that you are after!
- It may take more time to recruit someone (especially important if you need someone urgently)
- Candidates may adjust their CV to suit the job (hide potential strengths). Which is actually good practise as they can reveal relevant experience and focus on it during face-to-face interview (or telephone/video interview)
- You may accept a candidate who is suitable for job spec but not for the job
- You have a risk of accepting a candidate who can say during early days (or a bit later)… this job is not what I expected (career goals)
So in summary poorly written job spec can be a waste of time, money and ads risks.
Before going into details what a job spec should contain let’s discuss benefits of having well written job specification:
- Maximizing chances of getting the best candidates (not CVs).
- Much higher rate of good CVs – this usually also means fewer CVs (only suitable ones)
- Candidates are more aware for what they apply for and can make conscious decisions (apply or not to apply)
- Potentially shorter recruitment process
- Candidates may stay for longer if job spec matches reality.
Take some time to prepare good job specification.
Focus on important aspects
Focus on the most important aspects of the job and skills required to do it. Usually giving some % estimations is a good idea. For instance if you are after a developer and the job involves 60% support then do mention it because most "core" developers don’t particularly like support and they usually don’t apply for this kind of jobs. On the other hand if the jobs involves support, development, analysis, documentation, requirements gathering, data profiling and development is 80% then do mention it because most developers are after development work and what I specified (without %) can be misleading and they may be tempt not to apply for the job.
Think about all the skills required for the role. Ask team members to list the skills, and if you and the team does not have technical skills that are required for this role ensure that you ask someone or make research on what kind of skills you need (especially important for interview questions) . Once you have the list focus on underlining the important aspects and just mention briefly the rest so the candidate knows what is important and what is nice to have.
First impression is important. The more true facts you give the candidate about the job and the environment; the more likely this person will be happy and stay in the job. It is common to make the job more attractive than it is in job spec or say it on the interviews. I personally don’t like this approach as it makes many people feel disappointed when they start the job.
Clearly define what you are after. You can start with encouraging sentence and then define what you need.
Below are some suggested sections:
About the job – Describe the job in several sentences so the candidate can create "big picture"
Similar or different? Often people (employer and candidate) think that if someone has experience in databases than they can build different kind of databases without prior experience… If you want a data warehouse and employ someone who is very experienced in OLTP databases without real knowledge about data warehouses than you will get OLTP database not data warehouse. Be careful…. This can lead to serious consequences. Make sure you do enough research or get professional advice to avoid mixing different with similar skills/experience/knowledge
Must have section – put all skills/experience/knowledge that the candidate must have. If the job is shared between team sometimes it is useful to put only candidates with at least 3 "must have" will be considered. Be realistic don’t put the bar too high. Also for must have try to put extra options like if you have experience with version 2005 you can still apply for this role which is mostly version 2008, but be careful because sometimes differences are very big. SQL Server ETL tools in version 2000 were called DTS and 2005 onwards SSIS. A new version has been completely re-written and only ETL principles (still very useful) stay the same the rest is different.
Nice to have section – describe briefly nice to have.
Keywords - Potential candidates often filter jobs using keywords and location. So try to put keywords sections and just list must have skills. Don't add everything because some people exclude keyword for instance I often use Include SSRS Exclude Business Objects and Crystal reports. Location is also important so list all town that are not too far away from the workplace.
End positively – mention anything extra, like bonus (if it is big than say it is big) or car allowance as this can make a big difference. You can get more good candidates when you mention this tiny detail…. Up to 25% extra (bonus + car allowance).
Make research. One of the websites I use in UK is http://www.itjobswatch.co.uk/ but remember money is not everything and there are multiple factors. If you recruit for high salary or high daily rate roles than they often candidate accept 20-30% variance from what they have in mind. People who enjoy what they do and treat their job as "hobby" are more likely to apply for lower rate/salary if job offers opportunity to be an expert and simply use skills and experience they have, but if it doesn't they might actually not apply at all even if it pays 25% more what they are after.
I've come across two types of roles, that people generally recruit for:
- Do it - This is role where the company has a good idea of what they are after and recruit someone to do it, usually according to the their instructions
- Recommend - This is role where company has a goal in mind but they need someone else to recommend best approach to achieve it.
If you are after skillful candidate (contractor or permanent) and you are not an expert in certain subject than it might be best to reveal which type of role it is. I've come across companies that have 'do it' approach and employed skillful people who disagree with certain approaches and are 'forced' to do it. This is probably the easiest way to make the contractor leave (Permanent people are usually less flexible). Most skillful candidates care about using their skills and experience and if they don't then they often stay very short time and move on to another one. Recommend approach works best and you may use that to negotiate the rate; if you cannot afford top rates/salary.
How to get skillful candidate? If you decide to go with "recommend" role than it's best to ask on the interview questions like: We have this goal to achieve how would you do it? We have this performance problem. How would solve it? Sometimes answers might not be easy to swallow because they simply say you need more realistic plan but it is important to consider it and if you can't do it just be open and say why you can't do it and usually the person will suggest another approach or accept your current situation.
Before I finish let me describe several phases that I would recommend to use:
- Prepare accurate job spec (Discussed earlier)
- Telephone Interview - For technical position this is often MUST HAVE as there are quite a few CVs that simply have skills on paper only. During telephone interview also describe the role itself and responsibilities.
- Face to Face Interview (or video)
- Personality & Attitude - Very critical and I will not comment on this one as it is very different depending on a number of factors.
- Proper test - If it is technical interview I suggest to do another a bit more in depth test. I recommend to do it on a PC (or a laptop). Variety if question is key and I would suggest to stay in the room to answer any question. Discussion (questions) is sometimes more important than the actual answers.
You can also visit SQL Server Interview Questions that has a collection of articles covering different areas of SQL Server including BI Stack.