Outsourcing vs Offshoring
A lot of the discussion about last week’s MBA Mondays post on Outsourcing was about the differences between outsourcing locally and outsourcing outside your home country. A popular term for the latter approach is offshoring.
The advent of modern electronic communications has allowed companies to efficiently source and manage labor all around the globe. This is one of the megatrends, if not the megatrend, of the current economic period we are living in.
But just because you can use labor halfway around the world doesn’t mean you should. This post is about the pros and cons of offshoring from my perspective.
On the plus side, offshoring often offers considerable cost savings. Labor costs in emerging markets are often a fraction of the labor costs in the developed world. And you can often tap into highly educated and skilled labor pools. We have companies in our portfolio that have built world class engineering teams in places like Belarus, Solvenia, and India. These teams cost less and often produce amazing work. AVC community member Ken Berger has been involved in building a strong team of ruby engineers in Vietnam. I have no doubt that team can do excellent work at a fraction of the cost of a team of ruby engineers in San Francisco or New York.
On the negative side, there are significant communication and management issues that arise when you have a team working half way around the world for you. Yes, you can Skype, IRC, Twitter, and IM all day long with your remote team. But often they want to be asleep when you want to be awake. Israeli tech teams are well known for their participation in critical product/tech meetings with their US counterparts in the wee hours of the morning. They might be in the meetings, but you have to wonder if they are at their best.
But as problematic as the communications issues are, the management issues are even harder. You can outsource the management issues by hiring a firm to do your work for you. I am not a big fan of that approach, particularly for startups. As I outlined in my post last week, I believe startups need to directly employ the people doing the most critical tasks. And for a startup, that includes things that are commonly offshored like software engineering and customer support. And even if you outsource the management to an offshore firm, you will have to manage that firm. And managing vendors is often harder than managing employees.
I have observed that hiring a local manager for a remote team is often the hardest thing to do. And you need a strong manager in place in your remote location if you are going to be successful. A weak manager of a remote team is almost always a disaster for your company. It causes delays and management messes that you will have to clean up.
The most reliable technique I have observed is to ask a trusted and experienced team member to go overseas and launch/manage the remote team. That is a big ask and often is not possible. But if you can make that work, it has the highest probability of success.
The companies in our portfolio that have done the best job with teams located in other parts of the world have had founders who came from those places or founders who spent significant time in those locations. They are able to source high quality talent and manage them, sometimes even remotely due to their familiarity with the people, place, and culture.
Speaking of culture, you can’t overemphasize what a big deal it is having multiple cultures in your company. Some cultures take it easy in the summer and work hard in the winter. Some cultures have different approaches to gender in the workplace. Some cultures value respect more than money. Some cultures value money more than respect. Multiple cultures can often create tensions between offices and teams. Managing all of this is hard and I have not seen many do it exceptionally well. But I have also observed that as this kind of organization structure gets more common, entrepreneurs and managers are getting better at handling cultural complexity.
The single most important thing you can do is get everyone, at least all the senior team members of the company, across all geographies, together on a regular basis. And I think it is not a good idea to always have the remote offices come to the home office. The home office needs to travel to the remote offices too.
As I said at the start of this post, being able to source and manage talent all across the globe may be the signature megatrend of the current economic period. It has far reaching consequences for companies of all shapes and sizes. For startups, it offers lower costs and at times access to excellent skills and talent. But it comes with great challenges and you should not undertake an offshoring exercise lightly.
Comments (Archived):
With offshoring, one thing is true: know exactly what you need done. If you give a team in India a task that is vague, you’ll get back results that are wrong.
Even if it’s not vague they may still create something different than you wrote clear specifications for. Just saying..
This is so very true. I’m nor sure if it’s the result of miscommunication, an attempt to reuse code that was never going to really fit, or just an attempt to sucker more money out of the deal.There is an easy solution. When negotiating the deal, get them to agree that code has to pass unit tests to be accepted, then provide the unit tests as part of the specification.
Writing unit tests before the work means you are writing the most detailed spec possible before the work is started. This approach is the classic outsourcing approach, and is a way to get usable work out of underskilled teams, but is very prone to failure.Also, teams that are not used to doing QA won’t be able to turn it on for one project. You can find out whether the team is actually capable by getting code samples and reviewing them
I hesitate to generalize about a country as large and diverse as India, but here goes:The vast majority of the work I have contracted out has been to professionals in the U.S., but I have contracted out a few small jobs via Elance to workers in India. My sense (and I have spoken to others who share this impression) is that the most talented Indians in tech are either working here or for one of the top-tier companies in India, and that there can be fairly steep decline in quality as you move down the depth chart. I probably shouldn’t single out India here — I wouldn’t be surprised if the same were true of other developing countries. I think our views of the work forces in other countries can be unrealistically elevated sometimes when we extrapolate from our experiences with talented immigrants from those countries.
With traditional “outsourcing”, your conclusion is dead on. But sorry folks, can’t agree with that generalization. This is exactly what Agile is about. With Agile development, you don’t need to know your exact requirements or specifications in advance. That’s why Agile is so talked about and increasing in popularity among startups these days.It is NOT so easy to pull off though, particular overseas, so be careful.
I agree with this completely. Having teams that understand and follow Agile ideals and process well will be a huge help.Having someone on site who shares the vision for your startup and can make meaningful, fine grained product design decisions on your behalf, and who can manage the team the way a technical cofounder would, is independent of the software process and is more what Fred is talking about.(disclosure..I also run an Agile teams in Vietnam, and know Ken and his partners well..they’re great and we keep a friendly rivalry going)
LOL.Vague?? If you give something vague and you will get something vague back … why do you worry whether it is right vague or wrong vague or vaguely vague? :-)That is true for anything you do… not only for coding.
I think you are fighting an uphill battle trying to convince MBA students that offshoring isn’t all Pros and no Cons. It is drilled into their heads in school and by the media that hiring offshore programmers for a fraction of the cost of local talent is always the way to go.
Maybe it’s an uphill battle with MBA students. But perhaps not with unemployed MBA grads.
Tom Demarco called it “The myth of fungible resource”
Don’t offshore your office space. One day you’ll wake up and find yourself living in an entirely different country.But in all seriousness, don’t offshore your core competency and stick to customer support as long as possible. I don’t see any reason why a startup shouldn’t deal with their own customer support. It’s a free learning experience in your own product.
‘It’s a free learning experience in your own product.”That is a great point no matter how small/large the company.
I used to work for a company called Rural Sourcing (http://ruralsourcing.com/). Allows companies to save money while keeping jobs in America.from their website “Domestic Sourcing offers the best of both worlds, combining experienced onsite professionals with remote development teams located in rural communities across America. This cost competitive service model brings highly skilled developers to your project. “
love it!!!
Makes a lot of sense – like why Paypal decided to build in Omaha vs. the Bay Area or NYC.
Fred, your observations are consistent with my somewhat limited experience in this area. I know (closely) of two companies who suffered great damage by using off-shore tech teams, both of which suffered because of the lack of direct stake-holder management of the off-shore team. In the first case, it set a project back a couple of years to undo the damage. In the second, it brought the company to an end, after which the founder met all of his obligations out of his own pocket and sweat to meet his clients expectations (albeit late). His reputation is in tact – his pocketbook, not so much.In another case, a friend is experiencing great success with using off-shore talent because a partner is local to the talent (India in this case), oversees the team, works with them, and maintains the company culture in this satellite location.Good post.
The major trend in off shoring is small business. It will be a huge trend. The problem I see the majority of people making, is that they go to cheap. you don’t need to hire someone for 5.00 an hour. You can afford 20.00 per hour because its contract labor like a taxi cab. It only lasts for a little while.
Agree completely. Small business is slowly but surely discovering the benefit of $50 logos and illustrations and web sites.You are right, the cost difference between the $5 v $25 practitioner is peanuts in the end.
Offshoring UX and UI design for a product is the worst thing you can do, I don’t understand why some startups offshore UI design for their Web product. Most of the early adopters are in the US, developing a good UI and user experience can be done best in the US. Some of the backend database development stuff is a good option for offshoring.
never outsource your interface with your customers
I have been working with a startup-style offshore team for a couple of years now, and had an earlier stint doing so at a startup 10 years ago. Both were in India, so that worked to my advantage since I could easily “speak” both cultures. In both cases, I managed to get strong value without having ever met the people. If things are structured right, this is possible.But you are right, in general the issues are significant. It is basically not possible to have a core team member be offshore without at least 6 months of mind-meld face time I think. But after that, things are fine, so long as there is periodic “refresher” face time.I like one BIG advantage of offshore though, which goes beyond the diversity you mention. The Bay Area (and I am sure New York does too) comes with its own particular dogmas of the “right” way to do something. “Sufficient” is mistaken for “Necessary.” Offshore teams, handled right, are refreshingly free of these dogmas (though they may have their own local dogmas) and come up with surprising ideas sometimes. The collision of dogmas leads to a less dogmatic mindset all around.I think the future, whatever the problems, is with virtual and highly distributed teams. The cost (for companies) and lifestyle design (for talent) advantages are just too high. Teams should develop a sense of “shared situation awareness” and bring core team members together as often as necessary to caucus, but “talent, talent, talent” and “location, location, location” no longer necessarily intersect in the Bay Area I think :). This is also a way to open up the 2.0 echo chamber. We forget that being close to other team members and the “industry” is ultimately less important than being close to the customer. This may be why so many tech startups fail to “cross the chasm.” If the 3 of my top 5 customers are in Huntsville, AL. Well, I want to be in Huntsville, AL.We may see, in the future, a “geographic launch” startup model, where people get together in a place like San Francisco for 6 months to get something off the ground, and then disperse and run a distributed operation. One senior manager (almost certainly the CEO) would have a roving charter, to visit all hubs of significant activity, while the entire core team would come together every X months as and when the CEO/board start to sense that team chemistry is going down. This wouldn’t be regimented/process-oriented, but opportunistic, like tacking a few “chemistry” days onto major client site visits or launch events.I am frankly excited about this model, and would like to see more innovation around it, more tweaking and tuning, until we get it to work. While I love visiting creative hotspots like California (I am DC based), I always get restless after a while, like I am hearing the same conversations ad nauseum, and itch to hear other view points.Venkat
Venkat,Agree wholeheartedly that highly distributed teams that are cellular in nature are where things are heading. Members are added as they are needed and moved to other things (even other companies) as needs change. It brings management and communication challenges, sure, but also brings more innovation and raises the bar for everyone on the team. You get the mix of new thoughts and desire with cellular members and each member is pushed to do better than the last member.Exciting times!
One can take a slightly more modest approach as well: distributed teams that are cellular, but still domestic. This is an approach which we at my startup are considering, as a couple of “cells” are located in parts of the country where the cost of living is considerably less than S.F. and NYC.In one case, a small group (3) already have worked together, like each other and have skills that are well suited to being tasked as a unit. They like where they live, love our project, etc. In this case, we believe that we can get more value because the travel to area is cheap, communication is easy, etc. It will be important to bring the whole team together at times, and in this case the numbers work out.
we have a number of companies that do thatindeed and return path come to mind
i just don’t know that a distributed workforce can scale beyond 20-30can you imagine that working in a company of 300 people?
I think it depends on the nature of the business. I recently interviewed oDesk CEO Gary Swart on our blog, and he said “we still only have 40 full-time employees which we augment with 100 full-time equivalent contractors from around the world.”I think people will figure this out and find ways to scale. A new way of thinking about management and HR is needed. The answers just won’t be easy ones that you can pull out of an organizational design cookbook. They’ll have to be thought through and experimentally arrived at on a case by case basis.So yes, I *can* imagine it working in a company of 300 people. There are unknowns, but they are more like problems to be solved than unfathomable mysteries I think.Venkat
“There are significant communication and management issues that arise when you have a team working half way around the world for you”Having just finished a large development project where most of the development team was offshore, I would totally agree this is true. Though there were significant cost reductions using these resources, we ended up sending US team members overseas to help with the management which ate up some of the savings.Some things that help: 1) use resources in a relatively close time zone (e.g., Argentina or Brazil for US based projects), as this cuts down on the 24/7 “zombie” syndrome 2) double up on key resource positions such as requirements/design/architect and have one in each location, it may cost a bit more but it’s the next best thing to being in two places at once.
zombie syndromei love that term
You make some excellent points.I would add one: make sure you have a team that knows how to offshore. Or, as we used to say as consultants: someone else paid for all my previous mistakes.I work for a mega-corp and my team here in the US (7 senior managers) has spent the last five years building knowledge about how to build distributed process, negotiate the hiring processes in Costa Rica and India, etc, etc, etc. We’re d*mn good at it, possibly even world class. (Our turnover in India is <2%, for example.)Were I to do a person-power intensive startup, I’d want guys like these to lever us up on inexpensive high quality labor. (You will also need a good US law firm that does Indian or Romanian law.)I would say that sending an inexperienced but highly capable person over to launch the team is still going to be expensive and certainly no barrier to failure. But not sending them over is a guarantee of failure.Which meanders me to my final point: you have to need enough labor to make the $100K/year in travel and time worth while. I figure for a technical team the break even is five people. If, like me, you know good people you can just go poach.-XCPS – Also, everything takes a LOT longer than it should.
What’s your take on outsourcing/offshoring investors? I know USV invests in diverse startup locations but the founders have to be willing to incorporate in the US. Does it make sense to talk to investors from Boston, the Bay Area, and Boulder when a company is pitching?
Well, here’s a funny spin on that question.As most of you know about me by now my heritage is Central/Eastern Europe, mostly Czech, Slovak and Hungarian. I worked in Prague a long time and we did some major stuff, stuff which I usually have to explain ad nauseum in the U.S. But over there I say one word and they stop in their tracks. (we literally turned media on its head there)So a few weeks ago I’m on vacation, first time there in 10 years, and along the way go meet up with a wonderful brilliant guy who’d found me via my blog, who is there…and a top SEM/SEO guy in Europe and globally. He’s made his money (incidentally, was a student of one of my best friends, who lectured in Marketing way back when). The nice thing about over there is it’s small and everyone knows each other. They’re also very startup-oriented. They’ve been starting up stuff since 1990.Next thing I know I’m pitching in Czech. He offers to invest.I never imagine in my wildest dreams that an investment flow could happen from there to here.Who’s the undervalued asset now, eh?
Nice, T! You’re turning into a rainmaker.
love that story.
Investors don’t need to be local, I like that answer. And while they may not have as strong US market networks, it’s an instant link to growing your business globally.
yes, but you will generally have more success with local investorsthe hit rate will be higher locally
Well this post is personally very interesting to me. As you know I have done a ton of outsourcing offshore.The one thing I have found is that the hidden costs of offshoring almost never make it worthwhile. It is so easy to get stuck on the, “Holy shit these guys only cost $3 per hour” and not adding up the other hidden costs.Off shoring has only worked for me twice. The first time we ended up moving 100% of the company to the offshore location including all of the US management that remained. This decision came after failing at offshoring, and in the process almost bankrupting a very successful company.The other time was having the offshore agents do a very specific task that we had 100% mastered on shore first. We also spent a lot of time building the tools to automatically manage these people and that made it efficient.If you are a startup doing your development on shore in one office and your competition is outsourcing their development then I can almost guarantee you will win. While they are messing around with shit code, time zones, culture issues, churn, etc., you will be moving the ball forward every day on the business without this massive friction in your way.
don’t want to mess around with shit code!
In a previous job I managed the set up of a sales call center in Argentina to sell mainly to Spain, but also to Peru, Chile and Argentina. It was just after Argentina’s default and the savings in relation with Spain were huge (similarly skilled sales people costed around 75% less). With the other countries it was not about money but to have a centrailized operation with enough volume.When we started their performance was great, but it came with a great cost because we had a couple people displaced there and some others travelling frequently. We tried to create a nice culture there,but we/I couldn’t do it. People quitted frequently and the cost of training grew a lot (we paid well, but they had to start working at 3am when selling to Spain, which was about 75% of the year). And like people didn’t plan to spend much time there the service was poorer. Also, Argentina’s currency started to recover and the savings started to decrease. In the end we found that the complexity and the costs were not worth the savings and we shut the operation.Some time after that we made another attempt in Brazil and it worked fine. They only sold to South America and we found that the idiomatic barrier was easier to overcome than expected.
I regretfully offshored my first major software project to a company on a little island in the developing world. A place called Manhattan.Had all manner of cultural tensions and language barriers.Never again.
I LOL’d.
Pretty damn……………………………………………………………………………………………. clever. LOLI have always wondered how folks from NYC can be so nasty when the Reuben and cheesecake is so damn good? It is truly a wonder.
We’re a lot nicer than you give us credit for, jerkoff.;-)I totally LOL’ed on that one, too.
Haha!
Some New Yorkers can be nasty because, for most of them, NYC is a tough place to live. The Onion’s recent spoof on this was dated in some respects, but used a kernel of reality as a jumping-off point for its satire, “8.4 Million New Yorkers Suddenly Realize New York City A Horrible Place To Live”.Re cheesecake, I prefer the Italian version to the New York version, but even Italian restaurants around here often serve New York cheesecake instead.
Honestly the best cheesecake I ever had was a Trader Joe Cheesecake flavored with Key Limes. I have a thing for sour food, and I thought the combo worked well. Unless you have a great NYC cheesecake place that you guys are hiding from me…
I had a similar problem contracting some software to someone in New Jersey.
All the jokes about hard New Yorkers emphasize even more the issue of cultures prevailing over geographies. Our company is headquartered in NYC with 10 or so people local in this office. We’ve worked with remote employees across the globe — San Francisco, Austria, Philippines, Russia, and Israel — and yet the bulk of “combustion” has always occurred on our home turf. I’m not suggesting that managing teams across the globe is not a challenge, because it is, but I’m not convinced that it’s more a challenge really than managing people locally, just a different type of challenge. I would suggest that any company considering the offshoring exercise first make sure it has proper middle management installed, but I’d suggest that for any local team beyond 10-12 people anyway.
nice place, manhattan
In substance, if the plus side outweighs the “great challenges” then go for it.
Fred, you missed one important thing with offshoring – ownership. In my experience, offshoring will work if you have a leader in the remote location along with the ownership of the product (or the piece of the product) being built. The concept of working with the remote team on a day to day basis with the philosophy of “get work done by them” will fail in most situations. Best approach is to hire a smart team and give them ownership of what’s being developed.
I couldn’t agree more. The prep-work for outsourcing projects is to build champions out of the team members. Get them focused on owning the project. It takes a good manager to do that.
yes, that should have been in my post
I’ve been managing a team of sysadmins who support one of the top ten largest Solaris fleets globally (according to Sun, now Oracle) and we make extensive use of offshoring. From my experience, the most important factor is getting an excellent local (as in offshore) manager.The local manager is the most critical component of the equation – bad managers hire bad staff, run their teams inefficiently etc. However the most important reason is that if you have a poor manager, you have no visibility to the issues that the offshore team may be having. Often you may think that the offshore team has poor skills, or have ‘cultural issues’, or the tens of other ‘stereotype’ reasons why offshoring is often maligned – however what I have experienced is that in many cases, these reasons were ‘guesses’ on the part of the on-shore team based on incomplete observations. The real reasons are only known to the offshore team and if the manager doesn’t have the experience or skill to identify and call these out, you have no hope of developing a successful relationship and delivering.Edit: Gah – Signed in with wrong Twitter account … should have been @benfon
Offshoring has changed a lot in the past 15 years. In the mid-90s I offshored a major project to India and was literally the guy on the phone/fax/plane to Bangalore dealing with the engineers over there and going back and forth with the team in the US. It was amazingly hard/complicated, but ultimately was successful (we built what is today’s largest selling plug-in EV in the world http://en.wikipedia.org/wik….For years after, I was hugely skeptical of offshoring because of the communication, cultural, time and other differences. Eventually I tried offshoring in other places around the world including China and Mexico. Not only have the cultures (both here and there) changed, but also the technology.Today I offshore a lot of work to Europe (Croatia, specifically) and the talent we have is the same or better than in the US while providing significant cost savings. These savings can’t be underestimated for an early stage company. I also like the discipline that Skype/WebEx/Basecamp/Etc. instills in a team. So overall, I think offshoring of engineering is very much a viable solution for a good deal of startups. It’s not right for everyone though.
i am a huge fan of the former yugoslavian countriesgreat people, very strong engineers
Man, that’s a tough one.Fred, I have more experience than most trying to offshore work, and while I’ve been generally successful at it, you’re EXACTLY on point; when you add time zone and language issues (I won’t even try to address culture; it’s too nebulous, definition-wise) and compare them to that theoretical cost savings it’s often more trouble than it’s worth.I will, on the other hand, point out that your example about Israeli workers taking meetings in the wee hours isn’t necessarily correct; I’ve done work with Pakistani teams that are (or claim to be) on that schedule permanently; they serve the US so they work our hours. Midnight IS “at their best”.As for your point about small business not outsourcing management function: well, I take exception, but then of course I do, since outsourced management is what I am.In the end it comes down not to talent availability, but cost. And as overseas talent gets continuously more expensive—ESPECIALLY the kind that’s managed by an overseas expat now living in the US and this schooled in this issue and trying to expand his own profit margin—the cost advantage gets smaller and smaller.Like I said . . . I agree with you. But there are more (and more important) reasons than you enumerated.Jeff YablonPresident & CEOAnswer Guy and Virtual VIP Computer Support, Business Change Coaching and Virtual Assistant ServicesAnswer Guy and Virtual VIP on Twitter
“The Megatrend.” Apt observation. I like the face time, screen time talk better. How do you manage people under the same roof or in the same city talking to each other through screens more than 90% of the time?
Building a great working culture is so important. I think culture can transcend the screen, but you need champions on the other side.”Without culture, and the relative freedom it implies, society, even when perfect, is but a jungle. This is why any authentic creation is a gift to the future.” – Albert Camus (1913-1960) French novelist
<snip>Speaking of culture, you can’t overemphasize what a big deal it is having multiple cultures in your company. Some cultures take it easy in the summer and work hard in the winter. Some cultures have different approaches to gender in the workplace. Some cultures value respect more than money. Some cultures value money more than respect. Multiple cultures can often create tensions between offices and teams.</snip>You really don’t have to go overseas to experience these treats. East coast to West coast will do fine in many cases. Disperate teams that are managed as if they were homogenous is trouble waiting to happen.
truebut i think it gets worse when you cross country borders
When I was at Techrigy we outsourced relatively simple code needs to a team in Argentina, lessening the time zone issue. All communication was via IM. They never had a call. The pieces they were doing were not mission critical. It worked pretty well.
i have heard very good things about argentinano direct experience with remote teams therebut i did do a few investments there a decade agogreat country
And they can be great for American projects because they usually speak English quite well and they are in a similar time zone.I had a bad experience there but it was not because of the people, which were great.
Being from Argentina myself and being involved in providing complex products/services I can talk about our experience:- First assess your project risks, simple projects don’t have risks outside of a capable team but complex projects can have just one single requirement that impact terribly.- Outsourcing/Offshoring a key product is 99 % a mistake, mainly if the founders are not technical and don’t have a clue about how to guide/spec a project (well, in this case the project will usually be in a red zone with an internal team too).- You must contract a team that have a product manager (or a guy with that mind) and that can be deep involved with the project. Almost all software factories have [obviously?] project managers not product managers.- Contract a company that you can hear, not only thinking in hiring zombies following “the instructions”.- Outsource specialization, focus and previous experience in your area: Ruby on Rails, ASP, or Python are not specializations.- Do a strong prioritization of your specs/needs: it’s a good way of communicating your perspective about the project beyond technical details.- While searching for very cheap outsourcing can be dangerous, price doesn’t give you the whole story, but it’s unrealistic that one or two developers can be project leaders, software analysts/designers, architects, testers, QA at the same time.- So, hire a realistic team, not just developers. You’ll surely need a manager and a QA team (even if you have your own).- Give additional incentives for meeting deadlines. Best if you can give two scenarios, not just one impossible deadline.- Have a complete dev framework for the whole team(integrating issues with version control systems, wikis, etc). I prefer redmine for its simplicity: http://www.redmine.org/ but remember that counting lines of codes is not the best measure.- Look at the open source licenses carefully and try to purchase established components (mainly in Windows) to speedup and reduce risk.- Plan to release often. Agile is more a tacit contract between parties, it’s not a recent invention, not all customers buy the Agile mantra, so you need to balance.- If you’re from US try a company with a fluent english speaker in the team.And remember that Skype was outsourced to Estonians, that’s an excelent case study.Now some small rants about Argentina, this is my opinion and it’s probably not shared by <=40% of the companies here:IMHO Argentina has very creative and smart people (mainly on the computer security, reverse engineer, boutique/indy gaming scene, graphic design) and it’s a pity that many companies are oriented to outsourcing/offshoring instead of giving more value building new products/services.I don’t call it an “industry” because there is a strong shortage of skills in some technologies. You have good people doing linux/windows drivers but you can count them with the fingers. Java, PHP, Python, Ruby on Rails, Javascript, .NET are the top technologies (comparing to shortage in strong C/C++ skills). Also there are good people in the algorithms scene, for example Sergio Sancho won the 2004 Google’s codejam (and this is real competition!), and he was not the only one with a good position in the ranking.Now some companies with real value added services:- Cocos2D for iPhone: http://www.cocos2d-iphone.org/ (one person company): The most used 2D library for iPhone games, strong community!- Core Security Technologies: http://www.corest.com A leader in computer security penetration products/services.- Three Melons: http://www.threemelons.com/ Acquired by Playdom. Games.- Sabarasa: http://www.sabarasa.com/ Games.- NGD Studios: http://www.ngdstudios.com.ar/ Games.- Wanako Games (founded in Chile by Argentinians) http://www.wanakogames.com/… acquired by Electronic Arts.- Flaptor: http://www.flaptor.com/ Web, search engines.
I have to believe, especially for software companies, that talent is really what should determine location(s) for different teams. Cost is just a function of talent (or lack thereof). I would be surprised if you are really able to get a lot of direct savings – more than 30% or so compared to USA – for teams in Slovenia or Croatia, but you might have expertise, a gelled team, or cultural knowledge that is hard to replicate elsewhere. Certainly business relying on purely “low-cost” delivery from developing countries have been forced to go farther and farther in those countries as wages have risen and opportunities increased.The other question one should ask is not whether it is “cheaper in India/China/Belarus”, or even “is it cheaper for same quality in India/China/Belarus” but “would it be cheaper for *me/my company* to get same quality and time to market in India/China/Belarus”. Just because someone is able to work effectively in Southern Europe or Pakistan, does not mean you or your company will.
I certainly agree to some extent with this. In my experience it can be beneficial to outsource software development but after two failed attempts to outsource offshore I’ll be sticking to outsourcing locally. I think if you can get it right offshoring could be better than outsourcing but it’s not a simple choice.You have to weigh up the risks/oportunity costs against these potential cost savings and often you’ll find it doesn’t stack up.
Agreed. That’s why I said the calculation and decision to outsource/offshore has to be based on *your* reality – whether *you*, and not some other hypothetical person or company, can get the savings you need (money and/or time to market) from this action.As discussed, certain habits and approaches just are not going to work with offshore, and it might not be possible/worth it to change them.
Yup. The management, communications & cultural translation layers that are required to keep an outsourcing project successfully on-track are not to be under-estimated for offshore projects, where software or business process outsourcing related.A note to those mentioning India. Much of the best talent India has is dedicated to serving very large enterprise clients that the big 6 (TCS, Infosys, Wipro, Cognizant, Satyam-Mahindra, HCL, Patni) monopolize and hire while they are still at university with very aggressive methods, so there’s a fat chance that a small start-up in North America will get the best Indian talent for software development.
“The most reliable technique I have observed is to ask a trusted and experienced team member to go overseas and launch/manage the remote team. “That’s true but there’s an other setup I’ve seen that can work well. Some companies are based here in the West but have outposts or their own contractors. in developing countries. They will help you with defining your needs precisely (as Nikhil says, this is vital) and managing the culture/time/etc that makes it normally complicated to offshore. They’ll charge you slightly more than straight offshoring, but if you factor the likely headaches and missed deadlines it might actually be cheaper.I really like this approach as it’s a sort of “middle ground” and apparently when done right it can work. A friend of mine has started a company around this concept, and I know he’s doing very well.
I think the real question is what level of detail, what granularity is cost effective to describe the project?If you have to hand schematics of the system, or even tempate code of the exact way you want the project and you want to build up to the very last detail, you may find that implementation time is not the biggest portion of the total project.The question I ask myself when I need such a project done is:furnished with a relatively abstract description of the project, will the offshore team be able to connect the dots and fill in the blanks a local team would be able to fill?It all has to do with assumptions and the degree of detail you can afford to provide in the description of the problem you’re trying to solve.
Yup. It depends on what kind of work you want to be done, and also if you’ve worked with the firm/partner before.PEGhttp://card.biz/peg
Agreed, Fred. I’ve had 5 great offshoring experiences in the past several years and a couple ofo bad ones. The great ones have, totally coincidentally, all been in India. The key is that they were managed by US-based, India-born CTOs. Each of the company started an Indian sub that was based very near the hometown or university town of the CTO. That sub was then managed day to day by an already known and trusted individual. In each case a critical success factor was a relative or a very close friend/mentor/advisor of that CTO who was deeply entrenched in the business community of the city we we operating in. I can’t emphasize enough the value of these relationships. Having someone who could help navigate things from a position of knowledge of and respect within the local business community was critical to navigating the vagaries of the bureaucracy, getting better attention and service from service providers, etc. This well-connected free help, plus the ability to have trusted advisors (in most cases professors) recommending specific talent were real diffence-makers.Having seen this play itself out several times I don’t think i could imagine doing it any other way.
that jives with my experience too brad
Hey Fred- nice. But how bout some link love in the body of the post? :)The firm we’ve been building out is called East Agile, see http://eastagile.com We are totally dedicated to Agile methodologies and eXtreme Programming. This includes paired programming, and there’s a host of reasons why we think that such processes help a LOT to address at least a little some of the concerns/negatives voiced in this discussion.Couldn’t agree more about the pros and cons. We learn every day about how to lessen the impact of some of the things you can’t completely fix (like time differences and communications). We’re now working on a second dev office in India– it adds some diversity and redundancy. We also are starting to add folks who are either US-based or can travel to our clients to kick off a project.I also think there’s a key issue: many folks look at outsourcing as all or nothing. In some cases, such as when you’re a lone entrep and really aren’t sure about your idea and just want a prototype, handing it off for someone to whip up is fine. But for a more serious company, *augmenting* your internal efforts, kickstarting, or mentoring services can be a great investment, whether or not it saves you money. We try to offer that, as I believe other firms such as Pivotal and Hashrocket do.
link has been inserted in the main postit wasn’t for lack of interest, it was for lack of time
I would also draw two major sub-categories within offshoring:1) offshoring one-off projects, or several finite time projects.2) offshoring services that will remain offshored for as long as the service exists.The differences are huge in the approaches you have to take to tackling management problems.Just to give an example, a project in the (2) offshored services category:I had to manage a team of 15 – 20 people based in Indonesia. They provided services for an online game that had to run seamlessly around the clock 24/7. The Indonesian team would cover our late night shift until Bulgarians took over in the eastern Europe morning.Most of the cultural problems I found were trying to identify who did what, assigning responsibilities to individuals and making sure they would report their performance individually.It took me a long while to get them. Not to just understand them (all of them spoke english) but to grok the ways they were used to work together, not as individuals, but something more like a well-coordinated swarm of workers.You could tell the work was done effectively, you could tell the service was running seamlessly and we didn’t get complaints from customers.But you never had 100% certainty which individuals performed better than others. Mind you, it was even difficult to tell from reports who did what, even when they had specific time slots and tasks assigned. They just couldn’t work as individuals.I come from a hybrid socialistic-capitalistic culture and my mind is somewhat prepared to live a bit in both of those worlds, I know the best and the worst of each system.But the sort of hivemind way of doing things of my team in Indonesia was really confusing at first.It wasn’t just a collaborative way of working (that would be more socialistic, to draw a parallel), it was more like a well-tuned cloud computing brain made of smart people.There’s probably some anthropology studies out there which I ignore. I presume it must have evolved, and it has to be built-in the DNA of people who needed to live and survive in an area prone to great natural disasters and weather instability. (perhaps in their DNA not very metaphorically so)After a while I started to see patterns of behaviour, I started to learn which evaluation techniques worked best *for them*, which rewards they valued, which ways one was able to influence better outcomes and discourage the less brilliant ones.You have to be prepared for the unknown, you have to be prepared for a new world out there, and you have to be prepared to listen and understand people.Changing people and making them do as you say is just not cost-effective, you have to be smart enough to learn which is the best and most efficient way to influence the desired outcome.I loved learning from them, and they provided another tool for my arsenal so I couldn’t be more thankful for the experience.That takes some un-learning and a good deal of humility sometimes, but if you do it this way, you are in for big wins.
Good point. I’m also starting to think that there’s a modern category that isn’t really outsourcing, and I commented about this last week: http://www.avc.com/a_vc/201…Let’s face it: most offshore outsourcing arrangements fail. The single biggest reason is due to simple human communication that got broken or lost. Agile requires a very interactive, iterative approach. You might find out that the match between your team and the remote one, or maybe your business in general, will fail. With Agile, at least you fail more quickly!The point is that a tech startup, whether they look like a software company or not, shouldn’t just hand off their software development. With Agile, you work hand in hand with your dev team, sometimes on-site, sometimes remotely. It does not work unless you have stake holders involved (and my group won’t take or keep a client unless this commitment and resource is in place).Another factor (and yeah I guess it’s my day to self-promote) is that with our team, our CEO is Lawrence Sinclair. The guy is super-qualified, resourceful, and lives most of the time with our main team.
great point, great distinction
With outsourcing and offshoring on of the most common pitfalls for employers is firstly not taking the necessary time to vet freelancers and also being vague in project or task descriptions.Freelancer.com is the largest outsourcing marketplace in the world connecting small businesses and employers with freelancers from all over the world. We operate on a project basis so there is no long term commitment or contract involved.We find that most employers and small businesses are able to run a leaner and more efficient operation with our services. They are able to get more done for much less than expected.If you already haven’t done so check out http://www.freelancer.com and register for an account. Enter coupon code “AVC” at the end of the sign up process to post three project for FREE. This will be a great way to test out outsourcing and learn how to better use your time and the worldwide labor we offer.Coupon Code: AVChttp://www.freelancer.com/u…
Wow are you from Freelancer.com?? I have used the site to outsource a few small things like logo design and small graphics work. I think it’s great – so quick.You definitely need to be very clear and detailed in your task outline.
Hey Glen,Yeh definitely post a project looking for logo designers and graphics work. We have heaps of freelancers all over the world who could help you.Just make sure you are detailed in your posts.Feel free to sign up – use coupon code “AVC” at the end of the sign up to post 3 projects for free
Freelancer is great for one off projects and small tasks. I’ve never used them for long term work or long term contracts. Has anyone? They do have a full time option – I am considering this as I am looking for a VA.
One thing to be considered is if outsourcing can be replaced by better technological approaches. I’ve seen a startup outsource their entry-level tasks out of the country. I’ve got nothing against that, but although the task may be as simple as scanning information into a database, a new platform could easily replace this which in good ways brings back the task from out of the country back to HQ.
Fred, I’ve been lurking a long time – thanks for the great blog.There is already a trend; albeit small, to keep some of the less skill driven jobs that have been traditionally offshored in the U.S (http://www.ft.com/cms/s/2/0…. We are probably going to see more protectionist legislation from Congress as well as tax incentives from state and local government as they try and bring in clean industries to rebuild after the recession. These factors, when combined with the rising prices at traditional offshoring locations should make on-shoring a much more enticing choice than it has been.Interesting story about how times have changed. About 10 years ago before Belarus became known as a good place for offshore programming talent – one of the companies I am an adviser for had hired a programmer in a small town there. The CEO wired him a bonus of 1500 dollars for a particularly good piece of code. He sent us this great picture of the whole bank standing up and giving him a standing ovation because it was the largest deposit ever made there!I couldn’t agree more with your points about startups keeping software in house as much as possible but when you are bootstrapped sometimes you have to bite the bullet, here are some of my lessons learned. -Worry about IP rights – a lot. For example, in Russia, there are very different laws for independent contractors than for a corporation that sells outsourcing services regarding IP rights. You need to understand those risks before jumping in to any country.-Use Continuous integration methodologies and tools(http://en.wikipedia.org/wik…. These tools are critical for distributed teams and become absolutely essential when you are offshoring.-Don’t forget non-traditional outsourcing places like Costa Rica – being in the same time zone helps a lot!
i hope that movement gains strengthi mentioned it in my post last weekwe can get our economically struggling regions back on the right path by offering outsourcing services in those regions
During my brief experience working with an offshore team, I considered both a nunnery or living in a cave as viable life options other than work. Keep jobs in America for your sanity, if not for the country.
ouch!
I helped start the offshore development program for Orbitz.com six years ago. We decided to work with several companies in India (Cognizant, IBS) to help distribute work amongst our internal teams and also to hedge our bets. I think it’s critical for a team of cross-functional experts that travel for a longer period (or temporarily move) to the offshore locations in order to be successful. This not only breaks down communication barriers by being able to communicate in person, but also cultural barriers as there can be subtle yet significant differences in approach to leadership and management. I definitely learned a lot and really enjoyed by time in Bangalore.Having done that though, I really feel that the costs equal out in the long run unless the the company commits to building remote offices/teams of full-time employees like IBM, Google, Thoughtworks, etc have done. I don’t think that the communication gap and management issues are something that most startups are prepared to tackle, at least resource wise.
Very interesting article. I have been involved in outsourcing for many years (Romania, Ukraine, Russia) and the points made by Fred and Ken are right on the nail.Certainly management and communication are critical. If you are not going to send a team member oversees, and startups would almost never be able to do this, then I find that there are three major issues to tackle.Firstly, selection is critical and extremely difficult. Define your exact criteria and don’t compromise. Distill the essence of your project into a simple oDesk or Elance project that does not exactly describe your project but is easy to understand, sounds attractive and attracts the right skill set. Then do lots of skype interviews, produce a shortlist and finally, very importantly, go travel to meet the short list. It is a critical relationship and you need to sell them your vision, company and self. During these interviews, you need to layout exactly what you expect of them besides coding (communication especially).Secondly, how to get (force / motivate) your outsourcing team to communicate on your terms, not theirs. Communication is critical and developers are the worst communicators in the world. If your team communicates badly, you will sleep badly and get nasty surprises. This often goes hand in hand with a good local project manager. And by the way, communication works both ways. You have to make a special effort to communicate with them about the good things going on in the company that have nothing to do with development.Thirdly, you have to treat outsourcing teams as if they are a 100% part of the company / team. Too often I have seen outsourcing companies treated like somewhat inferior black boxes and this has predictable consequences. In my current venture, all our outsourced developers have stock options and are full team members on all levels.I am now working with a team in Russia that is a complete and utter joy to work with. Hard working, passionate and highly, highly skilled. There is no way I could have afforded this any other way either.And by the way – Agile is great if you can find a team that gets it (or something like it).
I completely agree.. I have been involved in building development teams for our product units that is based in US and Europe atleast 2 times in my career so far. Its a hardship… Offshoring needs an attitude, needs patience from home side, the development teams are like the electric chips to the organizations.. until they know how critical and important tasks they are doing and until the conductors balance and amplify them correctly they are not going to result in great things.Challenges of Offshoring are majorly:1. Visibility : Both ways 2. Patience : Usually a lot of times teams are not given the required time before they are set to produce.3. Communication : Travels, IRC, Yammer, F2F talks are all good.. there has to be a lighter side of communication.. which is leisure outings, where teams meet offsite at say a beach to know more.. teams that know each other well result well.So much more to say about offshoring… to me its a phenomenon, not a concept.RegardsSameerhttp://pm-better-than-sex.b…http://www.twitter.com/same…
Balanced post..Outsourcing is very similar to any other relationship management, the secret ingredients in the right order are,1. Belief – “Yes, I want to do it and yes it is good for my business!”2. Research – “Are they really someone I would hire?”3. Trust – “I have done my homework, yes these guys will exceed my expectations”4. Monitor – “Let us plan a regular timely check, to see if everything is fine”5. Feedback – “Hmm, that is not quite what I meant, here is a more detailed explanation”6. Reward – “Great work guys! You rocked, you are valuable to every penny to us!, lets do more together”I write this from Hyderabad, India and believe me if you miss any of these you WILL have issues “outsourcing”. That word is so impersonal! perhaps it should actually be “co-sourcing”.The list of companies which run their shops in Hyderabad reads something like this Google, Microsoft, IBM, CSC, AT&T, Dell, Accenture, Motorola, Seimens, EA Games and more…
Striking a difference between “outsourcing” – contracting 3rd parties and “offshoring” – establishing a satellite office at lower cost locations I would like to say this.I’ve seen some companies (shall remain nameless) who have decided to offshore certain operations. Plenty of money was spent in setting up a new office, hiring, training, flying people back & forth and other costs in an attempt to bring the offshore location up to the same level of expertise as the original location (within a tight time frame). Things were done to ensure the new office was standing on their own feet and the transition was completed in line with the deadline. For numbers sakes lets say the cost savings of this new location were projected to be 1mm a year. Within a few months of operating the new location made 1 simple mistake which cost the firm more than the annual cost savings.Moral of the story, despite all the numbers working out, the training completed, all the boxes ticked, it doesn’t always make sense to offshore. It was a management decision supported by a trend. Or a trend supported by management decisions. Either way I’m still not sure if any of the companies that did this have achieved much in the way of savings.It’s easier to pay more to get the job done right.
I think that you’ve got valid points about cost being the major factor for offshoring. Sometimes, one can’t stop wondering if it’s all about cutting down costs or something racist — like why do people in the first world countries are paid more than their developing country counterpart, even if they can do the same quality of job. I guess, we have a lot to learn here as the future of work is being reshaped into one big freelance nation and there will always be a call to ethical outsourcing or offshoring.
I wonder, being a day late and reading through comments now, how many people feel that if you are going to offshore, living in other places have helped or hurt the experience because it made it more/less likely that you would relate to the team?
I think knowing the culture and finding a middle ground is key, very very difficult but key.I’m an American in London working for a US company. Shouldn’t be too much of a culture shock should it? HA! It’s painful. Really really painful sometimes. I’m sitting here now, mind numb after a few hours today because of the dozens of messages from the US sitting on my desk when I got in, The problem is they simply don’t understand the culture, the way people operate, the wording of emails and so on that are all nuances creating cultural differences, misunderstandings, and other challenges. My developers are spread over the US and China, so throw those difficulties into the mix. The tech team leader is Indian so he doesn’t completely understand the Chinese culture, or the US team culture. Once he broke down the wall, went to China for a while, then shipped a few people from China to the US to work on rotation, things finally started to gel. But at the end of the day NY still doesn’t understand London or Hong Kong. The tech team gets mixed messages by speaking to the different regions. Yes this is a massive institution but I think it’s a great example of location diversity being a challenge. I’m very lucky in having a strong relationship with the US office having worked there previously I understand what they are asking and after 4.5 years in London I have an understanding of EMEA. Because of this I am able to walk the line and mediate. So the challenge can be overcome, but I think the important factor are the individuals involved being able to experience, understand, and adapt to other cultures. Finding the middle place where NY, Europe, and Asia can balance out, kinda like juggling.
I’ve had a company setup in the Philippines for 10 years now. It’s taken me a long time to get it right. There are two important lessons that I’ve learned that are worth sharing.1. When you finally find that perfect person that can run your operations on site, lock them in. Most people think to give equity to key developers but often leave out their outsourcing managers. Don’t do that.2. Make them work at night even if that means you have to pay them more. Having your offshore team on different hours just isn’t an option. You don’t want to ask for something done, only to take up to “red or blue?” then answer only to wake up the next day to “left or right?”. Put them on the same hours and provide them all with Skype accounts. It needs to be like they are right down the hall.Of course, I’ve learned a lot more but those are the two biggest lessons.
In my experience with many offshoring and outsourcing, the key is whether the tool is the right tool for the job. I have not seen much success outsourcing software development, as many are repeating here. However, for simple but important and large scale activities like data entry, data cleansing, mapping, tagging, monitoring, database building and validation, editing and translating, the cost savings are heart-stopping and amazing, especially if the service leverages the crowd.
Having been on the other send of the outsourcing equation (working from New Zealand, for a Finnish company), I can only agree with everything here. While we made it work, it was far from optimal.
I have a team of around 50 people in multiple countries, and have learned a lot about outsourcing over the last few years. Definitely it is harder to find good people in India or any developing country. I have personally never found someone I’m happy with in India and look more at other countries in eastern europe.The cost differences are not small at all. You can be talking 5-10 times greater cost for an equivalent person in the US, and if you spend the time to find the right person, the ability of that offshore person can be equal. However the difficulty is that if you don’t spend the time to find the right person you will probably end up tearing your hair out. The average programmer in India is absolutely terrible, a total disaster to deal with, whereas the average programmer in the US is fairly competent.I personally don’t understand how any start up business can hire staff at $80,000 per year and survive, unless that person is directly bringing on new revenue.In terms of management, it really depends if you are managing remotely or not. I don’t think there is a great difference in managing remotely between New york and LA and between New York and Russia. There is a more significant difference if you actually have an office.The greatest cultural problem I find is dealing with staff in India who do not give straight answers to simple questions. For example if you say “can you do this?” the person in India will often answer how they think you want them to answer, “yes sir I can do it”, which means in reality “Yes I understand you want me to say yes right now so I’m saying yes”. In Russia it’s completely different and programmers are much more honest and direct in their communication.Bottom line is that often the salaries of directly equivalent people are 1/5 as much in other countries. Someone who has exactly the same talents and abilities. So if you can find that person (not at all easy to do because the directly equivalent person is a needle in a haystack) then the business is saving very significant money. The reason why so many people fail at offshoring is because they simply did not find highly qualified people and that you have to sift through many more poorly qualified people to find the right person.
I agree with several comments here and trying to simplify the decision-making. I have experience with VC-funded outsourcing/offshoring startups, and corporate who use such business services.Conceptually when a process becomes mature/predictable/repeatable, it can be scaled to achieve higher economies of scale. Outsourcing companies in IT support, transactions processing, etc. (even in legal process and clinical research) have achieved a larger scale to pass on the savings to their client companies. Most likely a new innovative startup doesn’t have such processes; for example, process of developing iPhone app that involves lot of creative thinking.Offshoring (outside US) and scaling up operations at cheaper locations within US are both intended to derive location specific advantages. Typically a well established outsourcing player should be able to provide same high quality of services irrespective of its geographic location.For an entrepreneur, there are 2 key decisions that typically lead to outsourcing: (1) If one needs specific skills temporarily (non-core to business) and cannot build and manage the skills/talent in-house and/or (2) If the required skills are mature and repeatable that one need not spend precious management resources in managing those.If an entrepreneur is going to build and scale operations at a particular locations himself or herself (either New Delhi or North Dakota), the challenges are specific to the location (India’s culture & infrastructure vs. ND’s excruciating winter).When I was an entrepreneur providing web solutions and digital marketing services, I outsourced creative development (graphics, flash animations, etc.) as I needed the skills temporarily and did not know how to manage creative people. But I kept the critical tasks of search engine marketing in-house.
Fred,Thank you for the insight you provided in this post. As the founder and CEO of a Bogota, Colombia based digital innovation firm that only services US clients, I have lived these challenges for the past 8 years. The key insight you provide that is critical is the founders being local. I started this company with a Colombian I knew well. He knew the talent, I new the US market…and we had a prior professional relationship that allowed us to both trust and learn how to manage each other.We now have 140 of the best and brightest in Bogota. It can be done…but there are serious hurdles.Thanks for the unintended nod to Zemoga’s model.
I’ve joined 3 startups as technical management following failed attempts to outsource development. Two of those were locally outsourced, one of those was offshored to Costa Rica. In all cases, the results were the same – poorly engineered code that did not meet the business objectives of the company and a lot of time spent on non-essential features.In each case, it has only been the fundraising prowess of the founders that has helped the companies overcome this hurdle.The issue is that there is a fundamental disconnect between the interests of the startup and the outsourced partner. The startup needs a minimum viable product as soon as possible and at a manageable cost. The outsourced company has no reason to ever say “no” since they are usually billing hourly and will not be around to maintain the pile of code they’ve built.Most founders have huge visions for their company. I suppose it’s possible that some entrepreneurs can ask the right questions to navigate this process to get the right initial product built, but if they’re non-technical, it seems rare. Much better is the collaborative process of working with your own team that succeeds when the company succeed and helps you trim the fat and define a product you can start building your business on. You need feedback on what is easy to build and what is difficult, and aligned interests to define which of those difficult things are still worth doing.Many companies cannot survive such mistakes and will only succeed in transferring the money of themselves and their investors into the hands of their outsourcing partner.
Slovenia, not Solvenia 🙂 (maybe Molvania meme kicked-in 😉 http://en.wikipedia.org/wik…