July 2007
Monthly Archive
Monthly Archive
Posted by Shirish Nadkarni on 29 Jul 2007 | Tagged as: LiveMocha, business, lessons, startup
Since we started LiveMocha, I am often asked whether we are getting our software development done in India. People are generally surprised to find out that, in fact, all of our software development is done right here in Bellevue, WA. I guess given the fact that I am of Indian origin and outsourcing has become a very common strategy people expect that it would have been quite natural for me to have done the same with LiveMocha. However, it was a very conscious strategy, even while fairly expensive, to do all of the software development in the US. Starup companies like Like.com that established an office in India have recently shut down their office there and have moved their software development operations back to the US (see a recent WSJ article Some in Silicon Valley
Begin to Sour on India and the blog by Munjal Shah, CEO of Like.com Episode 26 - India grows up). As these articles point out, while the average cost of software development resources still remains significantly lower that experienced developers in India can now command 75% of the salary of a US developer. There are also many other issues in you face in working with an outsourced team that I will touch upon here.
There are several reasons why doing software development for a startup makes more sense in the US. Today time to market with a kick-ass product offering has become even more critical. If you have an interesting idea, you have to get your idea developed and launched into the market in no more than 6 months. Very likely, someone else has a similar idea and even a few months head start can give you perception of market leadership and allow you to quickly build network effects before someone else does. Also, there is no better way to prioritize features than to get your offering into the market and see how real users are using your product. Doing rapid software development in another country (India or otherwise) across a 12 hour time difference is just too difficult even if the costs are significantly lower. Anyone who has worked in a startup knows that development process is very fluid — you are not likely to find detailed specs and even if the specs are fairly detailed, things change very quickly as you exchange ideas with your team members or learn more about your market.
With an outsourced team in another country, it can be extremely challenging to get across the vision of your offering — the only communication medium you have are documents and phone calls. Besides the communication issues, there’s also the issue of market understanding/appreciation. Your team here is much more likely to understand the vision and direction that you are headed in vs a team in another country where people may not be exposed to the latest trends and offerings. More importantly, your team here will have lots of great ideas to make the original offering significantly better because they are living and breathing the vision and strategy everyday. The daily give and take of ideas that you experience with a close knit team is simply too difficult to achieve with a geographically dispersed one.
Working across a 12 hour time difference can also be extremely challenging and inefficient. As Munjal Shah points out in his blog, it means that your group over here has to work late into the night to be able to have live conversations with the outsourced development team which can be difficult to achieve on a sustained basis. Even with the live conversations, the outsourced team often times cannot quickly get their questions answered and have to wait until the next day which can significantly affect productivity and motivation. Over here, our developers simply have to look over their shoulders to talk to our Product Manager to get their questions answered about the feature they are building.
Perhaps the most important issue to consider is the quality and the cohesiveness of your startup team. The team that you hire initially sets the tone for how the company evolves. If you are lucky enough to hire a bright, highly motivated and hard working experienced team, as I have, it sets the tone for the culture of the company and who your team hires as the company grows. It just too difficult to establish an A+ team and create the right set of dynamics if you relying entirely (or even partly) on doing the development in another country.
Now, I will admit that our strategy of building a team in the US was possible primarily because we had sufficient funding to hire developers in the US. You may, however, be operating on a much more constrained budget so you may not have a choice but to seek out less expensive development resources. If you do decide to outsource development, make sure that you interview every developer who has been assigned to your team. Don’t make the assumption even if you retain an InfoSys or a Wipro that you necessarily getting the best resources since they are all desperately hiring developers (experienced or otherwise) at a furious pace to meet their growth objectives. They simply don’t have the depth of resources to staff your team with developers with the experience that you are used to in the US.
There will also be times where an outsourced team will have a specific expertise that you lack in which case it may make sense to retain their services. One of the companies that I had invested in had a need to port and test their mobile application to variety of handsets. I did encourage them to consider hiring a company in India that had done this for a number of mobile developers in India. I felt it would be much more cost effective and faster path for development to hire the services of this firm than to try to do this on their own. Of course, all of their core mobile development was still being done in the US.
I would be interested in hearing from others on the strategies that they have employed in getting their startup off the ground (or from those who have worked at startups) and how well an outsourced strategy has worked for them. Let me know.