Considering Outsourcing Development?

Friday, August 1st, 2008 @ 6:03 am | Marketing, Startups

I figured I will start off with a somewhat interesting post to the marketers who might still read this blog, and for any startup people who tune in.

First, a back story & update:

A year ago, I made a video post (since deleted) asking people if they wanted me to review a software outsourcing product that had been mailed to me.  (I never found out how they got my real address.)

That was the most commented post I’ve ever had.  I didn’t follow up on it because:

  1. Much of it was an out-of-date repackaged product.
  2. The people behind it were using fake names.
  3. They lied to me when I confronted them on these counts.
  4. It took a long while to sort all that out.
  5. As far as I know, they never sold the product, making it all irrelevant.

I could have given a comprehensive review (though not favorable), as I have a great deal of experience in this area.  I have been a high-end professional software designer since I was 18.  In the last six years I have worked with about ten different outsourcing providers from India, China, The Ukraine, and elsewhere, all found on www.elance.com.  Budgets for these projects have ranged from $200 to $200,000.

Pitfalls of outsourcing:

On the surface, it sure seems to makes sense.  Many North American companies consider outsourcing, lured by the low cost for developers in other countries. Rates range from $8 to $15 per hour, with the majority at just $10/hour.  (Rates in USD.)

Here are seven things to consider before going down this route:

  1. Language Barriers: Oh, sure they can read/write English, but the subtle things can be lost in translation, which means you spend a lot of time explaining things to them on Instant Messaging.
  2. Sleepless Nights: Since all of these companies are on the other side of the planet, you’re doing all that explaining at night, which leaves you tired and much more likely to make mistakes.
  3. Too Literal: Most of these providers try to do exactly what you say like little coding drones.  It is rare to find someone who can see the big picture and will check in with you before doing something “stupid”, even if you asked for it.
  4. No Continuation: It is very hard for these outsourcing companies to keep their staff.  The competition is fierce for programmers.  Their rates have doubled in the last year and many programmers switch jobs frequently, using the demand to continually increase their rates.  Even if they can keep their staff, if you’re not keeping them busy full-time, the people working on your projects naturally get reassigned to other clients, and you might not be able to get them back when you need them.  Long projects and outsourcing don’t mix very well.
  5. Undocumented: Good luck getting well documented code that someone else can easily take over.  So, when you lose your programmer, there is often a long delay while someone else gets up to speed.  Make sure to ask for excellent documentation as part of the quote and get examples.
  6. Bad Quotes: Many providers have no idea how to quote.  One guy quoted me $200 for every project, no matter how big or small.  Unless I want something really small done quickly, I work with teams with project leaders and testers, etc.  They have an idea how to quote.
  7. Dishonesty: When I first started searching for providers I would ask for samples of their code.  I would then search the Internet for any identifiable bits from that code, and usually I would find it was part of some open-source project.  I would then check if the developer(s) were part of that project, which of course they were not.  I then got in the habit of hiring them for small projects and split-testing two teams against each other to see which provided the best results before going on to bigger projects.

Disasters of Outsourcing:

While I’ve had some success with this route, I’ve also had two massive disasters, amongst all the regular day-to-day challenges of outsourcing.

  1. Company Vanished: I worked with one Indian company for a year who seemed awesome.  Then they vanished one day, when the project was about 95% complete and paid for.  I had no way of getting hold of them.  About five months later, they reappeared, asking if I needed any work done.  The project was abandoned by then.
  2. Abandonment: After spending about $75,000 with one company, they shut me down with no notice, redistributed my team, and almost put me out of business.  Why?  They had invoiced me 10 days ago and not heard from me.  I had never missed a payment, and when they invoiced me I was on my first vacation in years and returned with a flu.  By the time they got paid, my staff had been reassigned to other projects and that project got delayed by a year and counting.  (It’s almost done now.)

Conclusion and recommendations:

I started outsourcing because it seemed so inexpensive, but I have my doubts that it is the best answer in the long run.  For future projects, I will try hiring well recommended, extremely talented, experienced, high-end local programmers. I’ll give them shares in the company to keep them around.

The theory is that they will produce better, more transferable code, and I’ll get more sleep.

Of course, I’m still working with an outsourcing team for now.   The code is good and the project leader is very competent.  It’s just a matter of keeping staff on board.

If you are considering creating software and have a limited budget, I recommend hiring someone experienced in your field to design/manage the project and to manage the outsourced developers.  It probably will save you money.  If you’re planning on a big project, I would be very wary of outsourcing.

What are your experiences?

Sphere: Related Content

