Software without Borders: Out-tasking vs. Outsourcing

“I’ll try anything twice!” is the old joke line.

That’s about how many times people try outsourcing before giving up in frustration and disgust.

But are they really outsourcing – or are they out-tasking by mistake? You need a different kind of programmer and software development process for each. And you can get into trouble doing one when you really need the other.

This Isn’t Really Outsourcing

A few months ago the CEO of a small company called me. He was looking for a local software guru to develop the prototype of his new software product. He couldn’t find one. Instead he hired an offshore vendor referred to him by a friend.

Sound familiar? That is the way most people find an offshore vendor. The problem is this method only gives you a choice of one. Or two, if you have two friends with offshore outsourcing experience. That’s still not much of a choice for such an important relationship.

But this CEO lucked out, even though he was referred to a “body-shop” type of vendor. The vendor assigned a couple of programmers to his project, and the CEO worked with the programmers directly.

It took a great deal of time and late-night effort for the CEO to keep them on track. Overall performance and quality were not very good. The CEO wished he had found that technical guru he tried to find originally!

The CEO kept looking for help. Finally he found an offshore freelancer to complete the programming and polish up the prototype.

Voila! After several months he had a prototype software product at an extremely low cost.

But is this a good long-term strategy?

Each resource he used – the vendor’s programmers and then the individual freelancer – had to be told what to do in great detail. Each had to be managed closely.

What about the second version of the software? Who will the CEO hire to create it? It will take him a significant amount of time and effort to find another couple of programmers, have them come up to speed and manage their efforts.

And how about the third release? Will he start all over again? Yikes! There has to be a better way.

The problem: This CEO is out-tasking rather than outsourcing. If you use out-tasking when you really need outsourcing then you lose out on several things.

Why Out-tasking Isn’t Sustainable

Yes, out-tasking can get you a prototype at a low-cost. But the knowledge and understanding of how your software works is left in the heads of the programmers who worked on it. After your project is finished, then off they go to work on the projects of other clients. They’re unavailable for future updates to your software.

You only want to use out-tasking when you have a small project and need quick, short-term help. You provide a description of what you want, the programmer does the work and you’re done. Everybody is happy.

Out-tasking doesn’t scale. It’s very difficult to manage a group of freelancers scattered around the globe. Out-tasking doesn’t work well in a larger project where you need multiple engineers programming over an extended period of time. And you can waste lots of time looking for the absolute lowest bidder each time a new project or software release comes along.

Instead you should develop a relationship with a reliable offshore vendor that will manage the programming over the months needed for a bigger project.

This is truly outsourcing.

Instead of trying to find the absolute cheapest programmers, look for a vendor that can deliver programmers along with the management infrastructure and software development process that you need to deliver your software on-time, on-scope and on-budget.

This way the offshore programmers become part of your team and an asset to your company. When you need programming work in the future, you have someone you can quickly turn to and depend on.

Out-tasking is fine for one or two short term programming projects. But if developing software is an important on-going part of your business then outsourcing with an offshore vendor you can rely on is a much more efficient and productive strategy.

Use out-tasking to build small software applications. Use outsourcing to build your company.