Not Only Luck.
An essay by John Melonakos

The Hidden Challenges of Outsourcing Software Development

Startups often consider outsourcing part of their software development. Reasons for this include:

  • Avoiding the lengthy hiring process to bring an in-house employee onboard
  • Achieving a seemingly cheaper rate by going overseas
  • Aiming for “black box” management, wherein you want to tell the contractors to deliver your product with your specifications on your deadline at your agreed upon price, bug-free and ready-to-launch

In reality, these benefits rarely materialize:

  • The time you attempted to save by outsourcing will be lost when you realize you need that core knowledge in-house. You may discover that it is actually harder for the people you hire to interpret the poorly written contractor code than it will be for them to re-write the whole thing from scratch.
  • For those reasons, you may come to see that what you thought was a seemingly cheaper rate is now actually a sunk cost.
  • While “black box” management seems nice, software development is never that easy. Great software development requires iterations between product managers, customers, developers, etc. It is hard for contractors to perform those iterative functions well.

Using contractors can make a lot of sense if they offer a specialized skill set and effective production that is not easily brought in-house.

For instance, we just outsourced the creation of a video to Epipheo. They did a fantastic job. We have the source files if we ever need anything to change. And the final video is good-to-go because we iterated many times with them. They were good contractors.

What are your thoughts about the challenges of outsourcing software development?

 

Related articles

From the conversation

Comments preserved from the original post.

Pavan Yalamanchili

This is not always the case. For example, many outsourced jobs to India are jobs that require very little domain expertise. Most people I know who work in the tech field in India become experienced in enterprise software (Say Java, oracle db, .net etc) that is useful for large number of companies doing very similar things.

For large companies that have large projects they can just bundle the training / knowledge transfer costs into the development costs. But when you are a small company, working on problems very few people can understand, it can indeed be more effort than it is worth.

Dale

Mostly true if you have access to funding to bring technologists onto the team. Otherwise you are forced to use contractors

Most tech personnel want guaranteed salary vs a startup with risk and equity especially Ruby on Rails programmers

As well any co founder will be biggest equity dilution for the founders so that may need to be considered too. If a contractor can whip out an mvp for low cost that may be better in short term than bringing dedicated personnel who want defined salaries, work part time, etc

Long term i think it makes sense to have in house tech development and support if they do not create a single point of failure or exposure.