Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A few things I've learned about outsourcing to India (trekdek.wordpress.com)
33 points by dmd149 on March 27, 2011 | hide | past | favorite | 42 comments


I would highly discourage a non-technical person from trying to manage a foreign outsourced software project. For what it's worth, I've managed a few such projects over the years with developers in India and China. My experience has been that you absolutely must have a technical person in house who should expect to spend a significant amount of time very thoroughly documenting and verifying their work. For a smaller project, it really doesn't make sense because you'd be able to finish the project yourself in the amount of time it takes you to manage an outsourced team. For larger projects, expect them to spend and bill at least 2-3x the hours (and 2-3x the number of developers) that you'd find with a local dev team. Also, don't expect any creativity or initiative to fill in gaps in your requirements... you will have to be very specific and explain every minor detail of functionality and behavior in order to get the project done right.


Also, don't expect any creativity or initiative to fill in gaps in your requirements... you will have to be very specific and explain every minor detail of functionality and behavior in order to get the project done right.

Completely agree with this.

But here's another way to look at it: why would the outsourced team show any creativity or initiative? They're basically being treated as a commodity, because typically the projects that go to such places do so because these projects are 'cost centres' - some business guy decided to get the 'i have an idea, the rest is implementation' part done as cheap (or "cost-efficient") as possible.

When the programming team has no engagement with the idea or the organisation or even the product they're contracted to build, why would they expend any creativity or initiative for it? Not everyone is personally driven by a sense of excellence, sometimes people just want to get the job done. And my experience in such places is that a lot of the programmers there aren't in it for the love of software/IT/tech, and more focussed on just getting a job done.


Agree on all points!

In general, I've found European talent(Romania, Poland etc.) to be more technically sound than Indian devs even if a little more expensive. This goes for both programming and design. The vast majority of Indian designers roaming on freelancing sites are absolutely crappy.

And yet, all freelance sites have their share of Indian devs and designers in the top workers list. They are the exceptions to the rule and little of what I say above applies to them.


> I eliminated the ones who immediately asked for a list of features and gave me a quick price quote. It seemed as if they were in for quick cash and wanted to meet the minimum requirements only.

I think you might have eliminated a fairly large group of good experienced contractors who care about their bottom line. The really good ones can't afford spending too much time discussing details with people who don't have a very clear idea of what they want to build and a specific budget.

Good, experienced contractors will want to snatch projects that are well-defined and with a good budget, then build them quickly and efficiently. Hence the question about your list of features and the quick price quote — they want to know whether your budget is in even in the same ballpark and whether it is worth their time to bother negotiating.


This was a great read, in a "Plan 9 from Outer Space" sort of way.

We have the story of a naive first time entrepreneur with his first attempt at building a website and his first experience with eLance, with the sort of unbridled optimism that you only ever see in people who've never tried to outsource anything on eLance.

