7

I'm working in a small startup as the sole developer in my spare time. We might need some more development help and are looking at an Indian company which comes recommended by someone we know (although they are not very technical).

I'll be having an informal chat with them, and thought I'd see if people here had some wisdom regarding what to look for and good questions to ask.

At least I thought I'd try to get some:

  • Code examples
  • Info on any policies they might have regarding documentation of code
  • Some background on the people we will be working with

If you guys can think of anything else I should be particularly on the lookout for, or have any other tips to run the conversation, your input would be much appreciated!

** Update **

To be clear: I have some about what questions to ask a sole developer/freelancer. In this instance I will be talking to a an Indian company offering outsourcing services. I'm curious to know whether there is any particular issues I should be aware of, and if someone with this kind of experience have any hard earned wisdom to share. See MainMa's answer for one such point, although it's not developer-specific.

I see the title of the question has been slightly modified so it no longer correctly conveys what I was trying to ask.. maybe this was the wrong place for this question. :/

Craige
  • 3,791
  • 21
  • 30
rogerkk
  • 219
  • 1
  • 4
  • 2
    Wondering about that vote to close...I think it's a pertinent question no matter how you feel about the practice of Off-shore contracting. – Michael Brown Mar 12 '12 at 19:51
  • 2
    -1. I don't think this is any different than hiring an on-site and/or a freelance developer for your a company. You will always be looking for the same qualities. – Craige Mar 12 '12 at 20:07
  • 1
    No matter who you hire, you should inspect their code early and often. If you don't like the code, don't hesitate to fire them. – kevin cline Mar 12 '12 at 20:25
  • @kevincline For sure. I will be working pretty close to them. I'm just hoping to avoid wasting time and money by getting hold of the right people from the start. :) – rogerkk Mar 12 '12 at 20:29
  • @rogerkk - I misunderstood your question whet I made that edit. I edited it again to (hopefully) properly convey your question. If this is still incorrect, please let me know. (For what it's worth, my intention was simply to remove the nationality reference from the title) – Craige Mar 12 '12 at 20:52

3 Answers3

9

I don't think an interview with a developer off-shore must be very different from an interview with, say, a freelance developer from USA. After all, you search for a person with the same profile and the same skills, doing the same tasks.

Still, I noticed personally and often read that Indian developers have a different approach of a relation with a customer. When you ask them to do something which doesn't make any sense or will be overly expensive or has a high risk of breaking something, they will still do it, instead of [politely] explaining to you that you're stupid and don't know what you're really asking.

Since you're a developer, it may not bother you too much. If I were you, I would still talk to them about this point and how they approach it, in other words if they understand that it's better to say "No" to their customer than to implement something substantially broken.


More generally, when you search for a developer, try to determine following things:

  • Does the person have the right technical skills?

    This is done by asking the right questions, and depends a lot of the specific job. It may be something basic, as "What is the difference between stack and queue? Which one do you use to replace a recursion and how?" to something very advanced in a specific language.

    Asking to write code is a good idea (see Joel Test), but may be difficult in an interview by phone. You will feel stupid staying at phone waiting for twenty minutes for a person to solve a problem, and it will stress the interviewed person. You also cannot know if the person is actually solving the problem or asking for help on Stack Overflow.

  • What about communication skills?

    Partially you get the idea by talking to the person, but this may be not enough. Often written skill is more important, and you may want to ask if the person has a blog, a high-rep account on Stack Exchange, etc.

  • Is the candidate THE candidate you want?

    This one is the most difficult to answer, and the risk of making a mistake is high (in both ways). Some questions you may ask include:

    • In C#, do you use StyleCop? Code Analysis? Code Metrics? Can you talk a bit more about it?
    • What are the five things/features you lack the most in your preferred programming language? How would you implement them?
    • How much do you spend actually writing code? What do you do the rest of the time?
    • Do you use Waterfall? Agile? Can you describe how do you use them?
    • Why QA matters? Have you worked with testers? According to you, what do they do?
    • If an end user asks you for support with a question you find completely stupid, how do you answer?
    • Why the question "Which language is better, PHP or Java?" doesn't make sense?
    • etc.
Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
  • I understand that it shouldn't be very different from any other developer interview, and it is the exactly the kind of stuff I want to be aware of before we start. Also, I'm guessing I would be talking to some higher-ups and not the developers themselves for this first chat, so my questions might lean more towards common practices than any particular developer's skill set. – rogerkk Mar 12 '12 at 20:10
  • 2
    I've had better luck with Russian consultancies. The Russians I've worked with ask the right questions. – kevin cline Mar 12 '12 at 20:22
  • @kevincline Interesting. I am indeed a bit worried about needing to micromanage Indians. – rogerkk Mar 14 '12 at 20:14
4

Working extensively with Indian developers, I would give them a sample requirements document and ask them what they think it means. Communications are often the problem. They will want more information in a requirements document than you are likely to give them at first being used to not having to specify everything. Further, what you think something means is not what they think it means. Better to see if you can communicate with them from the start.

I would also discuss problem resolution with the company and have something in the contract about the code acceptance process. You don't want to spend hundreds of hours and thousands of dollars to get code that is unusable. So you need to consider up front how you will determine if the code is acceptable and what recourse both sides have. I would also want to negotiate for code reviews (including viewing code in progress when the task is large) and daily progress reports. You might also see if they will be willing to work the same hours that you work. Communication is hard when they are half a world away and working while you are sleeping. It builds delay into the project.

HLGEM
  • 28,709
  • 4
  • 67
  • 116
1

Most off-Shore developers work for massive companies that give you candidates, and these companies vary widely in quality and business practices, some do some very shady things. Vetting the company is more important than vetting the developer, so check into their track records before even talking about hiring someone.

Ryathal
  • 13,317
  • 1
  • 33
  • 48