Interviews – Two at a time.

One of the factors that you look for in a candidate during interviews is his collaborative skills. How good is a person when it comes to carrying a conversation with a fellow colleague. How about disagreements? Does he respect arguments or gets aggressive..

How do you do that?

Here’s a proposition..

I was once in an interview session, and were short of interviewers. Lot of people showed up and we had limited time. So we decided to have paired-candidate session. This is where two candidates would appear together in an interview session. It was fairly effective and surprisingly pleasant experience. Here’s my observation from the experience..

1. There was a basic comfort during the session.

Since interviews have gone on to become this huge one-sided affairs, its become really difficult to gauge a person’s original nature during the interview. Getting a person into a proper discussion is quite a challenge. There are hardly any constructive arguments or discussions. Just questions and answers which are not a good representation of a person’s capability technically, leave alone his collaborative skills and interpersonal skills.

With another candidate in there, it is more comforting for the candidates and when they discuss, it can be more natural. This also spawns many useful discussions and arguments.

2. Simulate a typical work like setup

At work, you’re faced with similar situations fairly repeatedly. You are always discussing technical solutions with your colleagues. Either looking for support or challenging a solution. However, this situation is not repeated effectively during a interview session.

Two candidates at a time can help simulate a typical work-day, and can help gauge a person’s interpersonal and technical capabilities.

3. Interviewer as a moderator

I’ve always felt that interviewers should be doing more of listening. Just get the candidates talking and listen to them. With one-to-one interviews, mostly the sessions end up becoming a quiz situation. If that is all you want, there are many softwares which might do a better job at it.

With two folks in there, it can be really useful to have a good moderator as an interviewer. One would need to get both of them started in an argument or a discussion and observe how people react to individual points.

Knowing each of the candidates before hand can help a lot in moderation. Look up their details on the web and fit the right candidates together to get opposing views and opinions.

Conclusion:

In all, its a nice session to add to your interview plan. It’ll not only help you gauge the technical abilities but will also assure you of how the person would behave during the actual work. This coupled with initial research about the candidate can be a wonderful combination to add to your plan.

Have you ever conducted a ‘Two at a time interview’.. Please do share your learnings from the experience.

Target your prospective employees

This is the fourth installment in the Interviewing series. The first three can be viewed here.. Part 1, Part 2, Part 3

How do you target your prospective employees? The answer is.. the way you target your customers.

Go where they are most likely to be..

Are you looking for good programmers to join you? By good programmer, I mean one who can code. No.. not just write code, write code which is readable, maintainable, well tested and easy to change.

Where are you looking?

Job site

If you think job sites would provide you with such people, all I can say is keep trying.. someday you will find them. Its just too much effort to find one good programmer from a herd of resumes. Too painful and not very rewarding. And by the way, good programmers have started to remove their resumes from those sites. Thus your chances of finding one is made even more difficult.

Recruitment Companies

All I can say is.. well.. I can say nothing. They’re supposed to find you a good resume. I’m sure if you close your eyes and pick a resume from a pile, your chances of that being a good one will be equivalent to the ones filtered by these companies. And bonus.. it won’t cost you anything.

Go look at..

1. Technical conferences

2. Programming community (online/real-world)

3. Open source code bases. (github, code.google, and so many)

4. Gaming channels/forums (well.. atleast 50% are into virtual reality)

5. Twitter and stackoverflow. (There are some serious folks out there..)

Once you’ve found a few developers who you would like to have in your organization, what do you do?

1. Torment them with joining calls from your HR/calling staff.

2. Send them endless emails about sending their resume to you.

Well.. enough. You’ve already lost him. Now, let’s try something else

1. Have a chat with him about his interests (in programming and other things..) whenever you meet him.

2. Host a session on programming and invite them for a talk/session. They’ll respond willfully.

3. Host a session that matches their interest (gaming/social networking meet/others..) and invite them to participate.

4. Have an open-office day. Invite people from outside to come and visit your office. Let them have a look at how you work.

5. Constantly seek feedback from them. What do they like about you? What they don’t like about you..

Believe me.. you won’t need a formal interview after all this.

Its not easy. Certainly not. But the chances of finding a good programmer are much better this way. Certainly better alternative to a 1-hour interview session.

Coding. Interview as a Service – Part 2.

[tweetmeme source=”snarayan” only_single=false]

This is a continuation of the Interview as a service series. You can visit the part 1 here, where I talk about some of the common shortcomings in recruitment process of IT organizations.

Well.. to jump directly onto the subject, Coding. How many organizations have coding as a standard practice in their regular interviewing process? To your surprise, not too many. It is absolutely mind-boggling to how one can recruit programmers without actually testing their programming skills.

Programmers are supposed to program. Code. In any language, but Code. That is a absolutely non-negotiable. Any concept, any theory, if it is not demonstrated through code.. it is not correct. It is not good enough if one talks well, is well dressed and knows few technical buzzwords/jargons floating around in the industry. We’ve seen such folks struggle to write even the simplest of programs. And for all the referral process fans here.. these folks have lot of friends like themselves. They will refer everyone. No doubt about it. So you end up having a fantastic team of programmers who can’t program. Not program even if their lives depended on it.

This decision has to be made by the organizations. Do you want such posers in your system? If your answer is we’re fine with it, you can stop reading further. This one is not for you.

Ok. If you’re still here, I believe you understand the importance of recruiting right programmers. One of the important exercises to be done immediately is add 1 or more coding exercise in your recruitment process. Start with a simple problem, one  that requires some of the programming constructs and ask them to write code for it. Not pseudo-code. Actual program. Make sure the problem contains atleast 2-4 constructs like conditional logic, looping, modularization, data structure, etc.. as one sees fit. An example could be, from a list of numbers give me all numbers that are divisible by 3. As simple as that.

Look at how quickly one gets to solve the problem. In my experience, good programmers would be solving this the minute you’ve finished your question. Speed is not necessarily a measure of quality but can be treated as an indicator.

This is fine if you need just programmers. How about requiring good programmers? Do you need them? Yes.. ok lets go about doing it then.

Present a problem that involves more programming constructs and add a bit of design into it. You’d like to see how one goes about arriving at a solution. What are the approaches he takes. What are the approaches he doesn’t take, and reasons why. It can be a really exciting experience when you carry this exercise with a real good programmer.

I’d suggest doing this on premise and actually going through the whole process of arriving at solution. Thats the best way to do it.

One of the other approach I’ve seen is sending the problem to the programmer and ask them to submit the code. After submission, on premise, discuss with them about their choices and practices.

If you go with this approach, I’d rather suggest submitting code katas, screencasts.. This would give a nice idea of how a programmer goes about doing his job. How comfortable is one with his editor. What shortcuts does he use to get the job done. What classes he comes up with, etc..

To summarize, to build a good or even decent software organization, you need to focus on the kind of programmers you let inside. Better the programmers, better the kind of services or products you provide.