I love the authoritative "this is how it works" tone of the article, as it outlines his stumbling along, misunderstanding pretty much everything, getting bait & switched, watching his deadlines go past while his only meaningful communication is with the guy asking for more money. Better still is going out to find the end product (http://trekdek.com/), now that his "final, definitely finished" date has passed.

Priceless. Thanks for putting a smile on my face this morning.


No need to discourage someone trying to be helpful. If he's learned something helpful along the way, I'm glad he's sharing it.

I loved your awesome "Book a flight" blog post - http://www.expatsoftware.com/articles/2008/05/laid-off-one-t... - (also full of unbridled optimism) - without needing to research how well that's worked out for you or not. I didn't need you to be a travel agent or very experienced traveler to share what you've learned.

The reader is the point, not the messenger.

http://sivers.org/you-not-them


I think the key with a post like this is the tone. If you're writing a "my first experience trying X", you should avoid trying to sound like you have any advice to give or lessons learned. You don't know what lessons you've learned until much later. If he'd wrote it from the learner's perspective, it would have been a much more interesting read.

We all had experiences like the author's during our first try at this. I made just as many mistakes from just as many bad assumptions on my first for-profit site. The thing is, I waited several years until I had some perspective before I was ready to write that experience up in a way that would be useful to other people.

[edit: this is the article I refer to: http://expatsoftware.com/articles/2007/01/6-things-that-kill... . You can only imagine how comical it would have sounded had I spouted off about how all this stuff was going to work back when I was doing it.]


Yea actually the whole project was to put a godaddy landing page in. It worked!


No offense meant to the author, but he sounds like a bad client and personally I'd turn him down in a second.

The problem with being both penny-pinching and feature crazy is you will quickly scare away the people who know what they're doing and can actually get your project done. This leaves you the people desperate enough for work that they're willing to put up with you.

If you approach the collaboration as if you were haggling with a car salesman for a better model, it won't matter whether you outsource or go local, capable people (who are generally in demand and can afford to decline clients, regardless of where they're based), will sense that you aren't worth the hassle and wait for something better.

The way to get good work done is to pay well, give clear directions about what you want, and most importantly, limit the goal to a core set of features that are realistically achievable in the proposed budget and timeframe. This is actually the cheapest and most reliable way to obtain something decent that works well in a reasonable amount of time.

Underpaying is much worse than overpaying. When you overpay, you can be more confident in the estimates you get and that the quality will be there, and the developers will be more motivated to do a good job for you (which can be critically important). Underpaying gets poor quality, will make the project take much longer if it even survives, AND the people responsible for your entire system will rush through it and might even have a grudge against you due to previously mentioned penny-pinching and feature crazy habits.

Summing up: aggressively seeking the most features for the lowest rate will paradoxically net you a poor result with a large bill.


Hmm .. Not sure if you are aware, but there's a failure of reasoning in your writing:

> I eliminated the ones who immediately asked for a list of features and gave me a quick price quote. It seemed as if they were in for quick cash and wanted to meet the minimum requirements only.

...

> However, you should make a point to include as many features as possible for the given price.

See, these guys are trying to meet the minimum requirements because they are being pressured to include as many features as possible for the given price. They are merely playing your game.


I should clarify: the ones I filtered out immediately because the dialogue would end with a list of a features and a price quote.

With the ones I liked, the dialogue was a meaningful back and forth and exchange of ideas. In the end I of course maximized the number of features I wanted for a given price so I wouldn't be charged later for wanting to add stuff that wasn't in the initial feature list. The ones I liked seemed too have more ideas for the site.


I'm surprised he's writing "lessons learned" before they have a product shipped. I see the date's slipped from March to May...


Excuse me, "lessons learning"


I've never had luck outsourcing development to India (for a variety of reasons), though I know people who have. I'm curious about how those who have been successful managed to succeed, and if it was more than just sheer luck.


I know of one case. Two founders, one American, one Indian (my brother), both highly technical. They were almost running out of money but also needed 5-6 programmers and someone to manage them, so they could take care of the business aspects. They took investment from angel investors, and my brother opened up shop in his home town in India, which is a small city. IMO the key to their success was that they were able to find this one guy who bootstrapped the entire business in India and managed it very well. Also, since this was a small city, they were able to find stable employees at reasonable salaries, unlike cities like Bangalore, Mumbai etc. which are very expensive and people keep switching jobs for salaries. Eventually the startup got acquired by an American Corporation and the operation in India is still going quite well.


Sounds like the key point here is that your brother is himself Indian and technical. Most people don't have those benefits.


That is certainly true. But I would like to emphasize the importance of having a solid manager over in the India operation. Because even if you are Indian, it becomes difficult to manage from a long distance.


I agree, i know of an entrepreneur who wanted to build a wildfire like app and hired some indian developers, but the project kept getting delayed and some stupid technical decisions were made. For his next project he went through references and also through drupal forums to find the developers. He then met with them personally and was in constant touch(it helped he was in india a lot) till the launch of the project.


I now insist that developers spend at least a couple of hours per working day in my campfire room, so any issues or miscommunications are dealt with early.

i also have process guidelines documents that they have to read - its fine to deviate from them but be prepared to justify that decision.

however i'm also technical, so i can suggest alternatives to issues that crop up and i can recognise when i'm being bullshitted.


I was burned a few times early on, but now I'm fairly successful with outsourcing. The big stuff: be a coder or have one monitor the project progress, don't trust anyone, go hourly on large projects, sample new contractors with limited 1 hour projects, and demand daily commits to a VCS for hired coders.

Without an expensive search, you won't be able to pay coders $5/hour and get good results. As another guy said, results from coders and designers in Eastern Bloc countries are typically way better, though the hourly is also higher. I've saved a sizable amount of time and money by not hiring <$10/hour guys. For those with skills that were charging less, there was always a gotcha hiding somewhere. Either they were going to string out the project intentionally, or try to use a crappy code generator program, or just try to game whatever controls had been put in place. It wasn't worth it.


A fresh startup requires extensive attention to detail. The merits of outsourcing are cost benefits. If putting in a few months of work into learning the software tools would get you to build it -- then put in the time and effort to do it. Build your baby yourself.


This article contains terrible advice.

Here is how to do it better: Search the coder's completed work pages on the freelance site using google's inurl: and site: search operators to limit your search to the pages showing coders completed work.

Target 10-15 coders who have completed something exceedingly similar to what you want, in the framework and language you expect, and received a high rank. Look for individuals, not companies, otherwise you can't be sure the expertise is still in-house.

Detail your specs exhaustively. Invite these coders to a private auction. Award the bid to the person who asks the most intelligent questions, regardless of price, as long as it is anywhere in the ballpark.

edit: The article's point about checking in frequently IS a good one, however.


So I've been reading all of your comments and I'd like to address the issue.

1. Cost was/is a big issue. If it hadn't been, I would have hired someone locally. I picked the best (or what I thought was best) team at the time based on price and the intelligence questions I received from them.

2. The company knew I was a non-technical founder. I made is explicitly clear that they would have to use their best judgement to implement the required features without having me to review the code.

3. I actively encouraged them to use their best judgement. As things became viewable on the front end, I would give feedback and they would tell me what they thought would work.

4. The primary issue is a communication issue on two levels:

    a) Communication between a non-coder and a coder
    b) Actual messages not coming through (status updates sent on schedule, not being online at the right time, etc)
