Wednesday, July 11, 2012

Six Criteria for Outsourcing the Right Processes

Since my background includes software development, I often get the question about when to build a solution in-house, versus outsourcing it to a local company, near-shore service, or off-shore organization in China, India, or Eastern Europe. In the USA, “near-shore” is a euphemism for connected countries, like Mexico and Canada.

There is no simple answer to that question for all cases, but there certainly are some key considerations which will help you select the optimal solution for your case. In fact, the considerations are not unique to software development – they apply almost as well to any product or service you have:

  1. Control of core competency. Don’t outsource your core competency. If your software is your solution and “secret sauce,” don’t entrust it to outsiders of any kind. It’s like giving up control of your company. If the software is ancillary to your mission, proceed through the rest of these considerations.

  2. Intellectual property content. Some country cultures have little appreciation for software as intellectual property. For example, 90% of the software used in China and Vietnam today is pirated. Near-shore and local outsourcing alternatives are manageable with contracts and non-disclosure agreements. Protect your intellectual property.

  3. Technology level. If you expect your solution to incorporate the absolute latest in software technologies, scalable to millions of users, with multi-system failover and recovery, don’t count on out-sourcing. On the other hand, if it is maintenance and testing on non-core software, use the lowest cost solution.

  4. Cost factors. Companies in Asia and Eastern Europe can still provide direct cost reductions of up to 75%. In these calculations, be sure to include indirect costs of remote work, such as more project management, more travel, and less efficient communication. The net may be less cost reduction than you thought.

  5. Product or services. Once product software is written, it doesn’t take much effort to deliver it to customers. Software services, on the other hand, involve the creation of software customized for a specific situation, with a relatively low level of leverage and reuse. Outsourcing for services needs to be carefully managed, and almost never works.

  6. Creative or operational. Creative products, like chip design programs, architectural rendering, or consumer games are not easily outsourced. Operational products, like process automation or reservation systems, may be large but mundane, and more easily outsourced. In all outsourcing cases, a detailed specification is required.

The typical software startup these days is a one or two person operation, founder and co-founder, who do the work themselves on the first product with no salary. With today’s tools, they can do the work of a six or eight-person team 10 years ago, so software outsourcing is not appropriate.

On the other hand, if your startup is not software oriented, but you need some work done (not central to your product and core competency), it is usually better to outsource, either locally or remotely, than to hire employees, manage them, pay benefits, and maybe have to lay them off later.

If you do decide to outsource, build the relationship first, and manage the project carefully. Watch for evidence of inadequate staff and training, high turnover, poor or inadequate process, and lack of vendor project management. On your side, the killers are poor specifications, no acceptance criteria, and scope creep.

Overall, I believe that the demise of software entrepreneurs has been greatly exaggerated. Whether you are outsourcing software development, manufacturing, or accounting, the considerations are the same. Outsourcing is a process, not the problem or the solution.

Marty Zwilling




  1. Agree with the sentiment, but the lines can be blurred between what is really "outsourcing" and keeping it "in house"

    If you hire someone it's in house right? What if they work from home? What if they work from another country from home? What is the actual line in the sand where the person is no longer working for you and is now outsourced?

    I would say if you hire a "company" to do the work, you are at that point outsourcing, but if you hire one individual person, then you are not. So if you hire people and they work full time for you remotely, then it's fine, if not then you're crossing the line and subject to some of the disadvantages of "outsourcing"

  2. Emulation is providing Outsource software development. First

    of all I will tell u the exact meaning of outsourcing. It means that any job, project, task, problem, operation or process that

    could be performed by employees within an organization, but is instead contracted to a third party for a significant period

    of time. The functions that are performed by the third party can be performed on-site or off-site. Means outside of Indian

    company or Big hearted companies hiring the other companies to complete their side project for broad our business.

    Because big hearted companies are concentrate on their core activities.