13 Responses to “Considering Outsourcing Development?”

  1. Rich Boy Says:

    My experience with outsourcing… it SUCKS.

    Sure they will get cheap rates done, and you will get a cheap-ass product. I had to go back and forth about 80 times via email, half of the emails never got addressed, most of the littlest things ever took weeks to get done, and never properly.

    Then they just disappeared and stopped responding to my emails. So now I have half produced software that is useless.

    It was a small project, but if that’s how bad a small project went then I would never invest any significant amount of money to outsourcing.

    This post is exactly right. Find a local programmer that you can meet face-to-face with and explain everything in perfect detail. Having software done to your specification exactly is well worth the increased cost…After all American workers charge more because they usually get better work done!

    Forget outsourcing software! Leave the outsourcing to making knock-off Nike’s and other clothing crap.

    Peace

    Rich Boy
    http://www.TheRichBoy.com

    [Reply]

  2. Kymi Says:

    lol I feel your pain.

    I stopped using programmers from non speaking countries a while ago. The lower cost per hour etc doesn’t justify the problems you get and the quality of work can be absolutely dismal.

    I’d much sooner pay a programmer whose first language is english even if it is going to cost me more.

    Good luck with it all
    Kymi

    [Reply]

  3. Richard Burke Says:

    I also share your pain…

    Outsourcing in many areas is simply a part of life in the entrepreneurial world. At brochureplace.com we rely on outsourcing for our web, storefront and shopping cart implementation and management but have limited our selection to local sources.

    However, programming can be it’s own nightmare even when outsourced locally. Several years ago I spent over $20,000 with a local programmer who claimed to be God’s gift to the programming world. I never got a single line of usable code! When I fired his *ss, he literally cried and said I was being unreasonable. What’s up with that!

    The combination of buyer inexperience, “scope creep”, and other intangibles are an easy recipe for a toxic experience. Adding distance and language barriers to the mix exponentially increase the levels of frustration and potential for disaster. And that doesn’t even take into account the possibility of programmer incompetence or deliberate fraud - as you so correctly pointed out.

    The best of all worlds is dealing with someone locally who can manage a project through family or established connections overseas. That way, the local person (who speaks the foreign language) gets paid local rates but you still benefit from offshore pricing while being shielded from the problems you experienced. It’s not a guarantee, but the chances of success are much improved.

    Best wishes, and THANK YOU for who you are and what you do!

    [Reply]

  4. Howard Tiano Says:

    Hi John,

    Wow - I can relate to your experiences, however not quite as painful (or expensive!)

    Being in the outsourcing “niche”, I’ve done many types of projects, across many providers, and used individuals, groups, companies, and BPO services - and those issues still are present.

    For small projects and non-”mission critical” projects, offshore outsourcing can work fine, once you’ve found reliable freelancers and use project managers.

    From what i hear re: larger projects, North American based programmers may charge more, but in the long run, more efficient and “safer”.

    Thanks for persevering to get it done, honoring the free GTT upgrade (I’m an owner) and for sharing this story to give anyone considering a large software development project the insight of your experiences.

    I will link to this post from my blog, imOutSourcerer.com

    Good luck, and look forward to the new release of GTT2.

    Howard

    [Reply]

  5. Pat Says:

    Thanks for your insights into the outsourcing jungle.

    However, I’d like to say, perhaps the selection process for the outsourcing provider could be done better. I mean, we can’t really blame them if we ourselves pick the wrong providers to do our jobs.

    Maybe a good policy to follow is, if in doubt, don’t.

    [Reply]

  6. IMoutsourcerer.com » Blog Archive » Outsourcing Software Development - Don’t Try This! Says:

    [...] after you check out his latest post, his advice is “Don’t try this” when it comes to outsourcing software development [...]

  7. Renee Says:

    #1 & #3: What gets lost in the translation cannot be underestimated and working with programmers who can have an intelligent conversation about the scope/details of your project. Just because you want it doesn’t make it feasible, you need to work with a programmer who doesn’t automatically spin out the possible garbage you might be asking for and not realize it.

    [Reply]

  8. bisi Says:

    I think 90% of people that have tried offshoring/outsourcing have had similar experiences .. I have been burnt too . I do think that there is a method to picking software deve compnaies . I dont even use elance or any of those sites . I go straight to the companies sites … You have to an excellent project/product manager and also have very well written requirements .

    You also cant judge a company based entirely on its portfolio because just like an actor a developer is only as good as the requiremets given . If you put an excellent actor in a movie with a bad script it will make him look bad likewise when yuo see shitty software on a developers portfolio it may not mean much because the developer may have done the product exactly the way the outsourcer wanted it ..

    The difference between a company in NY and one in Mumbai could literarilly be 200k . Yes I got such wide differnces in quotes . fom 3k to 250k . A company in Isreal gave me a 180k quote .. I of course went where my pocket could take me .

    1 last advice I’ll give is to if possible do your design first before you look for a developer .. i.e have the shell of the product done so that you can just show the developers what you are talking about. It will save you a lot of stree ..

    [Reply]

  9. Richard Says:

    Thanks, very timely.

    [Reply]

  10. Alex Says:

    Hi John,

    I would like to share my outsourcing experience. From the beginning it was clear to me it will be a challenge. So my target was first to learn the process and second to find some providers able to do some very simple things, like Photoshop and some internet marketing. Posting and some forums. If I was able to find somebody serious my intention was to hire them long term full time.

    So I find a student in her last year, studding electronics in Philippine. I ask her to do some Photoshop on some pictures. She did not know Photoshop so I send her a video Photoshop course. She took the video course, the pictures turned horrible. Then I find out she has an antiquated laptop, screen 12-13in. OK she could not afford the laptop, so I bought a new laptop send it there. Help a student make a living, what a great feeling; I could see myself on a pedestal already. In the mean time I paid her to learn to use Photoshop & Dreamweaver, watch training videos.

    Finally she got the new laptop from me and I started to give her assignments. She started not to be in contact with me, not to do her job and so on. All the time she complained she does not have time, or she is sick. In one month she was sick 3 times. When I got fed up and wanted to fire her she calm down for maybe 1 week. Then the same story again. After that I ask for firm commitment on time and hours. I got working hours like 4AM-7AM every day and on Sunday something else. I agree to use her on Sunday. Guess what she was not available again.

    To make a long story short this cost me around 3K. For this I got maybe 200 digital images processed and some very lame HTML code, few posts. Most painful I spend maybe 50-100 hours managing her. All the assignments I give it will have been taking me much less than 50 hours to complete. On this I have to add the irritation and the delays.

    What I will do different:
    Give 3 pictures to process, she is not able, just say thank you and move forward.
    Do not try any charity, is considered stupidity.
    Split your task in 10 hour work chunks max, the job is not done move forward.

    What you should do to make this thing work.
    You have to be an expert in any outsourcing job you give. (You have to know yourself very well PHP in order to outsource PHP).
    Split the task in very small chunks and micromanage it, then again the outsourcing does not work. You just do not save any time.
    If you are lucky to have a very good provider, keep him very close to you. So far I was not.

    [Reply]

  11. Dana Caproni - Running Code Says:

    As someone who works for an outsourcing firm in Ukraine, I can understand the angst many of you feel toward outsourcing.

    I have found that pre-requisites for successful projects involve a clear understanding and a strongly-worded contract that details a) project scope b) project and hiring approach c) performance metrics d)Communication plan, e) Escalation/risk management procedures f) rates g) IPR h) confidentiality i) governance procedures.

    Also, a customer should have a CTO or a highly technical person on their side who can appreciate, understand and at times challenge developers and their approach and solutions.

    [Reply]

  12. Go Try This 2 Says:

    [...] but its obvious he’s been going through some tough times. Based on what he says in his blog ( John Reel’s Blog Blog Archive Considering Outsourcing Development? and John Reel’s Blog Blog Archive Since it’s going to come up… GoTryTHIS. ), it [...]

  13. Andre Bell Says:

    >>Then they just disappeared and stopped responding to my emails.

    I can relate to Rich Boy. I’m 3 for 3 of failed projects from programmers who’ve disappeared or just stopped responding to emails after getting paid. I wouldn’t care except as weeks went buy the bugs in the products became apparent, totally killing my software ideas from further development — and killing any sales potential.

    I say go ahead and test out outsource programmers, but make sure the code is 100% functional b4 paying them. Try to distribute the software to others to test too so you can see the software truly works (or doesn’t) in environments beyond your own desktop pc’s or web server (in the case of php/mysql scripts).

    The stuff almost always works when it is installed for you by the programmers. But does that mean it will work for buyers too? No. You end up pissing off a lot of people by selling faulty software. All because of programmers who vanish after getting paid.

    Unscroupolous programmers is what has always killed my ideas for making automated money online.

    So lesson are,

    1) pay high and hire locally

    2) or outsource and REFUSE to pay until the software is functional and free from ‘call backs’ or code to cripple the software.

    3) Trust your instinct if the programmers resist using escrow services as mediators for releasing the cash. That’s usually a red flag they probably had planned to rip you off. The one exception is the few programmers who’ve been ripped off by and are bitter from losses from escrow services that are not unbiased. Those programmers lost their code and their cash. If has happened a lot to them that should be a red flag too.

    Andre

    [Reply]

Leave a Reply