Ask HN: Does anybody know any outsourcing success stories?
Hi all, I'm wondering if we can balance the recent spate of outsourcing doom and gloom talk here with any cases that people can relate where the outsourcing of software development (to anywhere) did perform as promised?
My hunch is that outsourcing does work out, even if less than half the time, but that those involved tend to be quiet about it and move on with life and business.
Thank you.
29 comments
[ 2.3 ms ] story [ 69.7 ms ] threadThe above is from MIT Sloan and pretty much sums up the reality of outsourcing. To do it right, it cost as much as onshore development. Outsourcing should be used to find quality people, as they are always in short supply, and not for cost cutting, because the reality is that it is not cheaper.
There are also cultural issues to deal with. I was part of a project rescue for a Saudi Banking project, in which it was outsourced to the US. The lending rules where not clearly defined, because the fact that Islamic Law forbids usury. That is pretty much common sense in Islamic Nations. The US developers and Architects where having a hard time grasping the fee schedules and therefore, the project overran and failed. When I was brought on I documented every little detail whether common sense of not and then promptly outsourced the business rule development to Egypt. The project ended up costing 1 1/2 times the budget and that is a pretty familiar story with outsourcing. If macro concepts can be missed due to culture, it does not bode well for the micro ones.
You see so much doom and gloom about outsourcing because that is the reality, backed up by countless documented cases, statistics and post mourtums. You hunch is wrong because it is anecdotal.
http://en.wikipedia.org/wiki/Islamic_banking
For example lets take an ATM machine, it would be like detailing the system and forgetting to mention that the user inserts their bank card to begin. It would be easy to omit that very obvious first step, because everyone (at least in the US) knows that you inset you bank card to begin. I know this is extremely simplified, but the point is there are items that everyone takes for granted as common sense. Some of these common sense items a very cultural in nature.
This isn't quite true in my experience. You are absolutely right in saying that finding good people should be the primary focus of outsourcing but the fact remains that the cost of living for even a very good person varies quite bit across the world. I have lived in both the United States and in India, and I would charge significantly different rates if I were to take up an outsourcing project today from Bangalore vs from California, say. I know peopel who are outsourcing high quality Ruby On Rails work at 35-50$ hour to small teams of ex ThoughtWorkers (due disclosure: some of my ex colleagues) in Bangalore, who are very very good at what they do (just to give a specific example). They deliberately avoid bottom-of-the-barrel rates, but I'd be very surprised if even those rates were viable in San Fransisco.
(Just to be clear I have no intention of doing this kind of work ever again - most outsourced work happens to be crap maintenance-of-terrible-codebases/braindead-cookie-cutter-work people in the West don't want to do. Cleaning up muck gets old very very fast)
As well, the cost of living of a developer is irrelevant as documented in the paper. The additional overhead of hiring managers and technical / business experts offsets any reduction is cost due to cost of living that one perceives as a savings. These are the hidden costs that the papers speaks directly too.
Sure you can, roll the dice on elance or one of the other freelancing board, work directly with a developer and hope that they get it right, but if a company don't hire project managers to ensure the project hits every micro-milestone and business analyst to document the requirements in extreme detail then that company significantly increases their risk profile.
That is the crux of the issue, you get the development work for cheaper but you offset the savings with additional project management and analyst costs because outsourcing causes more oversight and management.
I am looking to hear from some of the latter, especially from those on the commissioning side as they might be seen as less likely to have their jobs depend on it.
In contrast, from the 20 or so projects that I have seen outsourced to India, I have not yet experienced a success story. But I have seen many examples of excellent Indian developers here. When I asked them about the difference, the common answer is.. " If you are good, why would you stay there to make on 1/3 of what you can make here! "
Finally, Lately I've seen several senior engineers cashing out from here and returning to their countries to much favourable employment conditions.
For smaller projects (e.g. developing a website for a local business), outsourcing can be very profitable once you find the right provider. I've had a reasonable amount of success finding good providers in the past and they can cut development times on easier projects if you communicate clearly and provide wireframes / spec sheets. Most recently, I hired a PHP developer from Singapore who was asking for $5/hour and after I saw what he could do (with other languages as well), I immediately raised his rate to $10/hour without him requesting it. Now I've got a long term, loyal developer that works at an extremely affordable price to me and provides quality work. Is it the same quality as a $100+/hour developer in the US? Probably not, but it's very good and I'm happy to always put some finishing touches and modification in myself. I still save tons of time on smaller projects that way.
So to answer your question, yes and no. It depends what you're trying to accomplish and the exact providers you're going to work with.
Essentially what I do is spec out the project very specifically and have local people write the front end. Then we outsource the backend and have interns use the locally built frontend to thoroughly test the backend delivered from the outsourced company.
This isn’t dramatically cheaper since you have to spec the thing locally and pay interns to test it while still paying the outsourced developers (it only saves about $2.65 an hour by my calculations). But it does have advantages in that it allows us to be more flexible with our schedule (we can employ more or less outsourced workers as needed) and it does make for a happier development environment (allowing local developers to focus on the relatively more fun front end development and less on the nuts and bolts backend stuff)
So in the end I feel it’s successful though again not so much in the financial sense.
1. Hate front ends
or
2. Should never be let within a million miles of them
And for such a trivial saving I wouldn't want to sacrifice the coherent codebase, code reuse and inhouse knowledge of how it actually works. I would guess that the hidden support costs must be significantly higher too.
As for the "Front End" being fun I'd point out that the developers I'm working with are Information Systems people more than Computer Science people. They enjoy working with the actual users, planning features and then implementing those features. What the outsourcing does is allow them to say "I need this string parsed in this way so I can make the rest of this feature work" and just have it done for them rather than having to do the grunt work of writing the relatively easy but time consuming code that parses the string.
From a upper management perspective I get the impression that whether a software project is going to succeed or fail is risk of any project - and whether it is outsourced is a minor concern - or only a concern for the software development organisation involved in the decision.
I've seen outsourcing work best when the outfit involved brought some kind of ready made solution with them and it was a matter of adding functionality or adapting it for a specific purpose.
In addition I have seen acquisitions involving overseas development sites work well too.
It is not that the management at the large companies cannot see it. They do it prevent wage inflation in America. If they can get comparable work( and you can get it from India if you manage it right) at nearly the same cost, they reduce the demand for similar jobs in America.
As to the specific answer , yes it does work. However, you need a strong management that focuses on results. I have seen projects outsourced with no clear goals handed to the offshore team. They invariably fail (despite the team being reasonably smart) because the team was not working towards anything tangible.
outsourcing isn't any different than any other task where you rely on other people. just like traditional in-house employment, dating, personal relationships, or anything where you deal with someone else, working with bad people sucks. the key to a good experience is finding good people.
published accounts probably suffer a negative bias because people who get what they want usually don't go out of their way to post "i outsourced and it was exactly as advertised" articles, while people who don't get what they want like to whine and punish the people they worked with.
i suspect a large percentage of people who are outsourcing dev are: 1. incapable of assessing the quality of their outsourcees, so they end up hiring crap ; 2. cheap bastards trying to do work on the cheap, so they end up hiring crap.
like in any other trade, find good people, and incentivize them to keep playing nice with you.
in my experience, the most important thing to screen for is reliability. i just make a rule to not work with flakes, and i try to make sure my devs are happy.
a lot of people outsource because they can't code. if you can't code, you probably can't tell if your dev can code. if you're in that position, you should find someone to help you evaluate candidates, or you might just get screwed.
Buying software if you are not a coder, makes you very dependent on trust and thus makes your hiring decision very important.
I always start with some simple project.
Barry Rickert http://www.studiobuzz.biz http://www.thecreativebuyer.com
It's not about where the office is, it's about the quality of the people.
I run a busy web dev firm in the USA and we needed a way to speed up our project time lines while still maintaing high quality. The easiest way for us to do this was to outsource the front end code so we could concentrate on design, usability, marketing and back end development.
You would think that outsourcing HTML/CSS would be fairly easy. Turns out that many of the companies offering front end coding (from a layered PSD file) have no clue what they are doing. In fact, there were times we provided them with a complete, highly detailed spec and even wrote some of the markup for them and they STILL managed to screw it up.
We tried several different firms before we found one that actually knew what they were doing and would adhere to our specs. Now that we've been working with them for about a year they understand what we need and can consistently deliver quality work.
Just a quick note about the cost: they were a bit more expensive than the other firms we dealt with but I'll gladly pay a bit more if the work can be done right the first time :)
BTW - the company we work with is called XHTMLized I highly recommend them for front end code.
T-Mobile, Google, Sun, Microsoft, Digg, MySQL, HP, Facebook, Zynga, namealmostanysuccessfullitcompany here.
Of course it works! Its just about how many ppl underestimate complexity of getting it done right.
Stats on that are everywhere. Some are here: http://www.codeanthem.com/blog/2010/04/how-to-save-the-softw...
Barry Rickert http://www.The Creative Buyer.com http://www.Studiobuzz.biz