After multiple attempts to solve the issues myself, I decided the best thing I could do is find a coder co-founder. I did, and he is feeding back shorter, concerte, assignments to the outsourced team. We are also focused on iterating the release which means I hope to god we get rid of the godaddy landing page soon. This is to be followed by the primary component of the site and then we will assess from there.

As far as motivating the team again, that is a far more difficult thing to do. I think the best thing for morale is to make progress (that way they can be done with this blasted projected). I can't justify throwing more money their way (nor do I have money to throw at them). When I was in Egypt I was even thinking about flying to India and head to their office to see if I could help there. It didn't happen.

For those of you who are criticizing the way I handled the whole thing, fine, there are definitely areas where I made mistakes. If the whole thing collapses it was worth it for the learning experience, however, I am firmly committed to leveraging the outsourced team as much as I can via my co-founder.

Thanks for all the feedback,

Dale

PS: This is the most blog hits I've ever had (which isn't saying much).


Great article!

For what it's worth, here's my take on the same subject: http://sivers.org/how2hire

Similar problem, different perspective, some similar solutions. Hope it helps.


I think his expectations for what it costs to create any sort of social networking site are unrealistic. I've seen projects in the U.S. quoted out around $5000 that have failed miserably, and the ones I've seen succeed have spent about $40,000 on initial development -- and unless you've got incredible luck, a talent for viral marketing, or some kind of "edge" (preferably all three) you can easily spend that kind of money on marketing too. (Ok, in this case the "money" might be you doing 6 months FTE doing PR and sales)

You can get away with shoddy U.I. work if you do "enterprise" development because the people who buy the product won't use it. Social web sites need to seduce users, so fit and finish matter a lot. If you make people click too much or the design looks cheap, you can put people off.

If the site gets traction, he'll quickly discover that a social system becomes a trouble machine which will require the need to solve technical and "people" problems quickly, and the $3800 programmers can't help him with that.


