4 ms·
I'm a partner at a Ruby outsourcing company in Argentina. I sympathize with the author, but I think the conclusion that outsourcing doesn't work is overly broad
by compay 15y ago
I'm a partner at a Ruby outsourcing company in Argentina. I sympathize with the author, but I think the conclusion that outsourcing doesn't work is overly broad.
The crux of the problem is that working with a remote team is a very different proposition than working with people onsite - a fact that is obvious but that people generally fail to act on.
Quite often at my company we're contacted by clients want to hire folks in a foreign country and expect them to work like remote employees, but cheaper, and with fewer legal responsibilities. They think that through the wonders of Skype and email, people in India (or South America) can work just like on-site employees.
The reality is that outsourced development to remote teams only works when the client is willing to adapt their own work patterns to it. As a client, you need to:
* Have a crystal clear idea of what you want built. The less communication overhead you have with the remote team, the easier your life will be, and the more likely it will be that stuff gets implemented the way you want to.
* Have frequent and early deliverable dates. Don't start a project that will take 6 months to get a first release out with a remote team. Shoot for as early a release as possible, followed by frequent small releases. This lets you pull out almost whenever you want and also reduces the likelihood of burning out the developers on the other side.
* If you already have a company with a bunch of people, have the remote developers work outside your regular dev cycle. Don't expect to plug in a couple of guys located 5 times zones away into your regular team, unless your regular team is already distributed.
* Be linguistically very compatible with the folks you're outsourcing to. If you have any difficulties understanding or being understood by the folks you're hiring, then you're significantly increasing your risk.
The well known Ruby consultancies like Pivotal, Thoughtbot and Hashrocket will all tell you, that outsourcing to foreign countries is a mistake, and that developers need to be on-site. This, of course, while basing a huge amount of their business on Rails and a bunch of other open source libraries and frameworks which are developed almost entirely by distributed teams. These companies have an economic incentive to lead people away from outsourcing to cheaper countries, so follow the money.
It just also happens to be the case that since many clients don't understand how much their own workflow needs to change, many outsourced projects fail and reinforce the idea that outsourcing doesn't work.
- johnbender 15y ago> Have a crystal clear idea of what you want built. > Have frequent and early deliverable dates. Both of these things are extremely difficult (if not impossible) for experienced software consultancies to know up front, let alone the crowd looking to outsource. More importantly both figuring out what to build and knowing when those things are deliverable have, in my experience, required the involvement and input of the developer.
- compay 15y agoA lot of companies are looking to build simple, mainstream projects. For example "add a shopping cart to my site." Those are easy projects for outsourcing. If the client is looking to do something that has never been done before, then outsourcing may not be the best idea.
- king_magic 15y agoExcept rarely do projects like "add a shopping cart to my site" turn out to be that simple. Each project has unique circumstances, and applying a one-size-fits-all attitude to the problem is never the right solution.
- Duff 15y agoI think that's his point. Outsourcing doesn't eliminate your responsibility as a customer to participate in the development process -- it just shifts part of the labor to another entity. Telling an outsourcer "do X for me", where X isn't a well defined thing (ie. run a warehouse, manage windows servers, etc) is going to be a disaster. What does "add a shopping cart of my site" mean? Do you want to figure out sales tax for various jurisdictions? Do you need to to interface with the German banking system? Is there a configurator? If you treat an outsourcer as a partner in development and participate in that process, you're either going to get a result that makes sense, or you'll figure out that the process isn't working out and terminate early.
- ori_b 15y agoAny developer worth their salt would come back with those questions, and work with you to hammer out a spec that they know how to implement.