India has come a long way in the past decade with respect to software talent and contribution. The number and the quality of conferences; technical meetups; and API hackathons, especially in cities like Bangalore, indicate the positive change the industry has seen in the last 10 years. Such events have led to more open source contributions and a much more passionate generation of developers who love programming for the fun of it.
The tech talent level in Bangalore appears to be 10x what it was when I
last worked here in 2003. Seriously humbled & impressed.
— Herr Fauler (@chadfowler)
January 4, 2014
This shift in the industry definitely renders India to be a reliable and cost-effective outsourcing destination. But, here’s the caveat: India has a large number of programmers and by law of percentages it also has a proportionately big pool of the bad ones. This means that even though there is an attractive talent pool and a compelling cost advantage in outsourcing, there is the potential risk of ending up with a bad firm and burning your fingers in the process.
If you are a company stationed outside India but looking to outsource, how will you discern the quality of a firm or its developers sitting so far away?
This post is intended to help you with a basic framework to make the right choice when it comes to finding your development partner.
Defining the scope for your project
This is the first and the most important step in your agency finding exercise. While many might argue that a good firm should be able to help you with defining the scope and details, it is necessary for you to do it yourself as a first step to be able to get to the right firm.
How you go about finding a firm will depend on the nature of your project. To give an example, if you are looking to build a basic first version of your product, you will have to shortlist somebody who is willing to work closely with you to understand your domain and market needs and has the necessary technical depth to make the right early decisions. If you already have a working product and you are looking for a firm to optimize the existing code or build particular modules, you may want to look at firms with deep backend expertise. Further still, if you are looking for a firm to just develop the mobile app version of your product, you may have to choose somebody with that specific experience.
Channels for finding right agency
Mining your personal/professional network for references is undeniably the best way to start your search. References generally come through only when somebody has had a great experience and this filter makes your selection process easier. Even if you don't have immediate connections, with networks like Linkedin, it should be possible to take advantage of 2nd or even 3rd level connections.
If you have decided on the technology to use, you can reach out to developers through mailing lists for that technology in the region that you are considering. Developers from a good agency will have an active participation in discussions and it should be a good place to get in touch with the ones relevant to you.
Conferences and networking events
If you have the time and budget, it is best if you can make a trip to India to attend local conferences and networking events. A good development agency usually has speakers at key events in the city. Attending such events will help you make your selection after face to face meetings with the prospects.
Once you have a shortlist of companies, the next crucial step is to see who will best suit your needs and working style. The following points will give you a framework for that decision making.
Depending on the scope of your project, you may want to see how many developers need to be engaged full time on your project and what their profiles are. Even if the founders and some team members have impressive profiles, the quality of the work delivered depends very much on who is working on your project. Be sure to evaluate the profiles of members who will be working directly with you.
A confident firm will discuss about projects done, share their project portfolio and will also willingly extend customer references. Not all details are published in a company website because sometimes client projects are confidential. In such cases you can ask the firm to mail you the project portfolio that talks about all their projects and processes.
Also, it will definitely help in your decision making process to talk to their clients about what they liked/disliked about their engagement with that firm.
Customer testimonials offer credibility and provide insight into the company. Eventhough a company will only publish the positive feedback from clients as testimonials, a quick look at those testimonials should help you understand what the firm is doing right.
Open Source contribution
If your choice of technology is open source, you are better off choosing firms who contribute to Open Source and more importantly firms that encourage contributing to Open Source. An active participation and contribution in the development community generally indicates a love for their own craft. It goes without saying that the ones that love their craft produce quality work.
You can can check a company’s contributions by asking for their Github profile and checking the projects the company has created or contributed to.
The advantage of this method is that you can even engage somebody independently to check the quality of the code contributed before you make the decision to hire the firm.
Development firms everywhere have the tendency to use technology buzzwords to appeal to their clients. If a team claims they follow agile processes, make sure you get them to explain what it means for you in layman terms. Does Agile mean weekly updates? Does 'pair programming' mean higher costs? Make sure you get them to explain their processes. This will help you in understanding how your everyday interaction will fit into their processes.
Most offshore engagements fail due to poor communication. Even if the firm has an impressive background, if you are not convinced about their communication skills, you are better off letting go. Communication problems only worsen over time especially with the time zone differences. By communication, I refer to the ability of the team members to listen, understand, ask the right questions and convey their points of view to arrive at an agreement over discussions.
'If you pay peanuts you will get monkeys' holds true when it comes to software outsourcing in India. If you are looking to hire someone at a rate of USD 10/per hour you are likely losing your entire budget without getting any work done. It takes anything between $2000 to $7000 per month per developer or more (depending on complexity) to engage a firm that will deliver on its promises. Even at this price point, the costs are lower than hiring a full time developer in the US or Europe.
More often than not, mending bad code ends up being more expensive than building from scratch. Cost is a decent indicator of quality and hence you should have your guards up if you come across ridiculously low bids.
The evaluation process plays a crucial role in your success because making a wrong choice can cost you dearly. Our advice here stems from years of experience of working with startups around the world. While this post will help you in finding the right firm, it is only the first step. In our successive posts, we will have discussions on design and development processes that will help you engage with your offshore team effectively.