A lot has been written about outsourcing and shared on HN. I think one way that may help you outsource better is to start with a prototype built with the help of someone who is local and available close to you. A wireframe with complete mock up flows of all pages or even better a static html website that mimics all user interaction for the web app you want to build. ( Refer - http://www.svproduct.com/high-fidelity-prototypes/ by Marty Cagan. He was previously VP Product Management at ebay)

Of course you will still have to find out a good offshore development team, but you will be making it lot easier for the potential service providers to come up with better cost and time estimates.


Is it just me or this should have been a crazy rant about how much outsourcing sucks?

I don't want to sound like a racist(don't take this the wrong way), but I had a lot of projects where the client previously employed Indians to do it, who conveniently took the money and left a poor excuse of a product in it's place.

Most of the code Indians leave, is simply trash, no I don't mean bad code, I mean trash something that you will be forced to throw away.

Indians may be cheaper in the short term, but they won't be able to build your product.

These Indian freelancers give the rest of us a bad name(including the other Indian freelancers who are good coders).


> Trekdek was supposed to be launched in November. It is now supposed to be launched by the end of January. I’m thinking this won’t be launched until March.

For an overall better experience I would suggest paying by the hour. Cause once the project gets delayed, the developer starts losing interest in the project, since he/she won't be making any more money from you. You would obviously expect the work to be finished without paying them more, but the developer on the other hand wants to make more money. So this becomes a chicken and egg kinda situation.


One can argue that good code is good code no matter where it comes from, but I think this guy should hire an engineer with whom he can discuss the big picture stuff and can edit when the outsourced code returns. Engineers are useful for their feedback on the technology too, and he could probably greatly improve the sight and explain in detail what kind of technology is at play. I think a CEO should be well informed about his own technology even if he's contracted it out, and should have a close ongoing relationship with engineers.


My own experiences with eLance haven't been great, but I'm sure for some people it's worked out. It's best to work with local talent, even if it's going to be more expensive.

I'm guessing trekdek hasn't worked out since if it were going to launch any time in the near future, a coming soon page of some sort would be in place of the GoDaddy landing page. But that's ok - I've done many things which haven't worked out as well. You should regroup and try again, you will find you have learned a ton from the mistakes you've made in the past.


Hey all!

So the outsourcing wasn't going so great as a non-hacker so I found a co-founder to start managing them (the India guys). I'll be uploading a blog post about new things I've learned soon.


So... at what point do you become expendable?


Come on. The world doesn't revolve around programmers, despite what we read in the NYT and LA Times. It doesn't revolve around anyone. The fact that the fellow doesn't program doesn't mean that he's a newborn infant in the woods. It takes many hats to make most anything succeed.


Thanks for coming to my defense. It's true at this early stage I tend to feel like a worthless turd, however someone has to learn marketing, sales, finances and all the business shenanigans. A programmer could do that too, but since he is occupied with managing the important part, I figured I'd make myself somewhat relevant.


If any programmer thinks they can pull off a solid VC investment without excessive research and data supporting their product's potential for success, they may as well just sell their code off to someone more informed. You're as necessary as anyone.


Not all people calling themselves business co-founders are great at this either. (Not saying in this case just in general)


I've kept laughing up until "... weekly Skype date." To get my sanity back I've had to listen to http://www.youtube.com/watch?v=ZA1NoOOoaNw. Now I am back and lucid :-)


Wouldn't a HN related freelance board provide much higher quality work at a reasonable price?


Agree! the HN hiring thread or the contractor spreadsheet might have helped too (but I doubt the "reasonable price" part :)

I definitely did not feel good after reading the post. (Most of) these guys on the freelance sites seem to be undoing the good work by others from the same geographic region by providing such poor service and thereby allowing others to define the stereotypical "Indian developer" by the poor quality of services offered. I personally know fellow good programmers who would be offended by kind of service offered by these people.

IMO, the author of the blog post should have taken help from a technical friend to choose the contractor(s).

In the couple of interviews I've gone thru (and even while making friends), the opensource code I've written and the a reference at the startup I did my internship at, has come to influence the other party's decisions and outlook towards me.

I sincerely hope, that the author has his project completed at the earliest.


Higher quality, many times the price he is looking at though.


I give props to the guy for trying. I've been the non-techie trying to build software, and it is a biyotch!


you get what you pay for.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: