Identify clearly what you relly need
It is imperative that you list down the tasks that the candidate will be required to perform. If you do not have a clear cut list of job responsibilities in place, it only indicates that you are not clear of what you really need. On the flip side, this also sends wrong signals to good candidates - a non-existent JD is one indicator that roles are not clearly defined in the organization. A good job role is one of the key incentives for attracting the right candidate.
Write out a detailed job description
Perform this exercise by asking yourself "What work will the person actually do?" An example is given below:
Candidate profile (development)
Job responsibilities
-
Gather requirements from business users
-
Create business requirement specifications
-
Create system and database design documents
-
Write system use cases
-
Estimate requirements
-
Design and code system modules
-
Write stored procedures
-
Create reports
Technical skills
Personality traits
-
Ability to handle tight deadlines
-
Ability to multitask
-
High degree of endurance / stamina
-
Good verbal and written communication skills
-
Responsible and is able to work independently
-
Positive attitude
-
Honest, sincere and a true professional
Make expectations clear to recruitment consultants
Share the job description created above with recruitment consultants. Ensure that the profile of the person you are looking for is clearly understood by the consultant. Often it is observed that consultants either do not fully understand or are left groping in the dark about client requirements.
Remember, your aim is to funnel out the best talent suitable for the job from the available resumes floating in the market. Much of the initial filtration work is tedious and time consuming and is best left to full time consultants. Your job begins only after the initial rounds of testing and verification have been completed and the number of potential candidates has been rationalized.
Do a detailed study of the short listed resumes
Scan the resumes of the short listed candidates carefully. Analyze the projects which the candidate has worked on. List down scenario specific questions based on the work already done by the candidate. At times the projects in which the candidate has worked may be good but the candidate himself may have had a limited role in the project.
For example: Let's say a candidate has worked in a core banking project and his role was to create reports. The resume should ideally indicate "project details" and "role" under separate headers. If this is not happening, provide feedback to the consultant and have it rectified. The following scenario specific questions can be asked:
-
How many reports did you create?
-
Did you use SQL reporting services?
-
Could you provide details of the most difficult report you worked on? Why do you consider it the most difficult?
-
What kind of stored procedures did you need to create for the reporting requirement?
-
What was the maximum row count of the tables you were querying? What measures did you take to ensure that the queries were optimized and would not fail as the tables became populated with more data?
-
What kind of indexing strategy did you use? Did you need to create covering indexes?
-
What are the stored procedure creation standards which you follow in your project?
The responses to above questions will tell you a lot about the skill levels of the candidate. It is difficult to bluff on this type of questions. Remember, if a candidate has already done the kind of work which you need to implement in your project he will be productive from day 1. This is precisely what you are trying to determine. You will find a lot of candidates who "know" a lot about a specific technology i.e. theoretical knowledge but you need to give preference to the candidates who have already "done" some work in an area. Give preference to on the job skill over bookish knowledge, this will reap rich dividends during execution of the project.
Equating the candidate's responses against the JD created earlier will help you to come towards a more informed decision.
Prepare a ready reckoner of scenario based questions based on the scenarios faced in your current project
Following the questions identified in the previous section, you now need to throw scenarios at the candidate from your current project and see what solutions he can suggest for the same. The important thing here is not how many precise solutions he comes up with but to get a feel on how much the candidate is capable of thinking. Software development is a 24X 7 thinking job and this is a vital skill.
For example, continuing with the previous section's core banking solution the question could be as below:
Consider this scenario - We have the following entities in a bank branch - the customer, the cashier, the teller, the personal banker, the branch manager. Suggest an object model to capture this scenario.
The candidate's answer would automatically tell you how much of object oriented analysis and development he is actually using or is capable of figuring out.
For a production support role, the scenario could be - Consider the event wherein 2 highest priority support calls are raised within 2 minutes of each other and you are the only team member supporting the application in the night shift. How would you handle this situation?
The candidate's answer will tell you how he would actually handle the situation in real life and whether he is suited to the role. Trouble shooting and providing permanent or workaround solutions under pressure is a key quality required in production support.
Asking scenario based questions is mandatory if you wish to select the right candidates - asking questions which only test the subject knowledge of candidates is not enough.
Assess the technical competency of the candidate
Finally, also have a ready reckoner of technical questions ready to assess the technical knowledge of the candidate. Almost everyone does this - in fact most interviews commence and end with technical subject knowledge questions.
The disadvantage of this approach is that almost every candidate is prepared for such questions. For example, questions like:
-
What is the difference between overloading and overriding?
-
What is multiple inheritance? Is it possible in C#?
-
Explain the event model in .Net? What is a delegate?
evoke standard responses and only tell you that the candidate has some degree of technical knowledge. It does not tell you how effective he will be on the job. Nevertheless, it is important that this analysis is also done as part of your recruitment process.
Do not always recruit the best candidate
By now you have finalized some candidates who are suitable for the job. Before making the final offer consider the following:
Every employee goes through 3 stages in any organization
-
Initial stage - the employee is new and is on the learning curve.
-
Middle stage - the employee has become an integral part of the team and is contributing in his role
-
Late Stage - in this stage the employee has mastered his job responsibilities and is looking for new challenges. If he is not presented with new challenges or a role revision there is a very high chance that the employee may move on in search of greater responsibilities.
This is the normal cycle for all employees who are career oriented and are looking to progress in their careers.
Put yourself into the candidate's shoes and answer the following questions:
If the answer to any of the above questions is in the negative, then it might be difficult to retain the candidate in the long run. Of course, if the candidate is comfort driven than all he may be looking for is a better remuneration. But most of the better candidates do not think in this fashion.
One of the ways of identifying a good candidate is that he will usually ask many probing questions - to the point of being offensive. He will do his homework properly when trying to assess a potential employer. Such candidates usually turn out to be very good in their jobs.
The best candidate is the one for whom the offer you are making places him in the 1st stage in the employee life cycle as mentioned previously. This obviously means that the candidate will be required to stretch and grow in his new role. This also turns out to be one of the best retention strategies for the right employees.
Find people who are better than you
This is a tricky piece of advice. The average, insecure person always recruits people whom he considers to be weaker than him in ability or skill to ensure that they never rise to challenge him. But the true leader is usually strong and secure - he intentionally recruits people who are better than him in at least 1 area. He knows that his job as a leader is to integrate diverse abilities of people for the common good and achieve synergy. An insecure leader can never achieve big results.
Note :