Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 623
Is Outsourcing Programmers a Terrible Idea? | | Where Ideas Grow

Is Outsourcing Programmers a Terrible Idea?

I have a simple initial answer to this question: YES! But let me explain and put this answer in context as well as share some insights on how to try to make it work.

To put it out there from the start, I’ve had some terrible experiences with outsourced teams working on startup companies and know many other people who have as well. In addition, let me layout some assumptions for this discussion:

  1. You’re looking to build your first prototype/beta website
  2. You don’t have enough cash to hire a full-time programmer, haven’t thought about doing so, or think it will be cheaper to outsource
  3. While you probably have a good idea of what you want to build and somewhat of an idea of what your customers want, I bet you’ll still alter your spec a thousand times before launch
  4. After you launch, you’ll learn a ton from your customers and will want to make even more tweaks
  5. If you’re using outsourced programmers, it probably means you don’t have someone in house

Where’s the rub? When you pay a third party to do your programming, you’ll structure either a fixed-price contract or agree upon an hourly rate. But I hate to break it to you: Unless you know exactly what you want from the get-go and don’t change a thing, regardless of which method you take, you’re going to lose.

See, what ends up happening is that, for example, under a fixed-price contract, since you end up changing things you didn’t foresee until the site was built, you end up getting into a contentious situation because you’re, “so far out of spec,” and they refuse to continue working unless you cough up more dough (which you very well may not have). But, while you’ll feel like your site isn’t done, they’ve delivered it to you as per your original spec. (As a side note, when an outsourced team creates a fixed-price bid, they’re really just assuming an hourly rate and a number of hours to complete your project, and I’ve yet to hear one that’s actually lived up to expectations; they almost always take longer and then they try and stiff you with a bill because they didn’t make the right assumptions at the beginning, and since you aren’t a programmer, you have no choice.) On the other hand, if you’re paying by the hour, and you end up changing a lot down the line, you have to either pay for it or get stuck with what in your mind is an unsatisfactory product.

So what does this boil down two? One of two things. First, that you’re a startup company and you’re going to change things time and time again. This is your fault. But it’s also their fault for not assuming this as well. And second, you’re not a programmer and you’re expectations of what can be done, how it should be done, and how quickly it will be done are totally out of whack with that of the programmer’s and will hardly even get in line (or vise versa). Again, they should take this into account and make sure they’re spec’ing with you from the get-go and continually checking in to make sure everyone is on the same page (not just telling you their progress but showing it).

Wait. I do need to step back for a second. I admit I’m being somewhat unfair to outsourced programmers. If you could just stick exactly to the spec you gave them, there wouldn’t be a problem. But this brings us to our next problem. As a startup, you need to be extremely flexible and constantly adapting to your customers. So essentially, you may be doing the right thing by continually making nits (even during development). The problem is that with your nits the project takes longer and then the bill ads up. In fact, in many cases, the bill may end up being even more than it would cost for a full-time hire. To pour salt in that wound, since they’re an outsourced team, no matter how much attention they claim they’re going to provide, rightly so, they also have other responsibilities (so you’ve gotten half of someone’s time for the same price you could have gotten someone’s full attention).

So my first suggestion: Hire a full-time programmer. Even if you don’t have enough money, find a way to raise some. Think about it: Instead of having to stick to a spec, you get to sit next to someone as they make changes in real time before you launch your site. And once it’s launched, in real time, you can react to your customers. In addition, since you’re getting a full-time resource for the same price you would have been paying for a part-time resource, they can continually improve your site. Things are looking good now.

However, if you absolutely won’t hire someone full-time (or are having issues doing so), check out these tips for working with an outsourced team.

  • Make sure you create a VERY comprehensive spec from the start that everyone is on the same page with
  • Discuss what happens if you need to make changes halfway through
  • Discuss what they’ll charge you if you need to make changes after launch
  • Determine from the get-go if they’re going to charge you to actually load your site onto your server and make it operational (most programmers will chose to program on their own computers
  • Make sure everything goes into a contract and you don’t even need a lawyer although of course one helps (this is because if for no other reason, writing a contract it gets everything down on paper)
  • Internally, I would increase your webdev budget 25% higher then what the outsourced team quotes you (or conversely, if you know how much you can spend, make sure the team is charging you 25% less). This way you’ll have breathing room in the event you have to change the site, which I promise you, you will

All this being said, there is definitely a place for an outsourced programmer in your venture. You should explore outsourcing VERY defined projects (i.e., a tool, not the whole site) as long as your in-house programmer is doing the brunt of the work and managing the outsourced guy. But I can’t stress this enough: You’ll only be helping yourself if you bring a programmer on full-time.

So I think you know where I stand, but where do you stand? What have you experiences been? For better or for worse? Share them below in the comments.

PS: And don’t get me started on cheap programmers from Eastern Europe or India. You get what you pay for.

UPDATE: On a NY Tech meetup email thread, a helpful link was brought to the fore for those who want to try the outsource, offshore rout: 37 Offshoring Tips for Onshore Software Professionals.

2 Comments, Comment or Ping

  1. Deprecated: Function ereg() is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 445
    K.I.S.S. Your Startup | | Where Ideas Grow - Nov 21st, 2008

  2. Deprecated: Function ereg() is deprecated in /nfs/c03/h02/mnt/53598/domains/ on line 445
    Hosted Solutions Rock | | Where Ideas Grow - Dec 4th, 2008

Reply to “Is Outsourcing Programmers a Terrible Idea?”


Join the conversation: Follow me on twitter >